silgi 0.19.10 → 0.19.11

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,5 +1,4 @@
1
- export { l as loadOptions } from '../loader.mjs';
2
- export { s as silgiGenerateType } from '../types.mjs';
1
+ export { l as loadOptions, s as silgiGenerateType } from '../types.mjs';
3
2
  import 'c12';
4
3
  import 'compatx';
5
4
  import 'klona/full';
package/dist/cli/dev.mjs CHANGED
@@ -5,8 +5,7 @@ import { basename, resolve } from 'pathe';
5
5
  import { version } from 'silgi/meta';
6
6
  import { silgiCLICtx } from 'silgi/core';
7
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';
8
+ import { s as scanFiles, w as writeScanFiles, c as commonArgs, a as createSilgiCLI, p as prepare, b as writeTypesAndFiles, d as writeCoreFile } from './common.mjs';
10
9
  import 'semver/functions/satisfies.js';
11
10
  import 'node:fs';
12
11
  import 'node:fs/promises';
@@ -17,6 +16,8 @@ import 'silgi/types';
17
16
  import 'unimport';
18
17
  import '../_chunks/routeRules.mjs';
19
18
  import 'ufo';
19
+ import '@clack/prompts';
20
+ import 'dotenv';
20
21
  import 'mlly';
21
22
  import 'dev-jiti';
22
23
  import 'node:url';
@@ -27,7 +28,7 @@ import 'ignore';
27
28
  import '@oxc-parser/wasm';
28
29
  import 'klona';
29
30
  import 'unstorage';
30
- import './loader.mjs';
31
+ import './types.mjs';
31
32
  import 'c12';
32
33
  import 'compatx';
33
34
  import 'klona/full';
@@ -37,9 +38,6 @@ import 'escape-string-regexp';
37
38
  import 'pkg-types';
38
39
  import 'pathe/utils';
39
40
  import 'untyped';
40
- import './types.mjs';
41
- import '@clack/prompts';
42
- import 'dotenv';
43
41
 
44
42
  async function reloadScan(silgi, path, _stats) {
45
43
  const startTime = performance.now();
@@ -14,9 +14,9 @@ const main = defineCommand({
14
14
  }
15
15
  },
16
16
  subCommands: {
17
- prepare: () => import('./prepare.mjs').then((m) => m.default),
17
+ prepare: () => import('./prepare.mjs').then(function (n) { return n.a; }).then((m) => m.default),
18
18
  init: () => import('./init.mjs').then((m) => m.default),
19
- run: () => import('./run.mjs').then((m) => m.default),
19
+ run: () => import('./prepare.mjs').then(function (n) { return n.r; }).then((m) => m.default),
20
20
  install: () => import('./install.mjs').then((m) => m.default),
21
21
  dev: () => import('./dev.mjs').then((m) => m.default)
22
22
  },
@@ -5,20 +5,19 @@ import { consola } from 'consola';
5
5
  import { resolve } from 'pathe';
6
6
  import { version } from 'silgi/meta';
7
7
  import { c as commonArgs } from './common.mjs';
8
- import prepare from './prepare.mjs';
9
- import { l as loadOptions } from './loader.mjs';
10
- import '@clack/prompts';
11
- import 'dotenv';
12
- import 'silgi/kit';
13
- import './writeTypesAndFiles.mjs';
8
+ import { p as prepare } from './prepare.mjs';
9
+ import { l as loadOptions } from './types.mjs';
14
10
  import 'node:fs/promises';
15
11
  import 'hookable';
16
12
  import 'silgi/core';
13
+ import 'silgi/kit';
17
14
  import 'silgi/runtime/meta';
18
15
  import 'silgi/types';
19
16
  import 'unimport';
20
17
  import '../_chunks/routeRules.mjs';
21
18
  import 'ufo';
19
+ import '@clack/prompts';
20
+ import 'dotenv';
22
21
  import 'mlly';
23
22
  import 'dev-jiti';
24
23
  import './compatibility.mjs';
@@ -33,9 +32,6 @@ import 'klona';
33
32
  import 'unstorage';
34
33
  import 'pathe/utils';
35
34
  import 'untyped';
36
- import './types.mjs';
37
- import 'pkg-types';
38
- import './run.mjs';
39
35
  import 'picocolors';
40
36
  import 'c12';
41
37
  import 'compatx';
@@ -43,6 +39,7 @@ import 'klona/full';
43
39
  import 'std-env';
44
40
  import 'consola/utils';
45
41
  import 'escape-string-regexp';
42
+ import 'pkg-types';
46
43
 
47
44
  const install = defineCommand({
48
45
  meta: {
@@ -1,47 +1,16 @@
1
1
  import { defineCommand, runCommand } from 'citty';
2
- import consola from 'consola';
2
+ import consola$1, { consola } from 'consola';
3
3
  import { join, resolve } from 'pathe';
4
4
  import { version } from 'silgi/meta';
5
5
  import { writeFile } from 'silgi/kit';
6
- import { c as createSilgiCLI, p as prepare$1, w as writeTypesAndFiles, a as writeCoreFile } from './writeTypesAndFiles.mjs';
7
- import { c as commonArgs } from './common.mjs';
8
- import run from './run.mjs';
9
- import 'node:fs';
10
- import 'node:fs/promises';
11
- import 'hookable';
12
- import 'silgi/core';
13
- import 'silgi/runtime/meta';
14
- import 'silgi/types';
15
- import 'unimport';
16
- import '../_chunks/routeRules.mjs';
17
- import 'ufo';
18
- import 'mlly';
19
- import 'dev-jiti';
20
- import './compatibility.mjs';
21
- import 'semver/functions/satisfies.js';
22
- import 'node:url';
23
- import 'defu';
24
- import 'exsolve';
25
- import 'globby';
26
- import 'ignore';
27
- import '@oxc-parser/wasm';
28
- import 'klona';
29
- import 'unstorage';
30
- import './loader.mjs';
31
- import 'c12';
32
- import 'compatx';
33
- import 'klona/full';
34
- import 'std-env';
35
- import 'consola/utils';
36
- import 'escape-string-regexp';
37
- import 'pkg-types';
38
- import 'pathe/utils';
39
- import 'untyped';
40
- import './types.mjs';
41
- import '@clack/prompts';
42
- import 'dotenv';
43
- import 'node:child_process';
44
- import 'picocolors';
6
+ import { c as commonArgs, e as prepareEnv, a as createSilgiCLI, p as prepare$2, b as writeTypesAndFiles, d as writeCoreFile } from './common.mjs';
7
+ import { execSync } from 'node:child_process';
8
+ import { readFileSync } from 'node:fs';
9
+ import * as p from '@clack/prompts';
10
+ import { createJiti } from 'dev-jiti';
11
+ import color from 'picocolors';
12
+ import { silgiCLICtx } from 'silgi/core';
13
+ import { l as loadOptions } from './types.mjs';
45
14
 
46
15
  function serializeRules(rules, options = {}) {
47
16
  try {
@@ -128,6 +97,140 @@ export const routeRules = ${serialized}
128
97
  }
129
98
  }
130
99
 
100
+ const run = defineCommand({
101
+ meta: {
102
+ name: "run",
103
+ description: "Run a command from the CLI",
104
+ version: version
105
+ },
106
+ args: {
107
+ ...commonArgs,
108
+ preset: {
109
+ type: "string",
110
+ description: "The build preset to use (you can also use `SILGI_PRESET` environment variable)."
111
+ },
112
+ tag: {
113
+ type: "string"
114
+ },
115
+ active: {
116
+ type: "boolean",
117
+ description: "Run in silgi development mode",
118
+ default: true
119
+ }
120
+ },
121
+ async run({ args }) {
122
+ const data = args.active ? await runCommand(prepare, {
123
+ rawArgs: ["--commands", "run"]
124
+ }) : void 0;
125
+ if (data?.result?.silgi) {
126
+ console.log("Setting silgi context");
127
+ if (silgiCLICtx.tryUse()) {
128
+ silgiCLICtx.unset();
129
+ silgiCLICtx.set(data.result.silgi);
130
+ } else {
131
+ silgiCLICtx.set(data.result.silgi);
132
+ data.result.silgi.hook("close", () => silgiCLICtx.unset());
133
+ }
134
+ }
135
+ const tags = args.tag?.split(",").map((t) => t.trim());
136
+ p.intro(color.bold(`Silgi CLI ${color.green(`v${version}`)}`));
137
+ const silgiConfig = await loadOptions({});
138
+ const getCli = resolve(silgiConfig.build.dir, "cli.json");
139
+ const cli = readFileSync(getCli, "utf-8");
140
+ const cliJson = JSON.parse(cli);
141
+ await prepareEnv(silgiConfig);
142
+ let selectedCommands = [];
143
+ if (tags) {
144
+ for (const commandName of Object.keys(cliJson)) {
145
+ const scripts = cliJson[commandName];
146
+ for (const scriptName of Object.keys(scripts)) {
147
+ const script = scripts[scriptName];
148
+ if (script.tags && script.tags.some((tag) => tags.includes(tag))) {
149
+ selectedCommands.push({
150
+ command: commandName,
151
+ script: scriptName,
152
+ handler: script
153
+ });
154
+ }
155
+ }
156
+ }
157
+ if (selectedCommands.length === 0) {
158
+ return;
159
+ }
160
+ } else {
161
+ if (Object.keys(cliJson).length === 0) {
162
+ consola.warn("No commands found in cli.json");
163
+ return;
164
+ }
165
+ const commandName = await p.select({
166
+ message: "Select a command to run",
167
+ options: Object.keys(cliJson).filter((key) => {
168
+ const scripts2 = cliJson[key];
169
+ const scriptValues = Object.values(scripts2);
170
+ return scriptValues;
171
+ }).map((key) => ({
172
+ label: key,
173
+ value: key
174
+ }))
175
+ });
176
+ if (!commandName)
177
+ return;
178
+ const scripts = cliJson[commandName];
179
+ const scriptName = await p.select({
180
+ message: "Select a script to run",
181
+ options: Object.keys(scripts).filter((key) => !scripts[key].tags?.length).map((key) => ({
182
+ label: key,
183
+ value: key
184
+ }))
185
+ });
186
+ if (!scriptName)
187
+ return;
188
+ selectedCommands = [{
189
+ command: commandName,
190
+ script: scriptName,
191
+ handler: scripts[scriptName]
192
+ }];
193
+ }
194
+ for (const cmd of selectedCommands) {
195
+ consola.info(`Running ${cmd.command}:${cmd.script}...`);
196
+ if (cmd.handler.enabled === false) {
197
+ continue;
198
+ }
199
+ if (cmd.handler.type === "command") {
200
+ execSync(cmd.handler.handler, { stdio: "inherit" });
201
+ }
202
+ if (cmd.handler.type === "function") {
203
+ const jiti = createJiti(import.meta.url, {
204
+ alias: silgiConfig.alias
205
+ });
206
+ let cleanHandler = cmd.handler.handler.replace(/\n/g, "");
207
+ cleanHandler = `import { silgiCLICtx } from 'silgi/core'
208
+
209
+ if (silgiCLICtx.tryUse()) {
210
+ silgiCLICtx.unset()
211
+ silgiCLICtx.set(${JSON.stringify(data.result.silgi)})
212
+ }
213
+ else {
214
+ silgiCLICtx.set(${JSON.stringify(data.result.silgi)})
215
+ data.result.silgi.hook('close', () => silgiCLICtx.unset())
216
+ }
217
+ ${cleanHandler}`;
218
+ await jiti.evalModule(cleanHandler, {
219
+ filename: import.meta.url,
220
+ async: true,
221
+ conditions: silgiConfig.conditions,
222
+ forceTranspile: true
223
+ });
224
+ }
225
+ }
226
+ }
227
+ });
228
+
229
+ const run$1 = {
230
+ __proto__: null,
231
+ default: run
232
+ };
233
+
131
234
  const prepare = defineCommand({
132
235
  meta: {
133
236
  name: "prepare",
@@ -147,9 +250,14 @@ const prepare = defineCommand({
147
250
  env: {
148
251
  type: "string",
149
252
  description: "The environment to use"
253
+ },
254
+ commands: {
255
+ type: "string",
256
+ description: "The commands to run"
150
257
  }
151
258
  },
152
259
  async run({ args }) {
260
+ console.log("args", args);
153
261
  const rootDir = resolve(args.dir || args._dir || ".");
154
262
  const silgi = await createSilgiCLI({
155
263
  rootDir,
@@ -159,22 +267,33 @@ const prepare = defineCommand({
159
267
  commandType: "prepare",
160
268
  activeEnvironment: args.env
161
269
  });
162
- await prepare$1();
270
+ await prepare$2();
163
271
  await writeTypesAndFiles(silgi);
164
272
  await writeCoreFile(silgi);
165
273
  await prepareBuild(silgi);
166
274
  const close = async () => {
167
275
  await silgi.close();
168
276
  await silgi.callHook("close", silgi);
169
- consola.withTag("silgi").success("Process terminated");
277
+ consola$1.withTag("silgi").success("Process terminated");
170
278
  };
171
279
  await silgi.callHook("close", silgi);
172
- consola.withTag("silgi").success("Prepare completed");
280
+ consola$1.withTag("silgi").success("Prepare completed");
173
281
  await close();
174
- await runCommand(run, {
175
- rawArgs: ["--tag", "init"]
176
- });
282
+ if (!args.commands) {
283
+ await runCommand(run, {
284
+ rawArgs: ["--tag", "init", "--active", "false"],
285
+ data: { silgi }
286
+ });
287
+ }
288
+ return {
289
+ silgi
290
+ };
177
291
  }
178
292
  });
179
293
 
180
- export { prepare as default };
294
+ const prepare$1 = {
295
+ __proto__: null,
296
+ default: prepare
297
+ };
298
+
299
+ export { prepare$1 as a, prepare as p, run$1 as r };