@sculptor/cli 0.2.1 → 0.2.4
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/README.md +91 -4
- package/dist/cli.js +120 -11
- package/dist/cli.js.map +1 -1
- package/dist/package-manager.d.ts +3 -0
- package/dist/package-manager.js +20 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/plugins.d.ts +3 -0
- package/dist/plugins.js +29 -1
- package/dist/plugins.js.map +1 -1
- package/dist/runtime-dependencies.d.ts +8 -0
- package/dist/runtime-dependencies.js +2 -0
- package/dist/runtime-dependencies.js.map +1 -0
- package/dist/scaffold.d.ts +17 -1
- package/dist/scaffold.js +205 -1
- package/dist/scaffold.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -9,6 +9,15 @@ It handles:
|
|
|
9
9
|
- Test generation and registry syncing
|
|
10
10
|
- Dev and production startup paths
|
|
11
11
|
- Help and version output
|
|
12
|
+
- App dependency recovery with `sc install deps`
|
|
13
|
+
- Global package refresh with `sc update`
|
|
14
|
+
- Scaffolded `.gitignore` generation
|
|
15
|
+
|
|
16
|
+
## Version Policy
|
|
17
|
+
|
|
18
|
+
- Deprecated range: `0.2.0` through `0.2.3`
|
|
19
|
+
- Current stable: `0.2.4`
|
|
20
|
+
- Reason: the earlier release predates the current template-registry layout, the `sc config` command set, the `sc install deps` and `sc update` commands, and the route/handler generation contract used by the current CLI.
|
|
12
21
|
|
|
13
22
|
## Quick Command Sheet
|
|
14
23
|
|
|
@@ -20,8 +29,15 @@ It handles:
|
|
|
20
29
|
| `sc build` | Builds the app |
|
|
21
30
|
| `sc lint` | Lints the app |
|
|
22
31
|
| `sc test` | Runs the test suite |
|
|
32
|
+
| `sc config get <path>` | Reads a config value |
|
|
33
|
+
| `sc config set <path=value>` | Writes a config value |
|
|
34
|
+
| `sc config list` | Lists the merged config |
|
|
35
|
+
| `sc install deps` | Replays app dependency installs inside a Sculptor app |
|
|
36
|
+
| `sc i deps` | Alias for `sc install deps` |
|
|
37
|
+
| `sc update` | Updates globally installed Sculptor packages outside an app |
|
|
23
38
|
| `sc generate` / `sc g` | Generates framework resources |
|
|
24
39
|
| `sc g c user` | Generates a controller resource |
|
|
40
|
+
| `sc g r user` | Generates a functional route and handler pair |
|
|
25
41
|
| `sc g c user in src/app/users` | Generates into a custom path |
|
|
26
42
|
| `sc g c in src/app/users` | Infers the name from the path and generates there |
|
|
27
43
|
| `sc g t user -e` | Generates an enum type file |
|
|
@@ -85,6 +101,7 @@ What it solves:
|
|
|
85
101
|
You will find it here:
|
|
86
102
|
- [packages/cli/src/cli.ts](src/cli.ts)
|
|
87
103
|
- [packages/cli/src/scaffold.ts](src/scaffold.ts)
|
|
104
|
+
- [packages/cli/src/runtime-dependencies.ts](src/runtime-dependencies.ts)
|
|
88
105
|
|
|
89
106
|
### `sc dev`
|
|
90
107
|
|
|
@@ -187,6 +204,58 @@ Behavior:
|
|
|
187
204
|
What it solves:
|
|
188
205
|
- You can keep a generated test registry while still having a standard test command
|
|
189
206
|
|
|
207
|
+
### `sc config`
|
|
208
|
+
|
|
209
|
+
What it does:
|
|
210
|
+
- Reads, writes, and lists app config
|
|
211
|
+
|
|
212
|
+
How it is used:
|
|
213
|
+
```bash
|
|
214
|
+
sc config get logging
|
|
215
|
+
sc config set logging.dogMode=false
|
|
216
|
+
sc config list
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Behavior:
|
|
220
|
+
- `get` reads a dot-path from the merged config
|
|
221
|
+
- `set` writes a dot-path assignment while preserving JSON formatting when possible
|
|
222
|
+
- `list` prints the flattened merged config
|
|
223
|
+
- `sculptor` supports the same command set as `sc`
|
|
224
|
+
|
|
225
|
+
### `sc install deps` and `sc i deps`
|
|
226
|
+
|
|
227
|
+
What it does:
|
|
228
|
+
- Replays the standard Sculptor app dependency installation sequence
|
|
229
|
+
- Runs inside an existing Sculptor app root
|
|
230
|
+
- Helps recover after an interrupted `npm i` during setup
|
|
231
|
+
|
|
232
|
+
How it is used:
|
|
233
|
+
```bash
|
|
234
|
+
sc install deps
|
|
235
|
+
sc i deps
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Behavior:
|
|
239
|
+
- Uses `npm i` for the app package.json dependencies first
|
|
240
|
+
- Installs the Sculptor runtime dependencies next
|
|
241
|
+
- Reinstalls the Sculptor CLI/config/router dev dependencies last
|
|
242
|
+
- Refuses to run outside a Sculptor app root
|
|
243
|
+
|
|
244
|
+
### `sc update`
|
|
245
|
+
|
|
246
|
+
What it does:
|
|
247
|
+
- Updates globally installed Sculptor packages to their latest versions
|
|
248
|
+
|
|
249
|
+
How it is used:
|
|
250
|
+
```bash
|
|
251
|
+
sc update
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Behavior:
|
|
255
|
+
- Works only outside a Sculptor app root
|
|
256
|
+
- Uses the active package manager when possible
|
|
257
|
+
- Updates the global Sculptor package set in one pass
|
|
258
|
+
|
|
190
259
|
### `sc generate` and `sc g`
|
|
191
260
|
|
|
192
261
|
What it does:
|
|
@@ -211,7 +280,8 @@ Supported kinds:
|
|
|
211
280
|
|
|
212
281
|
Behavior:
|
|
213
282
|
- Refuses to run outside a Sculptor app root
|
|
214
|
-
-
|
|
283
|
+
- Controller generation is controller-first by default and can opt into paired functional route files with `--functional`
|
|
284
|
+
- Route generation always writes the paired functional route and handler files
|
|
215
285
|
- Rewrites the test registry when test generation is enabled
|
|
216
286
|
|
|
217
287
|
What it solves:
|
|
@@ -291,6 +361,7 @@ sc --version
|
|
|
291
361
|
| Flag | Meaning |
|
|
292
362
|
| --- | --- |
|
|
293
363
|
| `--functional` | Use functional routing mode |
|
|
364
|
+
| `--with-routes` | Alias for paired functional route generation |
|
|
294
365
|
| `--decorator` | Use decorator routing mode |
|
|
295
366
|
| `--hybrid` | Use hybrid routing mode |
|
|
296
367
|
| `--style` | Explicitly set routing mode |
|
|
@@ -307,9 +378,9 @@ sc --version
|
|
|
307
378
|
### Controller generation
|
|
308
379
|
|
|
309
380
|
What it does:
|
|
310
|
-
-
|
|
311
|
-
-
|
|
312
|
-
- In
|
|
381
|
+
- Writes `*.controller.ts` by default
|
|
382
|
+
- Pass `--functional` or `--with-routes` to also write paired `*.route.ts` and `*.route.handler.ts` files
|
|
383
|
+
- In functional-first app flows, the paired functional route files are the standard route shape
|
|
313
384
|
|
|
314
385
|
Examples:
|
|
315
386
|
```bash
|
|
@@ -317,6 +388,7 @@ sc generate controller user
|
|
|
317
388
|
sc g c user
|
|
318
389
|
sc g c user in src/app/users
|
|
319
390
|
sc g c in src/app/users
|
|
391
|
+
sc g c user --functional
|
|
320
392
|
```
|
|
321
393
|
|
|
322
394
|
If you use `in <path>`:
|
|
@@ -445,6 +517,9 @@ Only these commands work from outside a Sculptor app root:
|
|
|
445
517
|
- `sc new`
|
|
446
518
|
- `sc help`
|
|
447
519
|
- `sc version`
|
|
520
|
+
- `sc update`
|
|
521
|
+
|
|
522
|
+
`sc install deps` and `sc i deps` require a Sculptor app root.
|
|
448
523
|
|
|
449
524
|
Everything else requires `sculptor.json` in the current directory.
|
|
450
525
|
|
|
@@ -476,12 +551,22 @@ await runCli(["node", "sc", "help"]);
|
|
|
476
551
|
- `syncTestHarness`
|
|
477
552
|
- the scaffold help strings
|
|
478
553
|
|
|
554
|
+
These generator helpers now resolve `@sculptor/template-registry` at runtime and can prompt to install it if the package is missing.
|
|
555
|
+
Call them with `await` when using the package programmatically.
|
|
556
|
+
|
|
479
557
|
## Package Scripts
|
|
480
558
|
|
|
481
559
|
- `npm run cli` runs the CLI source with `tsx`
|
|
482
560
|
- `npm run build` compiles the package
|
|
483
561
|
- `npm run prepack` builds before packaging
|
|
484
562
|
|
|
563
|
+
## Runtime Boundaries
|
|
564
|
+
|
|
565
|
+
- `@sculptor/template-registry` is a runtime dependency, not a dev-only helper
|
|
566
|
+
- the CLI loads it lazily so global installs can recover cleanly when the package is missing
|
|
567
|
+
- future plugin/template loaders should follow the same pattern: detect, explain, recover, then retry
|
|
568
|
+
- publish `@sculptor/template-registry` before `@sculptor/cli` so global installs never see a missing runtime dependency during rollout
|
|
569
|
+
|
|
485
570
|
## If You Only Remember One Thing
|
|
486
571
|
|
|
487
572
|
If you are inside a Sculptor app root, use:
|
|
@@ -489,6 +574,8 @@ If you are inside a Sculptor app root, use:
|
|
|
489
574
|
```bash
|
|
490
575
|
sc dev
|
|
491
576
|
sc generate controller user
|
|
577
|
+
sc generate route user
|
|
578
|
+
sc config list
|
|
492
579
|
sc test
|
|
493
580
|
```
|
|
494
581
|
|
package/dist/cli.js
CHANGED
|
@@ -7,11 +7,27 @@ import { stdin, stdout } from "node:process";
|
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { loadConfig } from "@sculptor/config";
|
|
9
9
|
import { getConfigValue, listConfigEntries, setConfigValue } from "./config-commands.js";
|
|
10
|
+
import { detectPackageManager, globalInstallArgsFor } from "./package-manager.js";
|
|
10
11
|
import { controllerHelp, generateHelp, generateResourceFiles, middlewareHelp, moduleHelp, parseGenerateMode, readModeFromFlags, routeHelp, scaffoldProject, syncTestHarness, typeHelp, writeGeneratedFiles } from "./scaffold.js";
|
|
11
12
|
import { loadPluginModule, resolvePluginManifest } from "./plugins.js";
|
|
12
13
|
const cliPackageVersion = JSON.parse(fs.readFileSync(new URL("../package.json", import.meta.url), "utf8"));
|
|
13
14
|
const versionLabel = cliPackageVersion.version ?? "0.0.0";
|
|
14
|
-
const isCommand = (value) => [
|
|
15
|
+
const isCommand = (value) => [
|
|
16
|
+
"new",
|
|
17
|
+
"start",
|
|
18
|
+
"dev",
|
|
19
|
+
"build",
|
|
20
|
+
"lint",
|
|
21
|
+
"test",
|
|
22
|
+
"install",
|
|
23
|
+
"i",
|
|
24
|
+
"update",
|
|
25
|
+
"generate",
|
|
26
|
+
"g",
|
|
27
|
+
"help",
|
|
28
|
+
"config",
|
|
29
|
+
"add"
|
|
30
|
+
].includes(value);
|
|
15
31
|
const isFlag = (value) => value.startsWith("-");
|
|
16
32
|
const isVersionFlag = (value) => ["-v", "--v", "--version", "version", "v"].includes(value);
|
|
17
33
|
const sculptorCliBanner = String.raw `
|
|
@@ -76,6 +92,26 @@ const requireAppRoot = (cwd, command) => {
|
|
|
76
92
|
}
|
|
77
93
|
return cwd;
|
|
78
94
|
};
|
|
95
|
+
const findAppRoot = (cwd) => {
|
|
96
|
+
let current = path.resolve(cwd);
|
|
97
|
+
for (;;) {
|
|
98
|
+
if (fs.existsSync(path.join(current, "sculptor.json"))) {
|
|
99
|
+
return current;
|
|
100
|
+
}
|
|
101
|
+
const parent = path.dirname(current);
|
|
102
|
+
if (parent === current) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
current = parent;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const requireOutsideAppRoot = (cwd, command) => {
|
|
109
|
+
const appRoot = findAppRoot(cwd);
|
|
110
|
+
if (appRoot) {
|
|
111
|
+
throw new Error(`${command} can only be run outside a Sculptor app root.`);
|
|
112
|
+
}
|
|
113
|
+
return cwd;
|
|
114
|
+
};
|
|
79
115
|
const extractOutputDir = (args) => {
|
|
80
116
|
const index = args.findIndex((arg) => arg === "in");
|
|
81
117
|
if (index < 0 || index === args.length - 1) {
|
|
@@ -182,6 +218,8 @@ sc <command> [options]
|
|
|
182
218
|
- \`sc build\`
|
|
183
219
|
- \`sc lint\`
|
|
184
220
|
- \`sc test\`
|
|
221
|
+
- \`sc install deps\`
|
|
222
|
+
- \`sc update\`
|
|
185
223
|
- \`sc generate\` or \`sc g\`
|
|
186
224
|
- \`sc config <get|set|list>\`
|
|
187
225
|
- \`sc add <plugin>\`
|
|
@@ -238,6 +276,14 @@ const printHelp = (topic, log) => {
|
|
|
238
276
|
log(`# Config\n\nUse \`sc config get\`, \`sc config set\`, or \`sc config list\`.`);
|
|
239
277
|
return;
|
|
240
278
|
}
|
|
279
|
+
if (topic === "install") {
|
|
280
|
+
log(`# Install\n\nUsage: \`sc install deps\` or \`sc i deps\``);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (topic === "update") {
|
|
284
|
+
log(`# Update\n\nUsage: \`sc update\`\n\nUpdates the globally installed Sculptor packages to their latest versions.`);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
241
287
|
if (topic === "add") {
|
|
242
288
|
log(`# Add\n\nUsage: \`sc add <plugin>\``);
|
|
243
289
|
return;
|
|
@@ -311,16 +357,69 @@ const runSpawn = (command, args, cwd, spawn, log, env) => {
|
|
|
311
357
|
process.exit(result.status);
|
|
312
358
|
}
|
|
313
359
|
};
|
|
360
|
+
const installScaffoldDependencies = (cwd, spawn, log) => {
|
|
361
|
+
runSpawn("npm", ["i"], cwd, spawn, log);
|
|
362
|
+
runSpawn("npm", ["i", "@sculptor/core@latest", "@sculptor/paws@latest"], cwd, spawn, log);
|
|
363
|
+
runSpawn("npm", ["i", "-D", "@sculptor/cli@latest", "@sculptor/config@latest", "@sculptor/router@latest"], cwd, spawn, log);
|
|
364
|
+
};
|
|
365
|
+
const updateGlobalSculptorPackages = (cwd, spawn, log) => {
|
|
366
|
+
const packageManager = detectPackageManager();
|
|
367
|
+
const packages = [
|
|
368
|
+
"@sculptor/cli@latest",
|
|
369
|
+
"@sculptor/config@latest",
|
|
370
|
+
"@sculptor/core@latest",
|
|
371
|
+
"@sculptor/paws@latest",
|
|
372
|
+
"@sculptor/router@latest",
|
|
373
|
+
"@sculptor/template-registry@latest"
|
|
374
|
+
];
|
|
375
|
+
runSpawn(packageManager, globalInstallArgsFor(packageManager, packages), cwd, spawn, log);
|
|
376
|
+
};
|
|
314
377
|
const handleNew = async (args, cwd, prompt, spawn, log) => {
|
|
315
378
|
printBanner(log, "SculptorTS CLI", `v${versionLabel}`);
|
|
316
379
|
const metadata = await resolveProjectMetadata(args, cwd, prompt);
|
|
317
380
|
const targetDir = path.join(cwd, metadata.appName);
|
|
318
|
-
scaffoldProject(metadata, targetDir
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
381
|
+
const scaffolded = await scaffoldProject(metadata, targetDir, {
|
|
382
|
+
cwd,
|
|
383
|
+
prompt,
|
|
384
|
+
spawn,
|
|
385
|
+
log,
|
|
386
|
+
error: () => undefined
|
|
387
|
+
});
|
|
388
|
+
if (!scaffolded) {
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
installScaffoldDependencies(targetDir, spawn, log);
|
|
322
392
|
log(`Created SculptorTS project at ${targetDir}`);
|
|
323
393
|
};
|
|
394
|
+
const handleInstall = (args, cwd, spawn, log, error) => {
|
|
395
|
+
const [subcommand] = args;
|
|
396
|
+
if (!subcommand || subcommand === "help") {
|
|
397
|
+
log(`Usage: sc install deps`);
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
if (subcommand !== "deps") {
|
|
401
|
+
error(`Unknown install subcommand "${subcommand}".`);
|
|
402
|
+
process.exit(1);
|
|
403
|
+
}
|
|
404
|
+
const appRoot = findAppRoot(cwd);
|
|
405
|
+
if (!appRoot) {
|
|
406
|
+
throw new Error("sc install deps can only be run from a Sculptor app root.");
|
|
407
|
+
}
|
|
408
|
+
installScaffoldDependencies(appRoot, spawn, log);
|
|
409
|
+
log(`Installed Sculptor dependencies at ${appRoot}`);
|
|
410
|
+
};
|
|
411
|
+
const handleUpdate = (cwd, spawn, log, error) => {
|
|
412
|
+
requireOutsideAppRoot(cwd, "sc update");
|
|
413
|
+
try {
|
|
414
|
+
updateGlobalSculptorPackages(cwd, spawn, log);
|
|
415
|
+
log("Updated globally installed Sculptor packages.");
|
|
416
|
+
}
|
|
417
|
+
catch (caught) {
|
|
418
|
+
const message = caught instanceof Error ? caught.message : String(caught);
|
|
419
|
+
error(message);
|
|
420
|
+
process.exit(1);
|
|
421
|
+
}
|
|
422
|
+
};
|
|
324
423
|
const handleDev = (args, cwd, spawn, log) => {
|
|
325
424
|
const appRoot = requireAppRoot(cwd, "sc dev");
|
|
326
425
|
const devServer = resolveDefaultDevServer(cwd);
|
|
@@ -427,7 +526,7 @@ const handleAdd = async (args, cwd, log, error) => {
|
|
|
427
526
|
const manifest = resolvePluginManifest(module, pluginName);
|
|
428
527
|
log(`Loaded plugin ${manifest.name} for ${appRoot}`);
|
|
429
528
|
};
|
|
430
|
-
const handleGenerate = (args, cwd, prompt, log, error) => {
|
|
529
|
+
const handleGenerate = async (args, cwd, prompt, spawn, log, error) => {
|
|
431
530
|
const [kindInput, ...restInput] = args;
|
|
432
531
|
if (!kindInput) {
|
|
433
532
|
error("Usage: sc generate <controller|service|module|middleware|type|route> <name>");
|
|
@@ -483,14 +582,17 @@ const handleGenerate = (args, cwd, prompt, log, error) => {
|
|
|
483
582
|
const parts = outputDir.split(/[\\/]/).filter(Boolean);
|
|
484
583
|
return parts[parts.length - 1] ?? "index";
|
|
485
584
|
})();
|
|
486
|
-
const files = generateResourceFiles(kind, resolvedName, mode, devServer, outputDir, typeVariant, functionalRoutes, resolveTestingGenerate(appRoot));
|
|
585
|
+
const files = await generateResourceFiles(kind, resolvedName, mode, devServer, outputDir, typeVariant, functionalRoutes, resolveTestingGenerate(appRoot), { cwd, prompt, spawn, log, error });
|
|
487
586
|
const targetDir = appRoot;
|
|
488
|
-
|
|
587
|
+
if (!files) {
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
await writeGeneratedFiles(targetDir, files, { cwd, prompt, spawn, log, error });
|
|
489
591
|
if (resolveTestingGenerate(appRoot)) {
|
|
490
|
-
syncTestHarness(targetDir);
|
|
592
|
+
await syncTestHarness(targetDir, { cwd, prompt, spawn, log, error });
|
|
491
593
|
}
|
|
492
594
|
log(`Generated ${kind} "${resolvedName}" using ${mode} mode.`);
|
|
493
|
-
return
|
|
595
|
+
return;
|
|
494
596
|
};
|
|
495
597
|
export const runCli = async (argv = process.argv, options = {}) => {
|
|
496
598
|
const cwd = options.cwd ?? process.cwd();
|
|
@@ -537,6 +639,13 @@ export const runCli = async (argv = process.argv, options = {}) => {
|
|
|
537
639
|
case "test":
|
|
538
640
|
handleTest(cwd, spawn, log);
|
|
539
641
|
return;
|
|
642
|
+
case "install":
|
|
643
|
+
case "i":
|
|
644
|
+
handleInstall(args, cwd, spawn, log, error);
|
|
645
|
+
return;
|
|
646
|
+
case "update":
|
|
647
|
+
handleUpdate(cwd, spawn, log, error);
|
|
648
|
+
return;
|
|
540
649
|
case "config":
|
|
541
650
|
handleConfig(args, cwd, log, error);
|
|
542
651
|
return;
|
|
@@ -545,7 +654,7 @@ export const runCli = async (argv = process.argv, options = {}) => {
|
|
|
545
654
|
return;
|
|
546
655
|
case "generate":
|
|
547
656
|
case "g":
|
|
548
|
-
await handleGenerate(args, cwd, prompt, log, error);
|
|
657
|
+
await handleGenerate(args, cwd, prompt, spawn, log, error);
|
|
549
658
|
return;
|
|
550
659
|
}
|
|
551
660
|
};
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const detectPackageManager = () => {
|
|
2
|
+
const userAgent = process.env.npm_config_user_agent ?? "";
|
|
3
|
+
if (userAgent.includes("pnpm")) {
|
|
4
|
+
return "pnpm";
|
|
5
|
+
}
|
|
6
|
+
if (userAgent.includes("yarn")) {
|
|
7
|
+
return "yarn";
|
|
8
|
+
}
|
|
9
|
+
return "npm";
|
|
10
|
+
};
|
|
11
|
+
export const globalInstallArgsFor = (packageManager, packages) => {
|
|
12
|
+
if (packageManager === "pnpm") {
|
|
13
|
+
return ["add", "-g", ...packages];
|
|
14
|
+
}
|
|
15
|
+
if (packageManager === "yarn") {
|
|
16
|
+
return ["global", "add", ...packages];
|
|
17
|
+
}
|
|
18
|
+
return ["install", "-g", ...packages];
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=package-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAmB,EAAE;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAE1D,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,cAA8B,EAC9B,QAAkB,EACR,EAAE;IACZ,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC"}
|
package/dist/plugins.d.ts
CHANGED
|
@@ -14,6 +14,9 @@ export interface PluginModule {
|
|
|
14
14
|
templates?: string[];
|
|
15
15
|
generators?: string[];
|
|
16
16
|
}
|
|
17
|
+
export declare class PluginLoadError extends Error {
|
|
18
|
+
name: string;
|
|
19
|
+
}
|
|
17
20
|
export declare class PluginRegistry {
|
|
18
21
|
private readonly plugins;
|
|
19
22
|
register(manifest: PluginManifest): void;
|
package/dist/plugins.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
export class PluginLoadError extends Error {
|
|
2
|
+
constructor() {
|
|
3
|
+
super(...arguments);
|
|
4
|
+
this.name = "PluginLoadError";
|
|
5
|
+
}
|
|
6
|
+
}
|
|
1
7
|
export class PluginRegistry {
|
|
2
8
|
constructor() {
|
|
3
9
|
this.plugins = new Map();
|
|
@@ -12,7 +18,29 @@ export class PluginRegistry {
|
|
|
12
18
|
return [...this.plugins.values()];
|
|
13
19
|
}
|
|
14
20
|
}
|
|
15
|
-
|
|
21
|
+
const isMissingModuleError = (error, pluginName) => {
|
|
22
|
+
if (typeof error !== "object" || error === null) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const code = "code" in error ? String(error.code ?? "") : "";
|
|
26
|
+
const message = "message" in error ? String(error.message ?? "") : "";
|
|
27
|
+
return (code === "ERR_MODULE_NOT_FOUND" ||
|
|
28
|
+
code === "MODULE_NOT_FOUND" ||
|
|
29
|
+
message.includes(pluginName) ||
|
|
30
|
+
message.includes("Cannot find module") ||
|
|
31
|
+
message.includes("Cannot find package"));
|
|
32
|
+
};
|
|
33
|
+
export const loadPluginModule = async (pluginName) => {
|
|
34
|
+
try {
|
|
35
|
+
return (await import(pluginName));
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
if (isMissingModuleError(error, pluginName)) {
|
|
39
|
+
throw new PluginLoadError(`Unable to load plugin "${pluginName}". Is it installed?`);
|
|
40
|
+
}
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
16
44
|
export const resolvePluginManifest = (module, fallbackName) => {
|
|
17
45
|
const direct = module.manifest;
|
|
18
46
|
if (direct) {
|
package/dist/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,cAAc;IAA3B;QACmB,YAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAa/D,CAAC;IAXC,QAAQ,CAAC,QAAwB;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,UAAkB,EAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAA1C;;QACW,SAAI,GAAG,iBAAiB,CAAC;IACpC,CAAC;CAAA;AAED,MAAM,OAAO,cAAc;IAA3B;QACmB,YAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAa/D,CAAC;IAXC,QAAQ,CAAC,QAAwB;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,UAAkB,EAAW,EAAE;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAE,KAA+B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjG,OAAO,CACL,IAAI,KAAK,sBAAsB;QAC/B,IAAI,KAAK,kBAAkB;QAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACxC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,UAAkB,EAAyB,EAAE;IAClF,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAiB,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,eAAe,CAAC,0BAA0B,UAAU,qBAAqB,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAoB,EAAE,YAAoB,EAAkB,EAAE;IAClG,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,OAAyB,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
export interface RuntimeDependencyRecoveryContext {
|
|
3
|
+
cwd: string;
|
|
4
|
+
prompt: (question: string, defaultValue?: string) => Promise<string>;
|
|
5
|
+
spawn: typeof spawnSync;
|
|
6
|
+
log: (...args: unknown[]) => void;
|
|
7
|
+
error: (...args: unknown[]) => void;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-dependencies.js","sourceRoot":"","sources":["../src/runtime-dependencies.ts"],"names":[],"mappings":""}
|
package/dist/scaffold.d.ts
CHANGED
|
@@ -1 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import type { DevServer, GenerateKind, ScaffoldMode, ScaffoldProjectMetadata, TypeVariant } from "../../template-registry/dist/index.js";
|
|
2
|
+
import type { RuntimeDependencyRecoveryContext } from "./runtime-dependencies.js";
|
|
3
|
+
export type { DevServer, GenerateKind, ScaffoldMode, ScaffoldProjectMetadata, TypeVariant };
|
|
4
|
+
export declare const controllerHelp = "# Controller Generator\n\n## Usage\n\n```bash\nsc generate controller user\nsc g c user\nsc generate controller user in src/app/controllers\nsc g c user --functional\n```\n\n## Output\n\n- `controllers/*.controller.ts`\n- controller-first by default\n- pass `--functional` to opt into paired functional route and handler files\n";
|
|
5
|
+
export declare const moduleHelp = "# Module Generator\n\n## Usage\n\n```bash\nsc generate module user\nsc g mo user\n```\n";
|
|
6
|
+
export declare const middlewareHelp = "# Middleware Generator\n\n## Usage\n\n```bash\nsc generate middleware auth\nsc g mw auth\n```\n";
|
|
7
|
+
export declare const typeHelp = "# Type Generator\n\n## Usage\n\n```bash\nsc generate type user\nsc g t user\nsc g t user -i\nsc g t user -c\nsc g t user -e\n```\n\n## Flags\n\n- `-i`, `-interface` => `*.interface.ts`\n- `-c`, `-class` => `*.class.ts`\n- `-e`, `-enum` => `*.enum.ts`\n- default => `*.type.ts`\n";
|
|
8
|
+
export declare const routeHelp = "# Route Generator\n\n## Usage\n\n```bash\nsc generate route user\nsc g r user\n```\n\n## Output\n\n- `*.route.ts`\n- `*.route.handler.ts`\n- uses `FunctionalRouter(prefix)`\n- generates a paired handler with try/catch and error middleware boilerplate\n";
|
|
9
|
+
export declare const generateHelp = "# Generate\n\n## Usage\n\n```bash\nsc generate controller user\nsc generate service user\nsc generate module user\nsc generate middleware auth\nsc generate type user\nsc generate route user\n```\n\n## Aliases\n\n- `sc g`\n- `controller` -> `c`\n- `service` -> `s`\n- `module` -> `m` / `mo`\n- `middleware` -> `mw`\n- `type` -> `t`\n- `route` -> `r`\n\n## Path\n\n- append `in <path>` to write into a custom directory\n- default output for types is `src/app/types`\n- controller generators are controller-first by default; pass `--functional` only when you want the paired functional route files\n- route generators always emit the paired functional route and handler files\n";
|
|
10
|
+
export declare const readModeFromFlags: (flags: string[], fallback: ScaffoldMode) => ScaffoldMode;
|
|
11
|
+
export declare const parseGenerateMode: (mode: string | undefined, fallback: ScaffoldMode) => ScaffoldMode;
|
|
12
|
+
type TemplateRegistryModule = typeof import("../../template-registry/dist/index.js");
|
|
13
|
+
export declare const loadScaffoldTemplateRegistry: (context?: RuntimeDependencyRecoveryContext, importer?: () => Promise<TemplateRegistryModule>) => Promise<TemplateRegistryModule | null>;
|
|
14
|
+
export declare const scaffoldProject: (metadata: ScaffoldProjectMetadata, targetDir: string, context?: RuntimeDependencyRecoveryContext) => Promise<boolean>;
|
|
15
|
+
export declare const generateResourceFiles: (kind: GenerateKind, name: string, mode: ScaffoldMode, devServer?: DevServer, outputDir?: string, typeVariant?: TypeVariant, functionalRoutes?: boolean, testingGenerate?: boolean, context?: RuntimeDependencyRecoveryContext) => Promise<Record<string, string> | null>;
|
|
16
|
+
export declare const writeGeneratedFiles: (targetDir: string, files: Record<string, string>, context?: RuntimeDependencyRecoveryContext) => Promise<boolean>;
|
|
17
|
+
export declare const syncTestHarness: (targetDir: string, context?: RuntimeDependencyRecoveryContext) => Promise<boolean>;
|
package/dist/scaffold.js
CHANGED
|
@@ -1,2 +1,206 @@
|
|
|
1
|
-
|
|
1
|
+
import { detectPackageManager, globalInstallArgsFor } from "./package-manager.js";
|
|
2
|
+
export const controllerHelp = `# Controller Generator
|
|
3
|
+
|
|
4
|
+
## Usage
|
|
5
|
+
|
|
6
|
+
\`\`\`bash
|
|
7
|
+
sc generate controller user
|
|
8
|
+
sc g c user
|
|
9
|
+
sc generate controller user in src/app/controllers
|
|
10
|
+
sc g c user --functional
|
|
11
|
+
\`\`\`
|
|
12
|
+
|
|
13
|
+
## Output
|
|
14
|
+
|
|
15
|
+
- \`controllers/*.controller.ts\`
|
|
16
|
+
- controller-first by default
|
|
17
|
+
- pass \`--functional\` to opt into paired functional route and handler files
|
|
18
|
+
`;
|
|
19
|
+
export const moduleHelp = `# Module Generator
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
\`\`\`bash
|
|
24
|
+
sc generate module user
|
|
25
|
+
sc g mo user
|
|
26
|
+
\`\`\`
|
|
27
|
+
`;
|
|
28
|
+
export const middlewareHelp = `# Middleware Generator
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
\`\`\`bash
|
|
33
|
+
sc generate middleware auth
|
|
34
|
+
sc g mw auth
|
|
35
|
+
\`\`\`
|
|
36
|
+
`;
|
|
37
|
+
export const typeHelp = `# Type Generator
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
\`\`\`bash
|
|
42
|
+
sc generate type user
|
|
43
|
+
sc g t user
|
|
44
|
+
sc g t user -i
|
|
45
|
+
sc g t user -c
|
|
46
|
+
sc g t user -e
|
|
47
|
+
\`\`\`
|
|
48
|
+
|
|
49
|
+
## Flags
|
|
50
|
+
|
|
51
|
+
- \`-i\`, \`-interface\` => \`*.interface.ts\`
|
|
52
|
+
- \`-c\`, \`-class\` => \`*.class.ts\`
|
|
53
|
+
- \`-e\`, \`-enum\` => \`*.enum.ts\`
|
|
54
|
+
- default => \`*.type.ts\`
|
|
55
|
+
`;
|
|
56
|
+
export const routeHelp = `# Route Generator
|
|
57
|
+
|
|
58
|
+
## Usage
|
|
59
|
+
|
|
60
|
+
\`\`\`bash
|
|
61
|
+
sc generate route user
|
|
62
|
+
sc g r user
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
## Output
|
|
66
|
+
|
|
67
|
+
- \`*.route.ts\`
|
|
68
|
+
- \`*.route.handler.ts\`
|
|
69
|
+
- uses \`FunctionalRouter(prefix)\`
|
|
70
|
+
- generates a paired handler with try/catch and error middleware boilerplate
|
|
71
|
+
`;
|
|
72
|
+
export const generateHelp = `# Generate
|
|
73
|
+
|
|
74
|
+
## Usage
|
|
75
|
+
|
|
76
|
+
\`\`\`bash
|
|
77
|
+
sc generate controller user
|
|
78
|
+
sc generate service user
|
|
79
|
+
sc generate module user
|
|
80
|
+
sc generate middleware auth
|
|
81
|
+
sc generate type user
|
|
82
|
+
sc generate route user
|
|
83
|
+
\`\`\`
|
|
84
|
+
|
|
85
|
+
## Aliases
|
|
86
|
+
|
|
87
|
+
- \`sc g\`
|
|
88
|
+
- \`controller\` -> \`c\`
|
|
89
|
+
- \`service\` -> \`s\`
|
|
90
|
+
- \`module\` -> \`m\` / \`mo\`
|
|
91
|
+
- \`middleware\` -> \`mw\`
|
|
92
|
+
- \`type\` -> \`t\`
|
|
93
|
+
- \`route\` -> \`r\`
|
|
94
|
+
|
|
95
|
+
## Path
|
|
96
|
+
|
|
97
|
+
- append \`in <path>\` to write into a custom directory
|
|
98
|
+
- default output for types is \`src/app/types\`
|
|
99
|
+
- controller generators are controller-first by default; pass \`--functional\` only when you want the paired functional route files
|
|
100
|
+
- route generators always emit the paired functional route and handler files
|
|
101
|
+
`;
|
|
102
|
+
export const readModeFromFlags = (flags, fallback) => {
|
|
103
|
+
if (flags.includes("--functional")) {
|
|
104
|
+
return "functional";
|
|
105
|
+
}
|
|
106
|
+
if (flags.includes("--decorator")) {
|
|
107
|
+
return "decorator";
|
|
108
|
+
}
|
|
109
|
+
if (flags.includes("--hybrid")) {
|
|
110
|
+
return "hybrid";
|
|
111
|
+
}
|
|
112
|
+
return fallback;
|
|
113
|
+
};
|
|
114
|
+
export const parseGenerateMode = (mode, fallback) => mode === "functional" || mode === "decorator" || mode === "hybrid" ? mode : fallback;
|
|
115
|
+
const TEMPLATE_REGISTRY_PACKAGE = "@sculptor/template-registry";
|
|
116
|
+
const WORKSPACE_TEMPLATE_REGISTRY_PATH = "../../template-registry/dist/index.js";
|
|
117
|
+
const missingDependencyMessage = `Sculptor template registry is not installed.`;
|
|
118
|
+
const isMissingTemplateRegistryError = (error) => {
|
|
119
|
+
if (typeof error !== "object" || error === null) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
const code = "code" in error ? String(error.code ?? "") : "";
|
|
123
|
+
const message = "message" in error ? String(error.message ?? "") : "";
|
|
124
|
+
return (code === "ERR_MODULE_NOT_FOUND" ||
|
|
125
|
+
code === "MODULE_NOT_FOUND" ||
|
|
126
|
+
message.includes(TEMPLATE_REGISTRY_PACKAGE) ||
|
|
127
|
+
message.includes("Cannot find module") ||
|
|
128
|
+
message.includes("Cannot find package"));
|
|
129
|
+
};
|
|
130
|
+
export const loadScaffoldTemplateRegistry = async (context, importer = async () => {
|
|
131
|
+
try {
|
|
132
|
+
return (await import(TEMPLATE_REGISTRY_PACKAGE));
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return (await import(WORKSPACE_TEMPLATE_REGISTRY_PATH));
|
|
136
|
+
}
|
|
137
|
+
}) => {
|
|
138
|
+
try {
|
|
139
|
+
return await importer();
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
if (!isMissingTemplateRegistryError(error)) {
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
if (!context) {
|
|
146
|
+
throw new Error(`${missingDependencyMessage} Install it with npm install -g @sculptor/template-registry.`);
|
|
147
|
+
}
|
|
148
|
+
const answer = await context.prompt(`${missingDependencyMessage}\n\nWould you like to install it and rerun the command? (y/n)`, "n");
|
|
149
|
+
if (!answer.trim().toLowerCase().startsWith("y")) {
|
|
150
|
+
context.log("Skipped installing @sculptor/template-registry.");
|
|
151
|
+
process.exitCode = 1;
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
const packageManager = detectPackageManager();
|
|
155
|
+
context.log(`Installing ${TEMPLATE_REGISTRY_PACKAGE} with ${packageManager}...`);
|
|
156
|
+
const installResult = context.spawn(packageManager, globalInstallArgsFor(packageManager, [TEMPLATE_REGISTRY_PACKAGE]), {
|
|
157
|
+
cwd: context.cwd,
|
|
158
|
+
stdio: "inherit",
|
|
159
|
+
shell: process.platform === "win32",
|
|
160
|
+
env: {
|
|
161
|
+
...process.env
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
if (installResult.status !== 0) {
|
|
165
|
+
throw new Error(`Failed to install ${TEMPLATE_REGISTRY_PACKAGE} with ${packageManager}.`);
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
return await importer();
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
throw new Error(`${missingDependencyMessage} The package was installed, but it could not be loaded afterward.`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
export const scaffoldProject = async (metadata, targetDir, context) => {
|
|
176
|
+
const registry = await loadScaffoldTemplateRegistry(context);
|
|
177
|
+
if (!registry) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
registry.scaffoldProject(metadata, targetDir);
|
|
181
|
+
return true;
|
|
182
|
+
};
|
|
183
|
+
export const generateResourceFiles = async (kind, name, mode, devServer = "tsx", outputDir, typeVariant = "type", functionalRoutes = false, testingGenerate = false, context) => {
|
|
184
|
+
const registry = await loadScaffoldTemplateRegistry(context);
|
|
185
|
+
if (!registry) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
return registry.generateResourceFiles(kind, name, mode, devServer, outputDir, typeVariant, functionalRoutes, testingGenerate);
|
|
189
|
+
};
|
|
190
|
+
export const writeGeneratedFiles = async (targetDir, files, context) => {
|
|
191
|
+
const registry = await loadScaffoldTemplateRegistry(context);
|
|
192
|
+
if (!registry) {
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
registry.writeGeneratedFiles(targetDir, files);
|
|
196
|
+
return true;
|
|
197
|
+
};
|
|
198
|
+
export const syncTestHarness = async (targetDir, context) => {
|
|
199
|
+
const registry = await loadScaffoldTemplateRegistry(context);
|
|
200
|
+
if (!registry) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
registry.syncTestHarness(targetDir);
|
|
204
|
+
return true;
|
|
205
|
+
};
|
|
2
206
|
//# sourceMappingURL=scaffold.js.map
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sculptor/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"sc": "./bin/sc.js",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
},
|
|
37
37
|
"license": "MIT",
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@sculptor/config": "^0.2.
|
|
40
|
-
"@sculptor/core": "^0.2.
|
|
41
|
-
"@sculptor/template-registry": "^0.1.
|
|
39
|
+
"@sculptor/config": "^0.2.1",
|
|
40
|
+
"@sculptor/core": "^0.2.3",
|
|
41
|
+
"@sculptor/template-registry": "^0.1.6",
|
|
42
42
|
"tsx": "^4.19.4"
|
|
43
43
|
}
|
|
44
44
|
}
|