forgestack-os-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +78 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/generators/api.d.ts +3 -0
- package/dist/generators/api.d.ts.map +1 -0
- package/dist/generators/api.js +346 -0
- package/dist/generators/api.js.map +1 -0
- package/dist/generators/auth.d.ts +2 -0
- package/dist/generators/auth.d.ts.map +1 -0
- package/dist/generators/auth.js +371 -0
- package/dist/generators/auth.js.map +1 -0
- package/dist/generators/backend.d.ts +2 -0
- package/dist/generators/backend.d.ts.map +1 -0
- package/dist/generators/backend.js +875 -0
- package/dist/generators/backend.js.map +1 -0
- package/dist/generators/common.d.ts +2 -0
- package/dist/generators/common.d.ts.map +1 -0
- package/dist/generators/common.js +354 -0
- package/dist/generators/common.js.map +1 -0
- package/dist/generators/database.d.ts +2 -0
- package/dist/generators/database.d.ts.map +1 -0
- package/dist/generators/database.js +157 -0
- package/dist/generators/database.js.map +1 -0
- package/dist/generators/docker.d.ts +2 -0
- package/dist/generators/docker.d.ts.map +1 -0
- package/dist/generators/docker.js +181 -0
- package/dist/generators/docker.js.map +1 -0
- package/dist/generators/frontend-helpers.d.ts +3 -0
- package/dist/generators/frontend-helpers.d.ts.map +1 -0
- package/dist/generators/frontend-helpers.js +23 -0
- package/dist/generators/frontend-helpers.js.map +1 -0
- package/dist/generators/frontend.d.ts +2 -0
- package/dist/generators/frontend.d.ts.map +1 -0
- package/dist/generators/frontend.js +735 -0
- package/dist/generators/frontend.js.map +1 -0
- package/dist/generators/index.d.ts +2 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +59 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/nextjs-helpers.d.ts +6 -0
- package/dist/generators/nextjs-helpers.d.ts.map +1 -0
- package/dist/generators/nextjs-helpers.js +216 -0
- package/dist/generators/nextjs-helpers.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +32 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/prompts.d.ts +2 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +107 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/validators.d.ts +2 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +48 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +49 -0
- package/src/commands/create.ts +82 -0
- package/src/generators/api.ts +353 -0
- package/src/generators/auth.ts +406 -0
- package/src/generators/backend.ts +927 -0
- package/src/generators/common.ts +377 -0
- package/src/generators/database.ts +165 -0
- package/src/generators/docker.ts +185 -0
- package/src/generators/frontend.ts +783 -0
- package/src/generators/index.ts +64 -0
- package/src/index.ts +27 -0
- package/src/types.ts +16 -0
- package/src/utils/logger.ts +31 -0
- package/src/utils/prompts.ts +105 -0
- package/src/utils/validators.ts +50 -0
- package/tests/validators.test.ts +69 -0
- package/tsc_output.txt +0 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/generators/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/generators/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBA2E1E"}
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateCommon = generateCommon;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
async function generateCommon(config, targetDir) {
|
|
10
|
+
// Generate root package.json
|
|
11
|
+
const rootPackageJson = {
|
|
12
|
+
name: config.projectName,
|
|
13
|
+
version: '0.1.0',
|
|
14
|
+
private: true,
|
|
15
|
+
workspaces: ['frontend', 'backend'],
|
|
16
|
+
scripts: {
|
|
17
|
+
dev: 'npm run dev --workspace=frontend & npm run dev --workspace=backend',
|
|
18
|
+
'dev:frontend': 'npm run dev --workspace=frontend',
|
|
19
|
+
'dev:backend': 'npm run dev --workspace=backend',
|
|
20
|
+
build: 'npm run build --workspaces',
|
|
21
|
+
test: 'npm run test --workspaces',
|
|
22
|
+
},
|
|
23
|
+
author: 'Generated by ForgeStack OS',
|
|
24
|
+
license: 'MIT',
|
|
25
|
+
};
|
|
26
|
+
await fs_extra_1.default.writeJSON(path_1.default.join(targetDir, 'package.json'), rootPackageJson, { spaces: 2 });
|
|
27
|
+
// Generate .gitignore
|
|
28
|
+
const gitignore = `# Dependencies
|
|
29
|
+
node_modules/
|
|
30
|
+
.pnp
|
|
31
|
+
.pnp.js
|
|
32
|
+
|
|
33
|
+
# Testing
|
|
34
|
+
coverage/
|
|
35
|
+
|
|
36
|
+
# Production
|
|
37
|
+
build/
|
|
38
|
+
dist/
|
|
39
|
+
.next/
|
|
40
|
+
out/
|
|
41
|
+
|
|
42
|
+
# Environment
|
|
43
|
+
.env
|
|
44
|
+
.env.local
|
|
45
|
+
.env.*.local
|
|
46
|
+
|
|
47
|
+
# Logs
|
|
48
|
+
logs/
|
|
49
|
+
*.log
|
|
50
|
+
npm-debug.log*
|
|
51
|
+
yarn-debug.log*
|
|
52
|
+
yarn-error.log*
|
|
53
|
+
|
|
54
|
+
# OS
|
|
55
|
+
.DS_Store
|
|
56
|
+
Thumbs.db
|
|
57
|
+
|
|
58
|
+
# IDE
|
|
59
|
+
.vscode/
|
|
60
|
+
.idea/
|
|
61
|
+
*.swp
|
|
62
|
+
*.swo
|
|
63
|
+
|
|
64
|
+
# Database
|
|
65
|
+
*.db
|
|
66
|
+
*.sqlite
|
|
67
|
+
prisma/migrations/
|
|
68
|
+
|
|
69
|
+
# Docker
|
|
70
|
+
docker-compose.override.yml
|
|
71
|
+
`;
|
|
72
|
+
await fs_extra_1.default.writeFile(path_1.default.join(targetDir, '.gitignore'), gitignore);
|
|
73
|
+
// Generate README.md
|
|
74
|
+
const readme = generateReadme(config);
|
|
75
|
+
await fs_extra_1.default.writeFile(path_1.default.join(targetDir, 'README.md'), readme);
|
|
76
|
+
// Generate .env.example
|
|
77
|
+
const envExample = generateEnvExample(config);
|
|
78
|
+
await fs_extra_1.default.writeFile(path_1.default.join(targetDir, '.env.example'), envExample);
|
|
79
|
+
}
|
|
80
|
+
function generateReadme(config) {
|
|
81
|
+
return `# ${config.projectName}
|
|
82
|
+
|
|
83
|
+
Generated by **ForgeStack OS** - One platform. Any stack. Production-ready.
|
|
84
|
+
|
|
85
|
+
## Stack
|
|
86
|
+
|
|
87
|
+
- **Frontend:** ${config.frontend}
|
|
88
|
+
- **Backend:** ${config.backend}
|
|
89
|
+
- **Auth:** ${config.auth}
|
|
90
|
+
- **Database:** ${config.database}
|
|
91
|
+
- **API Style:** ${config.apiStyle}
|
|
92
|
+
- **Docker:** ${config.docker ? 'Yes' : 'No'}
|
|
93
|
+
- **Multi-Tenant:** ${config.multiTenant ? 'Yes' : 'No'}
|
|
94
|
+
|
|
95
|
+
## Getting Started
|
|
96
|
+
|
|
97
|
+
### Prerequisites
|
|
98
|
+
|
|
99
|
+
- Node.js 18+ (or Bun if using Bun backend)
|
|
100
|
+
${config.backend === 'go-fiber' ? '- Go 1.21+' : ''}
|
|
101
|
+
${config.docker ? '- Docker and Docker Compose' : ''}
|
|
102
|
+
${config.database === 'postgresql' ? '- PostgreSQL (or use Docker)' : ''}
|
|
103
|
+
${config.database === 'mongodb' ? '- MongoDB (or use Docker)' : ''}
|
|
104
|
+
|
|
105
|
+
### Installation
|
|
106
|
+
|
|
107
|
+
\`\`\`bash
|
|
108
|
+
# Install dependencies
|
|
109
|
+
npm install
|
|
110
|
+
|
|
111
|
+
# Copy environment variables
|
|
112
|
+
cp .env.example .env
|
|
113
|
+
|
|
114
|
+
# Update .env with your configuration
|
|
115
|
+
\`\`\`
|
|
116
|
+
|
|
117
|
+
### Database Setup
|
|
118
|
+
|
|
119
|
+
${getDatabaseSetupInstructions(config)}
|
|
120
|
+
|
|
121
|
+
### Development
|
|
122
|
+
|
|
123
|
+
\`\`\`bash
|
|
124
|
+
# Run both frontend and backend
|
|
125
|
+
npm run dev
|
|
126
|
+
|
|
127
|
+
# Or run separately
|
|
128
|
+
npm run dev:frontend
|
|
129
|
+
npm run dev:backend
|
|
130
|
+
\`\`\`
|
|
131
|
+
|
|
132
|
+
${config.docker ? `### Docker
|
|
133
|
+
|
|
134
|
+
\`\`\`bash
|
|
135
|
+
# Start all services
|
|
136
|
+
docker-compose up
|
|
137
|
+
|
|
138
|
+
# Start in detached mode
|
|
139
|
+
docker-compose up -d
|
|
140
|
+
|
|
141
|
+
# Stop services
|
|
142
|
+
docker-compose down
|
|
143
|
+
\`\`\`
|
|
144
|
+
` : ''}
|
|
145
|
+
|
|
146
|
+
## Project Structure
|
|
147
|
+
|
|
148
|
+
\`\`\`
|
|
149
|
+
${config.projectName}/
|
|
150
|
+
├── frontend/ # ${config.frontend} application
|
|
151
|
+
├── backend/ # ${config.backend} server
|
|
152
|
+
${config.docker ? '├── docker/ # Docker configuration' : ''}
|
|
153
|
+
├── .env.example # Environment variables template
|
|
154
|
+
└── README.md # This file
|
|
155
|
+
\`\`\`
|
|
156
|
+
|
|
157
|
+
## Authentication
|
|
158
|
+
|
|
159
|
+
${getAuthInstructions(config)}
|
|
160
|
+
|
|
161
|
+
${config.multiTenant ? `## Multi-Tenancy
|
|
162
|
+
|
|
163
|
+
This application is configured with multi-tenancy support. Each request is automatically scoped to a tenant based on:
|
|
164
|
+
|
|
165
|
+
${getTenantScopingInfo(config)}
|
|
166
|
+
|
|
167
|
+
All database queries include tenant isolation to ensure data security.
|
|
168
|
+
` : ''}
|
|
169
|
+
|
|
170
|
+
## Built With
|
|
171
|
+
|
|
172
|
+
- [ForgeStack OS](https://github.com/halloffame12/forgestack-os) - The meta-platform that generated this project
|
|
173
|
+
- Created by [Sumit Chauhan](https://github.com/halloffame12)
|
|
174
|
+
|
|
175
|
+
## License
|
|
176
|
+
|
|
177
|
+
MIT
|
|
178
|
+
`;
|
|
179
|
+
}
|
|
180
|
+
function getDatabaseSetupInstructions(config) {
|
|
181
|
+
switch (config.database) {
|
|
182
|
+
case 'postgresql':
|
|
183
|
+
return `\`\`\`bash
|
|
184
|
+
# Using Docker
|
|
185
|
+
docker-compose up -d postgres
|
|
186
|
+
|
|
187
|
+
# Or install PostgreSQL locally and create a database
|
|
188
|
+
createdb ${config.projectName}
|
|
189
|
+
|
|
190
|
+
# Run migrations
|
|
191
|
+
cd backend
|
|
192
|
+
npx prisma migrate dev
|
|
193
|
+
\`\`\``;
|
|
194
|
+
case 'mongodb':
|
|
195
|
+
return `\`\`\`bash
|
|
196
|
+
# Using Docker
|
|
197
|
+
docker-compose up -d mongodb
|
|
198
|
+
|
|
199
|
+
# Or install MongoDB locally
|
|
200
|
+
# No migrations needed - Mongoose handles schema
|
|
201
|
+
\`\`\``;
|
|
202
|
+
case 'mysql':
|
|
203
|
+
return `\`\`\`bash
|
|
204
|
+
# Using Docker
|
|
205
|
+
docker-compose up -d mysql
|
|
206
|
+
|
|
207
|
+
# Or install MySQL locally and create a database
|
|
208
|
+
mysql -u root -p -e "CREATE DATABASE ${config.projectName};"
|
|
209
|
+
|
|
210
|
+
# Run migrations
|
|
211
|
+
cd backend
|
|
212
|
+
npx prisma migrate dev
|
|
213
|
+
\`\`\``;
|
|
214
|
+
case 'sqlite':
|
|
215
|
+
return `\`\`\`bash
|
|
216
|
+
# SQLite is file-based, no setup needed
|
|
217
|
+
# Database file will be created automatically
|
|
218
|
+
cd backend
|
|
219
|
+
npx prisma migrate dev
|
|
220
|
+
\`\`\``;
|
|
221
|
+
case 'supabase-db':
|
|
222
|
+
return `\`\`\`bash
|
|
223
|
+
# Create a Supabase project at https://supabase.com
|
|
224
|
+
# Copy your connection string to .env
|
|
225
|
+
# Run migrations through Supabase dashboard or CLI
|
|
226
|
+
\`\`\``;
|
|
227
|
+
default:
|
|
228
|
+
return 'See backend/README.md for database setup instructions.';
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
function getAuthInstructions(config) {
|
|
232
|
+
switch (config.auth) {
|
|
233
|
+
case 'jwt':
|
|
234
|
+
return `This project uses built-in JWT authentication. Users can register and login through the API endpoints:
|
|
235
|
+
|
|
236
|
+
- \`POST /api/auth/register\` - Create a new account
|
|
237
|
+
- \`POST /api/auth/login\` - Login and receive JWT token
|
|
238
|
+
- Include the token in requests: \`Authorization: Bearer <token>\``;
|
|
239
|
+
case 'clerk':
|
|
240
|
+
return `This project uses Clerk for authentication.
|
|
241
|
+
|
|
242
|
+
1. Create a Clerk account at https://clerk.com
|
|
243
|
+
2. Create a new application
|
|
244
|
+
3. Copy your API keys to \`.env\`
|
|
245
|
+
4. Configure allowed redirect URLs in Clerk dashboard`;
|
|
246
|
+
case 'supabase':
|
|
247
|
+
return `This project uses Supabase Auth.
|
|
248
|
+
|
|
249
|
+
1. Create a Supabase project at https://supabase.com
|
|
250
|
+
2. Copy your project URL and anon key to \`.env\`
|
|
251
|
+
3. Configure auth providers in Supabase dashboard`;
|
|
252
|
+
case 'authjs':
|
|
253
|
+
return `This project uses Auth.js (NextAuth).
|
|
254
|
+
|
|
255
|
+
1. Configure providers in \`backend/src/auth/config.ts\`
|
|
256
|
+
2. Add provider credentials to \`.env\`
|
|
257
|
+
3. See https://authjs.dev for provider setup guides`;
|
|
258
|
+
case 'firebase':
|
|
259
|
+
return `This project uses Firebase Auth.
|
|
260
|
+
|
|
261
|
+
1. Create a Firebase project at https://firebase.google.com
|
|
262
|
+
2. Enable authentication methods
|
|
263
|
+
3. Copy your config to \`.env\``;
|
|
264
|
+
default:
|
|
265
|
+
return 'See documentation for authentication setup.';
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
function getTenantScopingInfo(config) {
|
|
269
|
+
switch (config.auth) {
|
|
270
|
+
case 'clerk':
|
|
271
|
+
return '- Clerk organization ID is used as tenant ID\n- Organization membership determines access';
|
|
272
|
+
case 'supabase':
|
|
273
|
+
return '- Supabase user metadata contains tenant_id\n- Row Level Security (RLS) policies enforce isolation';
|
|
274
|
+
case 'jwt':
|
|
275
|
+
return '- JWT token contains tenant_id claim\n- Middleware extracts and validates tenant context';
|
|
276
|
+
default:
|
|
277
|
+
return '- Authentication provider includes tenant information\n- Middleware enforces tenant isolation';
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function generateEnvExample(config) {
|
|
281
|
+
let env = `# Database
|
|
282
|
+
DATABASE_URL="${getDatabaseUrl(config)}"
|
|
283
|
+
|
|
284
|
+
# Server
|
|
285
|
+
PORT=3000
|
|
286
|
+
NODE_ENV=development
|
|
287
|
+
|
|
288
|
+
`;
|
|
289
|
+
// Auth-specific variables
|
|
290
|
+
switch (config.auth) {
|
|
291
|
+
case 'jwt':
|
|
292
|
+
env += `# JWT Authentication
|
|
293
|
+
JWT_SECRET=your-super-secret-jwt-key-change-this
|
|
294
|
+
JWT_EXPIRES_IN=7d
|
|
295
|
+
`;
|
|
296
|
+
break;
|
|
297
|
+
case 'clerk':
|
|
298
|
+
env += `# Clerk Authentication
|
|
299
|
+
CLERK_PUBLISHABLE_KEY=pk_test_xxxxx
|
|
300
|
+
CLERK_SECRET_KEY=sk_test_xxxxx
|
|
301
|
+
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxxxx
|
|
302
|
+
`;
|
|
303
|
+
break;
|
|
304
|
+
case 'supabase':
|
|
305
|
+
env += `# Supabase
|
|
306
|
+
SUPABASE_URL=https://xxxxx.supabase.co
|
|
307
|
+
SUPABASE_ANON_KEY=xxxxx
|
|
308
|
+
SUPABASE_SERVICE_ROLE_KEY=xxxxx
|
|
309
|
+
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
|
|
310
|
+
NEXT_PUBLIC_SUPABASE_ANON_KEY=xxxxx
|
|
311
|
+
`;
|
|
312
|
+
break;
|
|
313
|
+
case 'authjs':
|
|
314
|
+
env += `# Auth.js
|
|
315
|
+
NEXTAUTH_URL=http://localhost:3000
|
|
316
|
+
NEXTAUTH_SECRET=your-secret-key-change-this
|
|
317
|
+
GOOGLE_CLIENT_ID=xxxxx
|
|
318
|
+
GOOGLE_CLIENT_SECRET=xxxxx
|
|
319
|
+
`;
|
|
320
|
+
break;
|
|
321
|
+
case 'firebase':
|
|
322
|
+
env += `# Firebase
|
|
323
|
+
FIREBASE_API_KEY=xxxxx
|
|
324
|
+
FIREBASE_AUTH_DOMAIN=xxxxx.firebaseapp.com
|
|
325
|
+
FIREBASE_PROJECT_ID=xxxxx
|
|
326
|
+
NEXT_PUBLIC_FIREBASE_API_KEY=xxxxx
|
|
327
|
+
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=xxxxx.firebaseapp.com
|
|
328
|
+
NEXT_PUBLIC_FIREBASE_PROJECT_ID=xxxxx
|
|
329
|
+
`;
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
// Frontend URL
|
|
333
|
+
env += `\n# Frontend
|
|
334
|
+
FRONTEND_URL=http://localhost:5173
|
|
335
|
+
`;
|
|
336
|
+
return env;
|
|
337
|
+
}
|
|
338
|
+
function getDatabaseUrl(config) {
|
|
339
|
+
switch (config.database) {
|
|
340
|
+
case 'postgresql':
|
|
341
|
+
return 'postgresql://user:password@localhost:5432/dbname';
|
|
342
|
+
case 'mongodb':
|
|
343
|
+
return 'mongodb://localhost:27017/dbname';
|
|
344
|
+
case 'mysql':
|
|
345
|
+
return 'mysql://user:password@localhost:3306/dbname';
|
|
346
|
+
case 'sqlite':
|
|
347
|
+
return 'file:./dev.db';
|
|
348
|
+
case 'supabase-db':
|
|
349
|
+
return 'postgresql://postgres:password@db.xxxxx.supabase.co:5432/postgres';
|
|
350
|
+
default:
|
|
351
|
+
return 'your-database-connection-string';
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/generators/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/generators/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAgB7E"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateDatabase = generateDatabase;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
async function generateDatabase(config, backendDir) {
|
|
10
|
+
switch (config.database) {
|
|
11
|
+
case 'postgresql':
|
|
12
|
+
case 'mysql':
|
|
13
|
+
case 'sqlite':
|
|
14
|
+
await generatePrisma(config, backendDir);
|
|
15
|
+
break;
|
|
16
|
+
case 'mongodb':
|
|
17
|
+
await generateMongoose(config, backendDir);
|
|
18
|
+
break;
|
|
19
|
+
case 'supabase-db':
|
|
20
|
+
await generateSupabase(config, backendDir);
|
|
21
|
+
break;
|
|
22
|
+
default:
|
|
23
|
+
throw new Error(`Unsupported database: ${config.database}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async function generatePrisma(config, backendDir) {
|
|
27
|
+
const prismaDir = path_1.default.join(backendDir, 'prisma');
|
|
28
|
+
await fs_extra_1.default.ensureDir(prismaDir);
|
|
29
|
+
// Prisma schema
|
|
30
|
+
const schema = getPrismaSchema(config);
|
|
31
|
+
await fs_extra_1.default.writeFile(path_1.default.join(prismaDir, 'schema.prisma'), schema);
|
|
32
|
+
// Prisma client initialization
|
|
33
|
+
const prismaClient = `import { PrismaClient } from '@prisma/client';
|
|
34
|
+
|
|
35
|
+
const globalForPrisma = globalThis as unknown as {
|
|
36
|
+
prisma: PrismaClient | undefined;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const prisma =
|
|
40
|
+
globalForPrisma.prisma ??
|
|
41
|
+
new PrismaClient({
|
|
42
|
+
log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
|
|
46
|
+
|
|
47
|
+
export default prisma;
|
|
48
|
+
`;
|
|
49
|
+
const libDir = path_1.default.join(backendDir, 'src', 'lib');
|
|
50
|
+
await fs_extra_1.default.ensureDir(libDir);
|
|
51
|
+
await fs_extra_1.default.writeFile(path_1.default.join(libDir, 'prisma.ts'), prismaClient);
|
|
52
|
+
}
|
|
53
|
+
function getPrismaSchema(config) {
|
|
54
|
+
const datasourceProvider = config.database === 'postgresql' ? 'postgresql'
|
|
55
|
+
: config.database === 'mysql' ? 'mysql'
|
|
56
|
+
: 'sqlite';
|
|
57
|
+
return `generator client {
|
|
58
|
+
provider = "prisma-client-js"
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
datasource db {
|
|
62
|
+
provider = "${datasourceProvider}"
|
|
63
|
+
url = env("DATABASE_URL")
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
${config.multiTenant ? `model Tenant {
|
|
67
|
+
id String @id @default(cuid())
|
|
68
|
+
name String
|
|
69
|
+
slug String @unique
|
|
70
|
+
createdAt DateTime @default(now())
|
|
71
|
+
updatedAt DateTime @updatedAt
|
|
72
|
+
users User[]
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
` : ''}model User {
|
|
76
|
+
id String @id @default(cuid())
|
|
77
|
+
email String @unique
|
|
78
|
+
name String?
|
|
79
|
+
password String? ${config.auth === 'jwt' ? '' : '// Only for JWT auth'}
|
|
80
|
+
${config.multiTenant ? 'tenantId String\n tenant Tenant @relation(fields: [tenantId], references: [id])\n ' : ''}createdAt DateTime @default(now())
|
|
81
|
+
updatedAt DateTime @updatedAt
|
|
82
|
+
}
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
85
|
+
async function generateMongoose(config, backendDir) {
|
|
86
|
+
// Mongoose connection
|
|
87
|
+
const mongooseConnection = `import mongoose from 'mongoose';
|
|
88
|
+
|
|
89
|
+
const MONGODB_URI = process.env.DATABASE_URL || 'mongodb://localhost:27017/${config.projectName}';
|
|
90
|
+
|
|
91
|
+
let isConnected = false;
|
|
92
|
+
|
|
93
|
+
export async function connectDB() {
|
|
94
|
+
if (isConnected) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
await mongoose.connect(MONGODB_URI);
|
|
100
|
+
isConnected = true;
|
|
101
|
+
console.log('✅ MongoDB connected');
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.error('❌ MongoDB connection error:', error);
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export default mongoose;
|
|
109
|
+
`;
|
|
110
|
+
const libDir = path_1.default.join(backendDir, 'src', 'lib');
|
|
111
|
+
await fs_extra_1.default.ensureDir(libDir);
|
|
112
|
+
await fs_extra_1.default.writeFile(path_1.default.join(libDir, 'mongoose.ts'), mongooseConnection);
|
|
113
|
+
// User model
|
|
114
|
+
const modelsDir = path_1.default.join(backendDir, 'src', 'models');
|
|
115
|
+
await fs_extra_1.default.ensureDir(modelsDir);
|
|
116
|
+
const userModel = `import mongoose, { Schema, Document } from 'mongoose';
|
|
117
|
+
|
|
118
|
+
export interface IUser extends Document {
|
|
119
|
+
email: string;
|
|
120
|
+
name?: string;
|
|
121
|
+
password?: string;
|
|
122
|
+
${config.multiTenant ? 'tenantId: string;' : ''}
|
|
123
|
+
createdAt: Date;
|
|
124
|
+
updatedAt: Date;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const UserSchema = new Schema<IUser>(
|
|
128
|
+
{
|
|
129
|
+
email: { type: String, required: true, unique: true },
|
|
130
|
+
name: { type: String },
|
|
131
|
+
password: { type: String },
|
|
132
|
+
${config.multiTenant ? 'tenantId: { type: String, required: true, index: true },' : ''}
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
timestamps: true,
|
|
136
|
+
}
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
export default mongoose.model<IUser>('User', UserSchema);
|
|
140
|
+
`;
|
|
141
|
+
await fs_extra_1.default.writeFile(path_1.default.join(modelsDir, 'User.ts'), userModel);
|
|
142
|
+
}
|
|
143
|
+
async function generateSupabase(config, backendDir) {
|
|
144
|
+
const supabaseClient = `import { createClient } from '@supabase/supabase-js';
|
|
145
|
+
|
|
146
|
+
const supabaseUrl = process.env.SUPABASE_URL!;
|
|
147
|
+
const supabaseKey = process.env.SUPABASE_SERVICE_ROLE_KEY!;
|
|
148
|
+
|
|
149
|
+
export const supabase = createClient(supabaseUrl, supabaseKey);
|
|
150
|
+
|
|
151
|
+
export default supabase;
|
|
152
|
+
`;
|
|
153
|
+
const libDir = path_1.default.join(backendDir, 'src', 'lib');
|
|
154
|
+
await fs_extra_1.default.ensureDir(libDir);
|
|
155
|
+
await fs_extra_1.default.writeFile(path_1.default.join(libDir, 'supabase.ts'), supabaseClient);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/generators/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/generators/docker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAyF1E"}
|