@sprouted/create-vibes
Version:
Create a new Vibes monorepo
170 lines • 4.21 kB
JSON
{
"name": "api",
"description": "RESTful API server using Express with TypeScript",
"type": "app",
"variables": [
{
"name": "appName",
"type": "string",
"required": true,
"description": "Name of the API app (e.g., backend, api-gateway)"
},
{
"name": "port",
"type": "number",
"default": 3001,
"description": "Port number for the API server"
},
{
"name": "includeDatabase",
"type": "boolean",
"default": true,
"description": "Include database setup (PostgreSQL with Prisma)"
},
{
"name": "includeAuth",
"type": "boolean",
"default": true,
"description": "Include authentication middleware (JWT)"
},
{
"name": "includeValidation",
"type": "boolean",
"default": true,
"description": "Include request validation (Zod)"
},
{
"name": "includeSwagger",
"type": "boolean",
"default": false,
"description": "Include Swagger/OpenAPI documentation"
},
{
"name": "includeGraphQL",
"type": "boolean",
"default": false,
"description": "Include GraphQL support"
}
],
"files": [
{
"source": "package.json.hbs",
"destination": "package.json"
},
{
"source": "tsconfig.json.hbs",
"destination": "tsconfig.json"
},
{
"source": "nodemon.json.hbs",
"destination": "nodemon.json"
},
{
"source": ".env.example.hbs",
"destination": ".env.example"
},
{
"source": "gitignore.hbs",
"destination": ".gitignore"
},
{
"source": "README.md.hbs",
"destination": "README.md"
},
{
"source": "src/index.ts.hbs",
"destination": "src/index.ts"
},
{
"source": "src/app.ts.hbs",
"destination": "src/app.ts"
},
{
"source": "src/config/config.ts.hbs",
"destination": "src/config/config.ts"
},
{
"source": "src/middleware/error.ts.hbs",
"destination": "src/middleware/error.ts"
},
{
"source": "src/middleware/logger.ts.hbs",
"destination": "src/middleware/logger.ts"
},
{
"source": "src/middleware/auth.ts.hbs",
"destination": "src/middleware/auth.ts",
"condition": "includeAuth"
},
{
"source": "src/middleware/validation.ts.hbs",
"destination": "src/middleware/validation.ts",
"condition": "includeValidation"
},
{
"source": "src/routes/index.ts.hbs",
"destination": "src/routes/index.ts"
},
{
"source": "src/routes/health.ts.hbs",
"destination": "src/routes/health.ts"
},
{
"source": "src/routes/auth.ts.hbs",
"destination": "src/routes/auth.ts",
"condition": "includeAuth"
},
{
"source": "src/services/auth.service.ts.hbs",
"destination": "src/services/auth.service.ts",
"condition": "includeAuth"
},
{
"source": "src/utils/logger.ts.hbs",
"destination": "src/utils/logger.ts"
},
{
"source": "src/types/index.d.ts.hbs",
"destination": "src/types/index.d.ts"
},
{
"source": "prisma/schema.prisma.hbs",
"destination": "prisma/schema.prisma",
"condition": "includeDatabase"
},
{
"source": "src/db/client.ts.hbs",
"destination": "src/db/client.ts",
"condition": "includeDatabase"
},
{
"source": "swagger.yaml.hbs",
"destination": "swagger.yaml",
"condition": "includeSwagger"
},
{
"source": "src/middleware/swagger.ts.hbs",
"destination": "src/middleware/swagger.ts",
"condition": "includeSwagger"
},
{
"source": "src/graphql/schema.ts.hbs",
"destination": "src/graphql/schema.ts",
"condition": "includeGraphQL"
},
{
"source": "src/graphql/resolvers.ts.hbs",
"destination": "src/graphql/resolvers.ts",
"condition": "includeGraphQL"
},
{
"source": "Dockerfile.hbs",
"destination": "Dockerfile"
},
{
"source": "docker-compose.yml.hbs",
"destination": "docker-compose.yml",
"condition": "includeDatabase"
}
]
}