silgi 0.9.35 → 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 +2 -1
- package/dist/cli/compatibility.mjs +10 -2
- package/dist/cli/dev.mjs +119 -0
- package/dist/cli/index.mjs +2 -1
- package/dist/cli/init.mjs +49 -6
- package/dist/cli/loader.mjs +3 -0
- package/dist/cli/prepare.mjs +46 -1933
- package/dist/cli/writeTypesAndFiles.mjs +2011 -0
- package/dist/kit/index.d.mts +4 -2
- package/dist/kit/index.d.ts +4 -2
- package/dist/kit/index.mjs +2 -1
- package/dist/meta/index.d.mts +2 -1
- package/dist/meta/index.d.ts +2 -1
- package/dist/types/index.d.mts +20 -19
- package/dist/types/index.d.ts +20 -19
- package/package.json +2 -1
package/dist/_chunks/index.mjs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
const version = "0.
|
|
1
|
+
const version = "0.10.1";
|
|
2
2
|
const peerDependencies = {
|
|
3
3
|
"@fastify/deepmerge": "^2.0.2",
|
|
4
4
|
"@nuxt/kit": "^3.15.3",
|
|
5
5
|
"@nuxt/schema": "^3.15.4",
|
|
6
|
+
"@silgi/ecosystem": "^0.0.10",
|
|
6
7
|
h3: "^1.14.0",
|
|
7
8
|
nitropack: "^2.10.4",
|
|
8
9
|
nuxt: "^3.15.3",
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
import { tryUseSilgiCLI, useSilgiCLI } from 'silgi/core';
|
|
1
2
|
import satisfies from 'semver/functions/satisfies.js';
|
|
2
|
-
import { useSilgiCLI } from 'silgi/core';
|
|
3
3
|
import { version } from 'silgi/meta';
|
|
4
4
|
|
|
5
|
+
function hasError(type, silgi) {
|
|
6
|
+
silgi = silgi ?? tryUseSilgiCLI() ?? void 0;
|
|
7
|
+
if (silgi && silgi.errors.some((error) => error.type === type)) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
|
|
5
13
|
const SEMANTIC_VERSION_RE = /-\d+\.[0-9a-f]+/;
|
|
6
14
|
function normalizeSemanticVersion(version) {
|
|
7
15
|
return version.replace(SEMANTIC_VERSION_RE, "");
|
|
@@ -27,4 +35,4 @@ function hasInstalledModule(moduleKey, silgi = useSilgiCLI()) {
|
|
|
27
35
|
return find?.installed ?? false;
|
|
28
36
|
}
|
|
29
37
|
|
|
30
|
-
export { checkSilgiCompatibility as c,
|
|
38
|
+
export { hasInstalledModule as a, checkSilgiCompatibility as c, hasError as h };
|
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)
|
package/dist/cli/init.mjs
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { writeFileSync } from 'node:fs';
|
|
2
|
+
import * as p from '@clack/prompts';
|
|
2
3
|
import { defineCommand } from 'citty';
|
|
4
|
+
import consola from 'consola';
|
|
3
5
|
|
|
4
6
|
const init = defineCommand({
|
|
5
7
|
meta: {
|
|
@@ -9,12 +11,53 @@ const init = defineCommand({
|
|
|
9
11
|
},
|
|
10
12
|
args: {},
|
|
11
13
|
async run() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
14
|
+
p.intro("Initializing silgi config");
|
|
15
|
+
const framework = await p.select({
|
|
16
|
+
message: "Choose a framework",
|
|
17
|
+
options: [
|
|
18
|
+
{ label: "Nitro", value: "nitro" },
|
|
19
|
+
{ label: "Nuxt", value: "nuxt" },
|
|
20
|
+
{ label: "H3", value: "h3" },
|
|
21
|
+
{ label: "NPM Package", value: "npm-package" }
|
|
22
|
+
]
|
|
23
|
+
});
|
|
24
|
+
if (p.isCancel(framework)) {
|
|
25
|
+
consola.info("Silgi config initialization canceled");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const context = [
|
|
29
|
+
`import { defineSilgiConfig } from 'silgi/config'`,
|
|
30
|
+
"",
|
|
31
|
+
"export default defineSilgiConfig({",
|
|
32
|
+
` preset: '${framework}',`,
|
|
33
|
+
` compatibilityDate: '${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}',`,
|
|
34
|
+
" // Please create a namespace for your project",
|
|
35
|
+
" namespaces: [],",
|
|
36
|
+
"",
|
|
37
|
+
"})",
|
|
38
|
+
""
|
|
39
|
+
];
|
|
40
|
+
if (framework === "nitro" || framework === "nuxt") {
|
|
41
|
+
const plugin = [
|
|
42
|
+
`import { buildSilgi } from '../silgi/core'`,
|
|
43
|
+
"",
|
|
44
|
+
"export default defineNitroPlugin(async (nitro) => {",
|
|
45
|
+
" const _silgi = buildSilgi(",
|
|
46
|
+
" nitro,",
|
|
47
|
+
" {},",
|
|
48
|
+
" {",
|
|
49
|
+
" storage: useStorage(),",
|
|
50
|
+
" runtimeConfig: useRuntimeConfig(),",
|
|
51
|
+
" },",
|
|
52
|
+
" )",
|
|
53
|
+
"})",
|
|
54
|
+
""
|
|
55
|
+
];
|
|
56
|
+
writeFileSync("server/plugins/silgi.ts", plugin.join("\n"));
|
|
57
|
+
consola.success("Silgi plugin created, see server/plugins/silgi.ts");
|
|
58
|
+
}
|
|
59
|
+
writeFileSync("silgi.config.ts", context.join("\n"));
|
|
60
|
+
consola.success("Silgi config created, see silgi.config.ts");
|
|
18
61
|
}
|
|
19
62
|
});
|
|
20
63
|
|