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.
@@ -1,4 +1,4 @@
1
1
 
2
- > create-moria@0.3.4 build C:\Codes\node\2026\github\moriajs\packages\create-moria
2
+ > create-moria@0.4.0 build C:\Codes\node\2026\github\moriajs\packages\create-moria
3
3
  > tsc
4
4
 
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.3.4';
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 with Kysely',
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 with Kysely',
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-moria",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "description": "Create a new MoriaJS project",
6
6
  "main": "./dist/index.js",
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.3.4';
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 with Kysely',
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 with Kysely',
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
- .action(async (projectName?: string, options?: Record<string, unknown>) => {
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();