silgi 0.10.0 → 0.10.1
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/_chunks/index.mjs +1 -1
- package/dist/cli/dev.mjs +119 -0
- package/dist/cli/index.mjs +2 -1
- package/dist/cli/prepare.mjs +30 -2048
- package/dist/cli/writeTypesAndFiles.mjs +2011 -0
- package/dist/meta/index.d.mts +1 -1
- package/dist/meta/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/_chunks/index.mjs
CHANGED
package/dist/cli/dev.mjs
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { watch } from 'chokidar';
|
|
2
|
+
import { defineCommand } from 'citty';
|
|
3
|
+
import consola from 'consola';
|
|
4
|
+
import { basename, resolve } from 'pathe';
|
|
5
|
+
import { version } from 'silgi/meta';
|
|
6
|
+
import { silgiCLICtx } from 'silgi/core';
|
|
7
|
+
import { h as hasError } from './compatibility.mjs';
|
|
8
|
+
import { s as scanFiles, b as writeScanFiles, c as createSilgiCLI, p as prepare, w as writeTypesAndFiles, a as writeCoreFile } from './writeTypesAndFiles.mjs';
|
|
9
|
+
import { c as commonArgs } from './common.mjs';
|
|
10
|
+
import 'semver/functions/satisfies.js';
|
|
11
|
+
import 'node:fs';
|
|
12
|
+
import 'node:fs/promises';
|
|
13
|
+
import 'hookable';
|
|
14
|
+
import 'silgi/kit';
|
|
15
|
+
import 'silgi/runtime/meta';
|
|
16
|
+
import 'silgi/types';
|
|
17
|
+
import 'unimport';
|
|
18
|
+
import './env.mjs';
|
|
19
|
+
import '@clack/prompts';
|
|
20
|
+
import 'dotenv';
|
|
21
|
+
import 'mlly';
|
|
22
|
+
import 'scule';
|
|
23
|
+
import 'dev-jiti';
|
|
24
|
+
import 'node:url';
|
|
25
|
+
import 'defu';
|
|
26
|
+
import 'ufo';
|
|
27
|
+
import 'globby';
|
|
28
|
+
import 'ignore';
|
|
29
|
+
import '@oxc-parser/wasm';
|
|
30
|
+
import 'klona';
|
|
31
|
+
import 'unstorage';
|
|
32
|
+
import './loader.mjs';
|
|
33
|
+
import 'c12';
|
|
34
|
+
import 'compatx';
|
|
35
|
+
import 'klona/full';
|
|
36
|
+
import 'std-env';
|
|
37
|
+
import 'consola/utils';
|
|
38
|
+
import 'escape-string-regexp';
|
|
39
|
+
import 'pkg-types';
|
|
40
|
+
import 'pathe/utils';
|
|
41
|
+
import './types.mjs';
|
|
42
|
+
|
|
43
|
+
async function reloadScan(silgi, path, _stats) {
|
|
44
|
+
const startTime = performance.now();
|
|
45
|
+
silgi.errors = [];
|
|
46
|
+
if (silgiCLICtx.tryUse()) {
|
|
47
|
+
silgiCLICtx.unset();
|
|
48
|
+
silgiCLICtx.set(silgi);
|
|
49
|
+
} else {
|
|
50
|
+
silgiCLICtx.set(silgi);
|
|
51
|
+
silgi.hook("close", () => silgiCLICtx.unset());
|
|
52
|
+
}
|
|
53
|
+
silgi.hooks.removeAllHooks();
|
|
54
|
+
await scanFiles(silgi, silgi.options.devServer.watch);
|
|
55
|
+
if (!hasError("Parser", silgi)) {
|
|
56
|
+
await writeScanFiles(silgi);
|
|
57
|
+
}
|
|
58
|
+
silgi.errors = [];
|
|
59
|
+
const endTime = performance.now();
|
|
60
|
+
const elapsedTime = Math.round(endTime - startTime);
|
|
61
|
+
silgi.logger.success(`${basename(path)} - ${elapsedTime}ms`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const dev = defineCommand({
|
|
65
|
+
meta: {
|
|
66
|
+
name: "dev",
|
|
67
|
+
description: "Start the development server for the project",
|
|
68
|
+
version: version
|
|
69
|
+
},
|
|
70
|
+
args: {
|
|
71
|
+
...commonArgs,
|
|
72
|
+
preset: {
|
|
73
|
+
type: "string",
|
|
74
|
+
description: "The build preset to use (you can also use `SILGI_PRESET` environment variable)."
|
|
75
|
+
},
|
|
76
|
+
stub: {
|
|
77
|
+
type: "boolean",
|
|
78
|
+
description: "Run in silgi development mode"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
async run({ args }) {
|
|
82
|
+
const rootDir = resolve(args.dir || args._dir || ".");
|
|
83
|
+
const silgi = await createSilgiCLI({
|
|
84
|
+
rootDir,
|
|
85
|
+
dev: args.stub,
|
|
86
|
+
stub: args.stub,
|
|
87
|
+
preset: args.preset,
|
|
88
|
+
commandType: "prepare"
|
|
89
|
+
});
|
|
90
|
+
await prepare();
|
|
91
|
+
await writeTypesAndFiles(silgi);
|
|
92
|
+
await writeCoreFile(silgi);
|
|
93
|
+
let watcher;
|
|
94
|
+
if (silgi.options.devServer.watch.length > 0) {
|
|
95
|
+
watcher = watch(silgi.options.devServer.watch, silgi.options.watchOptions);
|
|
96
|
+
watcher.on("add", (...data) => reloadScan(silgi, ...data)).on("change", (...data) => reloadScan(silgi, ...data));
|
|
97
|
+
}
|
|
98
|
+
const close = async () => {
|
|
99
|
+
await silgi.close();
|
|
100
|
+
if (watcher) {
|
|
101
|
+
watcher.close();
|
|
102
|
+
}
|
|
103
|
+
await silgi.callHook("close", silgi);
|
|
104
|
+
consola.withTag("silgi").success("Process terminated");
|
|
105
|
+
};
|
|
106
|
+
process.on("SIGINT", async () => {
|
|
107
|
+
consola.withTag("silgi").info("Shutting down...");
|
|
108
|
+
await close();
|
|
109
|
+
process.exit(0);
|
|
110
|
+
});
|
|
111
|
+
await silgi.callHook("close", silgi);
|
|
112
|
+
consola.withTag("silgi").success("Prepare completed");
|
|
113
|
+
consola.withTag("silgi").info("Process is still running. Press Ctrl+C to exit.");
|
|
114
|
+
setInterval(() => {
|
|
115
|
+
}, 1e3);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export { dev as default };
|
package/dist/cli/index.mjs
CHANGED
|
@@ -17,7 +17,8 @@ const main = defineCommand({
|
|
|
17
17
|
prepare: () => import('./prepare.mjs').then((m) => m.default),
|
|
18
18
|
init: () => import('./init.mjs').then((m) => m.default),
|
|
19
19
|
run: () => import('./run.mjs').then((m) => m.default),
|
|
20
|
-
install: () => import('./install.mjs').then((m) => m.default)
|
|
20
|
+
install: () => import('./install.mjs').then((m) => m.default),
|
|
21
|
+
dev: () => import('./dev.mjs').then((m) => m.default)
|
|
21
22
|
},
|
|
22
23
|
run({ args }) {
|
|
23
24
|
if (args.version)
|