silgi 0.34.11 → 0.34.12

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/build.mjs CHANGED
@@ -14,6 +14,7 @@ import 'unimport';
14
14
  import '@clack/prompts';
15
15
  import 'node:fs';
16
16
  import 'dotenv';
17
+ import 'knitwork';
17
18
  import 'mlly';
18
19
  import 'dev-jiti';
19
20
  import './cli/compatibility.mjs';
@@ -26,7 +27,6 @@ import 'ufo';
26
27
  import 'node:fs/promises';
27
28
  import 'globby';
28
29
  import 'ignore';
29
- import 'knitwork';
30
30
  import 'klona';
31
31
  import 'silgi/runtime';
32
32
  import 'unstorage';
@@ -2,12 +2,13 @@ import { consola } from 'consola';
2
2
  import { createHooks, createDebugger } from 'hookable';
3
3
  import { resolve, join, relative, extname, basename, dirname, isAbsolute } from 'pathe';
4
4
  import { useSilgiCLI, replaceRuntimeValues, silgiCLICtx, autoImportTypes } from 'silgi';
5
- import { isPresents, addTemplate, addCoreFile, relativeWithDot, hash, removeExtension, resolveAlias, directoryToURL, addImports, baseHeaderBannerComment, writeFile, normalizeTemplate, useLogger, resolveSilgiPath, hasSilgiModule, genEnsureSafeVar, toArray, isDirectory } from 'silgi/kit';
5
+ import { isPresents, addTemplate, addCoreFile, genEnsureSafeVar, relativeWithDot, hash, removeExtension, resolveAlias, directoryToURL, addImports, baseHeaderBannerComment, writeFile, normalizeTemplate, useLogger, resolveSilgiPath, hasSilgiModule, toArray, isDirectory } from 'silgi/kit';
6
6
  import { runtimeDir } from 'silgi/runtime/meta';
7
7
  import { scanExports, createUnimport, toExports } from 'unimport';
8
8
  import * as p from '@clack/prompts';
9
9
  import { existsSync, promises, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
10
10
  import * as dotenv from 'dotenv';
11
+ import { genImport, genTypeImport, genObjectFromRawEntries, genAugmentation } from 'knitwork';
11
12
  import { findTypeExports, findExports, resolvePath, parseNodeModulePath, lookupNodeModuleSubpath } from 'mlly';
12
13
  import { createJiti } from 'dev-jiti';
13
14
  import { h as hasInstalledModule } from './compatibility.mjs';
@@ -18,7 +19,6 @@ import { withTrailingSlash, isRelative } from 'ufo';
18
19
  import { readFile, readdir } from 'node:fs/promises';
19
20
  import { globby } from 'globby';
20
21
  import ignore from 'ignore';
21
- import { genImport, genTypeImport, genAugmentation, genObjectFromRawEntries } from 'knitwork';
22
22
  import { klona } from 'klona';
23
23
  import { useSilgiRuntimeConfig, initRuntimeConfig } from 'silgi/runtime';
24
24
  import { createStorage, builtinDrivers } from 'unstorage';
@@ -223,6 +223,52 @@ async function h3Framework(silgi, skip = false) {
223
223
  }
224
224
  }
225
225
 
226
+ async function nextJS(silgi, skip = false) {
227
+ if (!isPresents(["next"]) && skip === false)
228
+ return;
229
+ if (isPresents(["next"])) {
230
+ silgi.hook("after:schema.ts", (data) => {
231
+ data.unshift("type FrameworkContextExtends = {}");
232
+ });
233
+ }
234
+ const defaultConfig = {
235
+ serverExternalPackages: [
236
+ "mlly",
237
+ "silgi",
238
+ "h3",
239
+ "@silgi/openapi",
240
+ "@silgi/scalar",
241
+ "@silgi/ecosystem"
242
+ ],
243
+ eslint: {
244
+ ignoreDuringBuilds: true
245
+ },
246
+ output: "standalone"
247
+ };
248
+ await silgi.callHook("nextjs:prepare", {
249
+ config: defaultConfig
250
+ });
251
+ const template = [
252
+ genImport("defu", ["defu"]),
253
+ genTypeImport("next", ["NextConfig"]),
254
+ "export function withNextConfig(config: NextConfig) {",
255
+ "return defu(config,",
256
+ // TODO: make the output code more properly intend.
257
+ genObjectFromRawEntries(
258
+ Object.entries(defaultConfig).map(([key, value]) => [key, genEnsureSafeVar(value)]),
259
+ ""
260
+ ),
261
+ ")}",
262
+ ""
263
+ ];
264
+ addTemplate({
265
+ filename: "next.config.ts",
266
+ where: ".silgi",
267
+ write: true,
268
+ getContents: () => template.join("\n")
269
+ });
270
+ }
271
+
226
272
  async function nitroFramework(silgi, skip = false) {
227
273
  if (!isPresents(["nitro"]) && skip === false)
228
274
  return;
@@ -276,7 +322,8 @@ const frameworkSetup = [
276
322
  emptyFramework,
277
323
  h3Framework,
278
324
  nitroFramework,
279
- nuxtFramework
325
+ nuxtFramework,
326
+ nextJS
280
327
  ];
281
328
 
282
329
  async function registerModuleExportScan(silgi) {
@@ -1382,14 +1429,14 @@ async function createSilgiCLI(config = {}, opts = {}) {
1382
1429
  packageImport: "silgi/runtime/internal/debug"
1383
1430
  });
1384
1431
  }
1385
- for (const framework of frameworkSetup) {
1386
- await framework(silgi);
1387
- }
1388
1432
  await scanAndSyncOptions(silgi);
1389
1433
  await scanModules$1(silgi);
1390
1434
  await scanSilgiExports();
1391
1435
  await installModules(silgi, true);
1392
1436
  useCLIRuntimeConfig(silgi);
1437
+ for (const framework of frameworkSetup) {
1438
+ await framework(silgi);
1439
+ }
1393
1440
  await writeScanFiles(silgi);
1394
1441
  silgi.storage = await createStorageCLI(silgi);
1395
1442
  silgi.hooks.hook("close", async () => {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { defineCommand, runMain } from 'citty';
3
3
 
4
- const version = "0.34.11";
4
+ const version = "0.34.12";
5
5
  const packageJson = {
6
6
  version: version};
7
7
 
package/dist/cli/init.mjs CHANGED
@@ -13,6 +13,7 @@ import 'silgi/kit';
13
13
  import 'silgi/runtime/meta';
14
14
  import 'unimport';
15
15
  import 'dotenv';
16
+ import 'knitwork';
16
17
  import 'mlly';
17
18
  import 'dev-jiti';
18
19
  import './compatibility.mjs';
@@ -23,7 +24,6 @@ import 'exsolve';
23
24
  import 'ufo';
24
25
  import 'globby';
25
26
  import 'ignore';
26
- import 'knitwork';
27
27
  import 'klona';
28
28
  import 'silgi/runtime';
29
29
  import 'unstorage';
@@ -15,6 +15,7 @@ import 'unimport';
15
15
  import '@clack/prompts';
16
16
  import 'node:fs';
17
17
  import 'dotenv';
18
+ import 'knitwork';
18
19
  import 'mlly';
19
20
  import 'dev-jiti';
20
21
  import './compatibility.mjs';
@@ -26,7 +27,6 @@ import 'ufo';
26
27
  import 'node:fs/promises';
27
28
  import 'globby';
28
29
  import 'ignore';
29
- import 'knitwork';
30
30
  import 'klona';
31
31
  import 'silgi/runtime';
32
32
  import 'unstorage';
@@ -17,6 +17,7 @@ import 'unimport';
17
17
  import '@clack/prompts';
18
18
  import 'node:fs';
19
19
  import 'dotenv';
20
+ import 'knitwork';
20
21
  import 'mlly';
21
22
  import 'dev-jiti';
22
23
  import './compatibility.mjs';
@@ -28,7 +29,6 @@ import 'ufo';
28
29
  import 'node:fs/promises';
29
30
  import 'globby';
30
31
  import 'ignore';
31
- import 'knitwork';
32
32
  import 'klona';
33
33
  import 'silgi/runtime';
34
34
  import 'unstorage';
@@ -15,8 +15,9 @@ import { H3Event, HTTPMethod as HTTPMethod$1, Session } from 'h3';
15
15
  import * as nitropack_types from 'nitropack/types';
16
16
  import { NitroRuntimeConfig } from 'nitropack/types';
17
17
  import { Defu } from 'defu';
18
- import { Stats } from 'node:fs';
19
18
  import * as next from 'next';
19
+ import { NextConfig } from 'next';
20
+ import { Stats } from 'node:fs';
20
21
  import { ESMImport, ESMCodeGenOptions } from 'knitwork';
21
22
  import { Unimport } from 'unimport';
22
23
  import { Storage, TransactionOptions, BuiltinDriverName, StorageValue } from 'unstorage';
@@ -304,6 +305,9 @@ interface SilgiCLIHooks extends SilgiHooks {
304
305
  'app:templatesGenerated': (app: SilgiCLI, templates: ResolvedSilgiTemplate[], options?: GenerateAppOptions) => HookResult;
305
306
  'scanFiles:done': (app: SilgiCLI) => HookResult;
306
307
  'prepare:commands': (commands: Commands[]) => HookResult;
308
+ 'nextjs:prepare': (data: {
309
+ config: NextConfig;
310
+ }) => HookResult;
307
311
  }
308
312
  type TSReference = {
309
313
  types: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "silgi",
3
3
  "type": "module",
4
- "version": "0.34.11",
4
+ "version": "0.34.12",
5
5
  "private": false,
6
6
  "sideEffects": false,
7
7
  "exports": {