create-moria 0.3.4 → 0.4.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/.turbo/turbo-build.log +1 -1
- package/dist/index.js +61 -11
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +62 -12
package/.turbo/turbo-build.log
CHANGED
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import pc from 'picocolors';
|
|
|
17
17
|
import prompts from 'prompts';
|
|
18
18
|
import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
19
19
|
import { join, resolve } from 'node:path';
|
|
20
|
-
const VERSION = '0.
|
|
20
|
+
const VERSION = '0.4.0';
|
|
21
21
|
export const cli = cac('create-moria');
|
|
22
22
|
// ─── Template file generators ─────────────────────────
|
|
23
23
|
function tsconfigContent() {
|
|
@@ -65,10 +65,10 @@ dist/
|
|
|
65
65
|
.turbo/
|
|
66
66
|
`;
|
|
67
67
|
}
|
|
68
|
-
function moriaConfigTs(db) {
|
|
68
|
+
function moriaConfigTs(db, usePongo = false) {
|
|
69
69
|
const dbConfig = db === 'sqlite'
|
|
70
70
|
? ` adapter: 'sqlite',\n filename: './dev.db',`
|
|
71
|
-
: ` adapter: 'pg',\n url: process.env.DATABASE_URL
|
|
71
|
+
: ` adapter: 'pg',\n url: process.env.DATABASE_URL,${usePongo ? '\n usePongo: true,' : ''}`;
|
|
72
72
|
return `import { defineConfig } from '@moriajs/core';
|
|
73
73
|
|
|
74
74
|
export default defineConfig({
|
|
@@ -84,10 +84,10 @@ ${dbConfig}
|
|
|
84
84
|
});
|
|
85
85
|
`;
|
|
86
86
|
}
|
|
87
|
-
function moriaConfigJs(db) {
|
|
87
|
+
function moriaConfigJs(db, usePongo = false) {
|
|
88
88
|
const dbConfig = db === 'sqlite'
|
|
89
89
|
? ` adapter: 'sqlite',\n filename: './dev.db',`
|
|
90
|
-
: ` adapter: 'pg',\n url: process.env.DATABASE_URL
|
|
90
|
+
: ` adapter: 'pg',\n url: process.env.DATABASE_URL,${usePongo ? '\n usePongo: true,' : ''}`;
|
|
91
91
|
return `/** @type {import('@moriajs/core').MoriaConfig} */
|
|
92
92
|
export default {
|
|
93
93
|
server: {
|
|
@@ -214,12 +214,20 @@ function srcApiUsersTs() {
|
|
|
214
214
|
|
|
215
215
|
import type { FastifyRequest, FastifyReply } from 'fastify';
|
|
216
216
|
|
|
217
|
-
export function GET(request: FastifyRequest<{ Params: { id: string } }>, _reply: FastifyReply) {
|
|
217
|
+
export async function GET(request: FastifyRequest<{ Params: { id: string } }>, _reply: FastifyReply) {
|
|
218
218
|
const { id } = request.params;
|
|
219
|
+
|
|
220
|
+
// Example using the MoriaJS Agnostic DB API
|
|
221
|
+
// This works regardless of the underlying library (Kysely, Pongo, etc.)
|
|
222
|
+
const user = await request.server.db.findOne<{ id: string, name: string, email: string }>('users', { id });
|
|
223
|
+
|
|
224
|
+
if (user) return user;
|
|
225
|
+
|
|
219
226
|
return {
|
|
220
227
|
id,
|
|
221
228
|
name: \`User \${id}\`,
|
|
222
229
|
email: \`user\${id}@example.com\`,
|
|
230
|
+
_source: 'mock',
|
|
223
231
|
};
|
|
224
232
|
}
|
|
225
233
|
`;
|
|
@@ -271,12 +279,19 @@ function srcApiUsersJs() {
|
|
|
271
279
|
* GET /api/users/:id
|
|
272
280
|
*/
|
|
273
281
|
|
|
274
|
-
export function GET(request, _reply) {
|
|
282
|
+
export async function GET(request, _reply) {
|
|
275
283
|
const { id } = request.params;
|
|
284
|
+
|
|
285
|
+
// Example using the MoriaJS Agnostic DB API
|
|
286
|
+
const user = await request.server.db.findOne('users', { id });
|
|
287
|
+
|
|
288
|
+
if (user) return user;
|
|
289
|
+
|
|
276
290
|
return {
|
|
277
291
|
id,
|
|
278
292
|
name: \`User \${id}\`,
|
|
279
293
|
email: \`user\${id}@example.com\`,
|
|
294
|
+
_source: 'mock',
|
|
280
295
|
};
|
|
281
296
|
}
|
|
282
297
|
`;
|
|
@@ -313,13 +328,15 @@ export async function getServerData() {
|
|
|
313
328
|
'File-based routing',
|
|
314
329
|
'SSR + client hydration',
|
|
315
330
|
'Middleware system',
|
|
316
|
-
'Database
|
|
331
|
+
'Agnostic Database (Kysely/Pongo)',
|
|
317
332
|
'JWT authentication',
|
|
318
333
|
],
|
|
319
334
|
};
|
|
320
335
|
}
|
|
321
336
|
|
|
322
337
|
/** Page component */
|
|
338
|
+
let count = 0;
|
|
339
|
+
|
|
323
340
|
export default {
|
|
324
341
|
title: 'MoriaJS App',
|
|
325
342
|
view(vnode: m.Vnode<{ serverData?: { title: string; features: string[] } }>) {
|
|
@@ -327,6 +344,16 @@ export default {
|
|
|
327
344
|
return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
|
|
328
345
|
m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
|
|
329
346
|
m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
|
|
347
|
+
|
|
348
|
+
m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
|
|
349
|
+
m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
|
|
350
|
+
m('p', 'Click the button below to verify that client-side hydration is working:'),
|
|
351
|
+
m('button', {
|
|
352
|
+
style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
|
|
353
|
+
onclick: () => { count++; }
|
|
354
|
+
}, \`Count is \${count}\`),
|
|
355
|
+
]),
|
|
356
|
+
|
|
330
357
|
m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
|
|
331
358
|
m('h2', { style: 'font-size:1.3rem' }, 'Features'),
|
|
332
359
|
m('ul', { style: 'line-height:1.8' },
|
|
@@ -366,13 +393,15 @@ export async function getServerData() {
|
|
|
366
393
|
'File-based routing',
|
|
367
394
|
'SSR + client hydration',
|
|
368
395
|
'Middleware system',
|
|
369
|
-
'Database
|
|
396
|
+
'Agnostic Database (Kysely/Pongo)',
|
|
370
397
|
'JWT authentication',
|
|
371
398
|
],
|
|
372
399
|
};
|
|
373
400
|
}
|
|
374
401
|
|
|
375
402
|
/** Page component */
|
|
403
|
+
let count = 0;
|
|
404
|
+
|
|
376
405
|
export default {
|
|
377
406
|
title: 'MoriaJS App',
|
|
378
407
|
view(vnode) {
|
|
@@ -380,6 +409,16 @@ export default {
|
|
|
380
409
|
return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
|
|
381
410
|
m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
|
|
382
411
|
m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
|
|
412
|
+
|
|
413
|
+
m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
|
|
414
|
+
m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
|
|
415
|
+
m('p', 'Click the button below to verify that client-side hydration is working:'),
|
|
416
|
+
m('button', {
|
|
417
|
+
style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
|
|
418
|
+
onclick: () => { count++; }
|
|
419
|
+
}, \`Count is \${count}\`),
|
|
420
|
+
]),
|
|
421
|
+
|
|
383
422
|
m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
|
|
384
423
|
m('h2', { style: 'font-size:1.3rem' }, 'Features'),
|
|
385
424
|
m('ul', { style: 'line-height:1.8' },
|
|
@@ -463,6 +502,7 @@ cli
|
|
|
463
502
|
.option('--typescript', 'Use TypeScript (default)')
|
|
464
503
|
.option('--javascript', 'Use JavaScript')
|
|
465
504
|
.option('--db <adapter>', 'Database adapter: pg | sqlite', { default: '' })
|
|
505
|
+
.option('--pongo', 'Use Pongo with PostgreSQL', { default: false })
|
|
466
506
|
.action(async (projectName, options) => {
|
|
467
507
|
console.log();
|
|
468
508
|
console.log(pc.cyan('🏔️ create-moria') + pc.dim(` v${VERSION}`));
|
|
@@ -506,6 +546,14 @@ cli
|
|
|
506
546
|
],
|
|
507
547
|
initial: 0,
|
|
508
548
|
},
|
|
549
|
+
{
|
|
550
|
+
type: (prev) => prev === 'pg' && !options?.db ? 'toggle' : null,
|
|
551
|
+
name: 'usePongo',
|
|
552
|
+
message: 'Use Pongo (MongoDB-like API on Postgres)?',
|
|
553
|
+
initial: true,
|
|
554
|
+
active: 'yes',
|
|
555
|
+
inactive: 'no',
|
|
556
|
+
},
|
|
509
557
|
]);
|
|
510
558
|
const name = projectName ?? answers.projectName;
|
|
511
559
|
if (!name) {
|
|
@@ -516,6 +564,7 @@ cli
|
|
|
516
564
|
const isTS = options?.typescript || answers.language === 'ts' || (!options?.javascript && !answers.language);
|
|
517
565
|
const lang = isTS ? 'ts' : 'js';
|
|
518
566
|
const db = options?.db || answers.database || 'sqlite';
|
|
567
|
+
const usePongo = options?.pongo || answers.usePongo || false;
|
|
519
568
|
const dir = resolve(process.cwd(), name);
|
|
520
569
|
const ext = lang === 'ts' ? 'ts' : 'js';
|
|
521
570
|
if (existsSync(dir)) {
|
|
@@ -526,7 +575,7 @@ cli
|
|
|
526
575
|
console.log(pc.green(`Creating MoriaJS project in ${pc.bold(dir)}`));
|
|
527
576
|
console.log(pc.dim(` Template : ${template}`));
|
|
528
577
|
console.log(pc.dim(` Language : ${isTS ? 'TypeScript' : 'JavaScript'}`));
|
|
529
|
-
console.log(pc.dim(` Database : ${db}`));
|
|
578
|
+
console.log(pc.dim(` Database : ${db}${usePongo ? ' (with Pongo)' : ''}`));
|
|
530
579
|
console.log();
|
|
531
580
|
// ─── Create directory structure ─────────────────────
|
|
532
581
|
if (template === 'default') {
|
|
@@ -571,7 +620,7 @@ cli
|
|
|
571
620
|
};
|
|
572
621
|
write(join(dir, 'package.json'), JSON.stringify(pkgJson, null, 2) + '\n');
|
|
573
622
|
// ─── Config ─────────────────────────────────────────
|
|
574
|
-
write(join(dir, `moria.config.${ext}`), isTS ? moriaConfigTs(db) : moriaConfigJs(db));
|
|
623
|
+
write(join(dir, `moria.config.${ext}`), isTS ? moriaConfigTs(db, usePongo) : moriaConfigJs(db, usePongo));
|
|
575
624
|
// ─── tsconfig.json ──────────────────────────────────
|
|
576
625
|
if (isTS) {
|
|
577
626
|
write(join(dir, 'tsconfig.json'), tsconfigContent() + '\n');
|
|
@@ -617,4 +666,5 @@ cli
|
|
|
617
666
|
});
|
|
618
667
|
cli.version(VERSION);
|
|
619
668
|
cli.help();
|
|
669
|
+
cli.parse();
|
|
620
670
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -19,7 +19,7 @@ import prompts from 'prompts';
|
|
|
19
19
|
import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
20
20
|
import { join, resolve } from 'node:path';
|
|
21
21
|
|
|
22
|
-
const VERSION = '0.
|
|
22
|
+
const VERSION = '0.4.0';
|
|
23
23
|
|
|
24
24
|
export const cli = cac('create-moria');
|
|
25
25
|
|
|
@@ -76,11 +76,11 @@ dist/
|
|
|
76
76
|
`;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
function moriaConfigTs(db: string): string {
|
|
79
|
+
function moriaConfigTs(db: string, usePongo: boolean = false): string {
|
|
80
80
|
const dbConfig =
|
|
81
81
|
db === 'sqlite'
|
|
82
82
|
? ` adapter: 'sqlite',\n filename: './dev.db',`
|
|
83
|
-
: ` adapter: 'pg',\n url: process.env.DATABASE_URL
|
|
83
|
+
: ` adapter: 'pg',\n url: process.env.DATABASE_URL,${usePongo ? '\n usePongo: true,' : ''}`;
|
|
84
84
|
return `import { defineConfig } from '@moriajs/core';
|
|
85
85
|
|
|
86
86
|
export default defineConfig({
|
|
@@ -97,11 +97,11 @@ ${dbConfig}
|
|
|
97
97
|
`;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
function moriaConfigJs(db: string): string {
|
|
100
|
+
function moriaConfigJs(db: string, usePongo: boolean = false): string {
|
|
101
101
|
const dbConfig =
|
|
102
102
|
db === 'sqlite'
|
|
103
103
|
? ` adapter: 'sqlite',\n filename: './dev.db',`
|
|
104
|
-
: ` adapter: 'pg',\n url: process.env.DATABASE_URL
|
|
104
|
+
: ` adapter: 'pg',\n url: process.env.DATABASE_URL,${usePongo ? '\n usePongo: true,' : ''}`;
|
|
105
105
|
return `/** @type {import('@moriajs/core').MoriaConfig} */
|
|
106
106
|
export default {
|
|
107
107
|
server: {
|
|
@@ -236,12 +236,20 @@ function srcApiUsersTs(): string {
|
|
|
236
236
|
|
|
237
237
|
import type { FastifyRequest, FastifyReply } from 'fastify';
|
|
238
238
|
|
|
239
|
-
export function GET(request: FastifyRequest<{ Params: { id: string } }>, _reply: FastifyReply) {
|
|
239
|
+
export async function GET(request: FastifyRequest<{ Params: { id: string } }>, _reply: FastifyReply) {
|
|
240
240
|
const { id } = request.params;
|
|
241
|
+
|
|
242
|
+
// Example using the MoriaJS Agnostic DB API
|
|
243
|
+
// This works regardless of the underlying library (Kysely, Pongo, etc.)
|
|
244
|
+
const user = await request.server.db.findOne<{ id: string, name: string, email: string }>('users', { id });
|
|
245
|
+
|
|
246
|
+
if (user) return user;
|
|
247
|
+
|
|
241
248
|
return {
|
|
242
249
|
id,
|
|
243
250
|
name: \`User \${id}\`,
|
|
244
251
|
email: \`user\${id}@example.com\`,
|
|
252
|
+
_source: 'mock',
|
|
245
253
|
};
|
|
246
254
|
}
|
|
247
255
|
`;
|
|
@@ -297,12 +305,19 @@ function srcApiUsersJs(): string {
|
|
|
297
305
|
* GET /api/users/:id
|
|
298
306
|
*/
|
|
299
307
|
|
|
300
|
-
export function GET(request, _reply) {
|
|
308
|
+
export async function GET(request, _reply) {
|
|
301
309
|
const { id } = request.params;
|
|
310
|
+
|
|
311
|
+
// Example using the MoriaJS Agnostic DB API
|
|
312
|
+
const user = await request.server.db.findOne('users', { id });
|
|
313
|
+
|
|
314
|
+
if (user) return user;
|
|
315
|
+
|
|
302
316
|
return {
|
|
303
317
|
id,
|
|
304
318
|
name: \`User \${id}\`,
|
|
305
319
|
email: \`user\${id}@example.com\`,
|
|
320
|
+
_source: 'mock',
|
|
306
321
|
};
|
|
307
322
|
}
|
|
308
323
|
`;
|
|
@@ -341,13 +356,15 @@ export async function getServerData() {
|
|
|
341
356
|
'File-based routing',
|
|
342
357
|
'SSR + client hydration',
|
|
343
358
|
'Middleware system',
|
|
344
|
-
'Database
|
|
359
|
+
'Agnostic Database (Kysely/Pongo)',
|
|
345
360
|
'JWT authentication',
|
|
346
361
|
],
|
|
347
362
|
};
|
|
348
363
|
}
|
|
349
364
|
|
|
350
365
|
/** Page component */
|
|
366
|
+
let count = 0;
|
|
367
|
+
|
|
351
368
|
export default {
|
|
352
369
|
title: 'MoriaJS App',
|
|
353
370
|
view(vnode: m.Vnode<{ serverData?: { title: string; features: string[] } }>) {
|
|
@@ -355,6 +372,16 @@ export default {
|
|
|
355
372
|
return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
|
|
356
373
|
m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
|
|
357
374
|
m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
|
|
375
|
+
|
|
376
|
+
m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
|
|
377
|
+
m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
|
|
378
|
+
m('p', 'Click the button below to verify that client-side hydration is working:'),
|
|
379
|
+
m('button', {
|
|
380
|
+
style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
|
|
381
|
+
onclick: () => { count++; }
|
|
382
|
+
}, \`Count is \${count}\`),
|
|
383
|
+
]),
|
|
384
|
+
|
|
358
385
|
m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
|
|
359
386
|
m('h2', { style: 'font-size:1.3rem' }, 'Features'),
|
|
360
387
|
m('ul', { style: 'line-height:1.8' },
|
|
@@ -395,13 +422,15 @@ export async function getServerData() {
|
|
|
395
422
|
'File-based routing',
|
|
396
423
|
'SSR + client hydration',
|
|
397
424
|
'Middleware system',
|
|
398
|
-
'Database
|
|
425
|
+
'Agnostic Database (Kysely/Pongo)',
|
|
399
426
|
'JWT authentication',
|
|
400
427
|
],
|
|
401
428
|
};
|
|
402
429
|
}
|
|
403
430
|
|
|
404
431
|
/** Page component */
|
|
432
|
+
let count = 0;
|
|
433
|
+
|
|
405
434
|
export default {
|
|
406
435
|
title: 'MoriaJS App',
|
|
407
436
|
view(vnode) {
|
|
@@ -409,6 +438,16 @@ export default {
|
|
|
409
438
|
return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
|
|
410
439
|
m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
|
|
411
440
|
m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
|
|
441
|
+
|
|
442
|
+
m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
|
|
443
|
+
m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
|
|
444
|
+
m('p', 'Click the button below to verify that client-side hydration is working:'),
|
|
445
|
+
m('button', {
|
|
446
|
+
style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
|
|
447
|
+
onclick: () => { count++; }
|
|
448
|
+
}, \`Count is \${count}\`),
|
|
449
|
+
]),
|
|
450
|
+
|
|
412
451
|
m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
|
|
413
452
|
m('h2', { style: 'font-size:1.3rem' }, 'Features'),
|
|
414
453
|
m('ul', { style: 'line-height:1.8' },
|
|
@@ -499,7 +538,8 @@ cli
|
|
|
499
538
|
.option('--typescript', 'Use TypeScript (default)')
|
|
500
539
|
.option('--javascript', 'Use JavaScript')
|
|
501
540
|
.option('--db <adapter>', 'Database adapter: pg | sqlite', { default: '' })
|
|
502
|
-
.
|
|
541
|
+
.option('--pongo', 'Use Pongo with PostgreSQL', { default: false })
|
|
542
|
+
.action(async (projectName?: string, options?: Record<string, any>) => {
|
|
503
543
|
console.log();
|
|
504
544
|
console.log(pc.cyan('🏔️ create-moria') + pc.dim(` v${VERSION}`));
|
|
505
545
|
console.log(pc.dim(' The MoriaJS project scaffolder'));
|
|
@@ -543,6 +583,14 @@ cli
|
|
|
543
583
|
],
|
|
544
584
|
initial: 0,
|
|
545
585
|
},
|
|
586
|
+
{
|
|
587
|
+
type: (prev) => prev === 'pg' && !options?.db ? 'toggle' : null,
|
|
588
|
+
name: 'usePongo',
|
|
589
|
+
message: 'Use Pongo (MongoDB-like API on Postgres)?',
|
|
590
|
+
initial: true,
|
|
591
|
+
active: 'yes',
|
|
592
|
+
inactive: 'no',
|
|
593
|
+
},
|
|
546
594
|
]);
|
|
547
595
|
|
|
548
596
|
const name = projectName ?? answers.projectName;
|
|
@@ -555,6 +603,7 @@ cli
|
|
|
555
603
|
const isTS = (options?.typescript as boolean) || answers.language === 'ts' || (!options?.javascript && !answers.language);
|
|
556
604
|
const lang = isTS ? 'ts' : 'js';
|
|
557
605
|
const db = (options?.db as string) || answers.database || 'sqlite';
|
|
606
|
+
const usePongo = (options?.pongo as boolean) || answers.usePongo || false;
|
|
558
607
|
const dir = resolve(process.cwd(), name);
|
|
559
608
|
const ext = lang === 'ts' ? 'ts' : 'js';
|
|
560
609
|
|
|
@@ -567,7 +616,7 @@ cli
|
|
|
567
616
|
console.log(pc.green(`Creating MoriaJS project in ${pc.bold(dir)}`));
|
|
568
617
|
console.log(pc.dim(` Template : ${template}`));
|
|
569
618
|
console.log(pc.dim(` Language : ${isTS ? 'TypeScript' : 'JavaScript'}`));
|
|
570
|
-
console.log(pc.dim(` Database : ${db}`));
|
|
619
|
+
console.log(pc.dim(` Database : ${db}${usePongo ? ' (with Pongo)' : ''}`));
|
|
571
620
|
console.log();
|
|
572
621
|
|
|
573
622
|
// ─── Create directory structure ─────────────────────
|
|
@@ -625,7 +674,7 @@ cli
|
|
|
625
674
|
// ─── Config ─────────────────────────────────────────
|
|
626
675
|
write(
|
|
627
676
|
join(dir, `moria.config.${ext}`),
|
|
628
|
-
isTS ? moriaConfigTs(db) : moriaConfigJs(db)
|
|
677
|
+
isTS ? moriaConfigTs(db, usePongo) : moriaConfigJs(db, usePongo)
|
|
629
678
|
);
|
|
630
679
|
|
|
631
680
|
// ─── tsconfig.json ──────────────────────────────────
|
|
@@ -704,3 +753,4 @@ cli
|
|
|
704
753
|
|
|
705
754
|
cli.version(VERSION);
|
|
706
755
|
cli.help();
|
|
756
|
+
cli.parse();
|