Scaffolder (scaffolder.ts):
- Interactive prompts: product name/ID/tagline/domain, port, platforms, features
- --from product.json flag to skip prompts (non-interactive)
- --dry-run preview mode
- Generates backend (always) + web (Next.js) + mobile (Expo) based on selection
- Template engine with {{VARIABLE}} and {{#IF FEATURE}} conditional blocks
- Backend scaffold: Fastify 5, Zod config, JWT auth, datastore, server.ts
- Web scaffold: Next.js 16 App Router, layout, page, product-config
- Mobile scaffold: Expo with app.json, index screen
- Root files: product.json, .gitignore, .env.example, README.md
Tests: 26 passing (11 template-engine + 15 scaffolder)
Tested with ActionTrail product.json dry-run — correct output
25 lines
666 B
JSON
25 lines
666 B
JSON
{
|
|
"name": "@bytelyst/create-app",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "CLI tools for scaffolding ByteLyst product repos and code",
|
|
"type": "module",
|
|
"bin": {
|
|
"create-app": "./dist/scaffolder.js",
|
|
"gen-api-route": "./dist/generators/api-routes.js",
|
|
"gen-agents-md": "./dist/generators/agents-md.js"
|
|
},
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"test": "vitest run",
|
|
"create-app": "tsx src/scaffolder.ts",
|
|
"gen:api-route": "tsx src/generators/api-routes.ts",
|
|
"gen:agents-md": "tsx src/generators/agents-md.ts"
|
|
},
|
|
"devDependencies": {
|
|
"tsx": "^4.19.2",
|
|
"typescript": "^5.7.3",
|
|
"vitest": "^3.0.5"
|
|
}
|
|
}
|