vike 0.4.215 → 0.4.217

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.
Files changed (143) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/node/api/build.js +10 -3
  3. package/dist/cjs/node/api/context.js +8 -6
  4. package/dist/cjs/node/api/dev.js +7 -2
  5. package/dist/cjs/node/api/{prepareApiCall.js → prepareViteApiCall.js} +16 -6
  6. package/dist/cjs/node/api/prerender.js +7 -2
  7. package/dist/cjs/node/api/preview.js +7 -2
  8. package/dist/cjs/node/api/utils.js +1 -0
  9. package/dist/cjs/node/plugin/index.js +7 -10
  10. package/dist/cjs/node/plugin/onLoad.js +2 -2
  11. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +15 -12
  12. package/dist/cjs/node/plugin/plugins/baseUrls.js +17 -12
  13. package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +1 -1
  14. package/dist/cjs/node/plugin/plugins/buildConfig.js +10 -10
  15. package/dist/cjs/node/plugin/plugins/commonConfig.js +35 -4
  16. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  17. package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -4
  18. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +4 -7
  19. package/dist/cjs/node/plugin/plugins/importBuild/getVikeManifest.js +2 -2
  20. package/dist/cjs/node/plugin/plugins/importBuild/index.js +8 -6
  21. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +8 -8
  22. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +9 -13
  23. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +8 -4
  24. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +128 -0
  25. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +40 -26
  26. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +3 -4
  27. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +1 -1
  28. package/dist/cjs/node/plugin/plugins/previewConfig.js +4 -4
  29. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +35 -17
  30. package/dist/cjs/node/prerender/runPrerender.js +5 -7
  31. package/dist/cjs/node/prerender/utils.js +1 -1
  32. package/dist/cjs/node/runtime/globalContext.js +21 -13
  33. package/dist/cjs/node/runtime/index-common.js +3 -1
  34. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -1
  35. package/dist/cjs/node/runtime/renderPage.js +4 -2
  36. package/dist/cjs/node/runtime/utils.js +1 -2
  37. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +25 -0
  38. package/dist/cjs/node/runtime-dev/index.js +32 -0
  39. package/dist/cjs/node/shared/resolveBase.js +41 -0
  40. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +2 -2
  41. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +2 -2
  42. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  43. package/dist/cjs/utils/assertSetup.js +135 -0
  44. package/dist/cjs/utils/isDocker.js +2 -2
  45. package/dist/cjs/utils/requireResolve.js +2 -2
  46. package/dist/esm/__internal/index.js +2 -2
  47. package/dist/esm/node/api/build.d.ts +5 -0
  48. package/dist/esm/node/api/build.js +10 -3
  49. package/dist/esm/node/api/context.js +9 -7
  50. package/dist/esm/node/api/dev.d.ts +5 -0
  51. package/dist/esm/node/api/dev.js +7 -2
  52. package/dist/esm/node/api/prepareViteApiCall.d.ts +7 -0
  53. package/dist/esm/node/api/{prepareApiCall.js → prepareViteApiCall.js} +16 -6
  54. package/dist/esm/node/api/prerender.d.ts +5 -0
  55. package/dist/esm/node/api/prerender.js +7 -2
  56. package/dist/esm/node/api/preview.d.ts +5 -0
  57. package/dist/esm/node/api/preview.js +7 -2
  58. package/dist/esm/node/api/utils.d.ts +1 -0
  59. package/dist/esm/node/api/utils.js +1 -0
  60. package/dist/esm/node/cli/parseCli.d.ts +1 -1
  61. package/dist/esm/node/plugin/index.d.ts +3 -3
  62. package/dist/esm/node/plugin/index.js +6 -9
  63. package/dist/esm/node/plugin/onLoad.js +1 -1
  64. package/dist/esm/node/plugin/plugins/autoFullBuild.js +15 -12
  65. package/dist/esm/node/plugin/plugins/baseUrls.d.ts +2 -2
  66. package/dist/esm/node/plugin/plugins/baseUrls.js +17 -12
  67. package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +1 -1
  68. package/dist/esm/node/plugin/plugins/buildConfig.js +11 -11
  69. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -1
  70. package/dist/esm/node/plugin/plugins/commonConfig.js +36 -5
  71. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.d.ts +1 -1
  72. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  73. package/dist/esm/node/plugin/plugins/devConfig/index.js +2 -5
  74. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +4 -7
  75. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.d.ts +3 -2
  76. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.js +2 -2
  77. package/dist/esm/node/plugin/plugins/importBuild/index.js +8 -6
  78. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +2 -2
  79. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +8 -8
  80. package/dist/esm/node/plugin/plugins/importUserCode/index.js +11 -15
  81. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
  82. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +8 -4
  83. package/dist/esm/{shared/ConfigVike.d.ts → node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts} +14 -12
  84. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +123 -0
  85. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +8 -6
  86. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +41 -27
  87. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +3 -4
  88. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +1 -1
  89. package/dist/esm/node/plugin/plugins/previewConfig.js +5 -5
  90. package/dist/esm/node/plugin/plugins/setGlobalContext.d.ts +1 -1
  91. package/dist/esm/node/plugin/plugins/setGlobalContext.js +37 -19
  92. package/dist/esm/node/prerender/runPrerender.js +6 -8
  93. package/dist/esm/node/prerender/utils.d.ts +1 -1
  94. package/dist/esm/node/prerender/utils.js +1 -1
  95. package/dist/esm/node/runtime/globalContext.d.ts +8 -4
  96. package/dist/esm/node/runtime/globalContext.js +22 -14
  97. package/dist/esm/node/runtime/index-common.d.ts +1 -0
  98. package/dist/esm/node/runtime/index-common.js +1 -0
  99. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -1
  100. package/dist/esm/node/runtime/renderPage.js +5 -3
  101. package/dist/esm/node/runtime/utils.d.ts +1 -2
  102. package/dist/esm/node/runtime/utils.js +1 -2
  103. package/dist/esm/node/runtime-dev/createDevMiddleware.d.ts +10 -0
  104. package/dist/esm/node/runtime-dev/createDevMiddleware.js +23 -0
  105. package/dist/esm/node/runtime-dev/index.d.ts +3 -0
  106. package/dist/esm/node/runtime-dev/index.js +6 -0
  107. package/dist/esm/node/shared/resolveBase.d.ts +11 -0
  108. package/dist/esm/node/shared/resolveBase.js +36 -0
  109. package/dist/esm/shared/page-configs/Config.d.ts +2 -2
  110. package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +1 -1
  111. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  112. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  113. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  114. package/dist/esm/utils/assertSetup.d.ts +20 -0
  115. package/dist/esm/utils/assertSetup.js +130 -0
  116. package/dist/esm/utils/isDocker.js +1 -1
  117. package/dist/esm/utils/projectInfo.d.ts +1 -1
  118. package/dist/esm/utils/requireResolve.js +1 -1
  119. package/package.json +1 -1
  120. package/dist/cjs/node/plugin/plugins/config/assertVikeConfig.js +0 -75
  121. package/dist/cjs/node/plugin/plugins/config/index.js +0 -81
  122. package/dist/cjs/node/plugin/plugins/config/pickFirst.js +0 -6
  123. package/dist/cjs/node/plugin/plugins/config/resolveBase.js +0 -47
  124. package/dist/cjs/node/shared/getConfigVike.js +0 -10
  125. package/dist/cjs/shared/ConfigVike.js +0 -2
  126. package/dist/cjs/utils/assertIsNotProductionRuntime.js +0 -62
  127. package/dist/cjs/utils/assertNodeEnv.js +0 -106
  128. package/dist/esm/node/api/prepareApiCall.d.ts +0 -7
  129. package/dist/esm/node/plugin/plugins/config/assertVikeConfig.d.ts +0 -7
  130. package/dist/esm/node/plugin/plugins/config/assertVikeConfig.js +0 -73
  131. package/dist/esm/node/plugin/plugins/config/index.d.ts +0 -3
  132. package/dist/esm/node/plugin/plugins/config/index.js +0 -76
  133. package/dist/esm/node/plugin/plugins/config/pickFirst.d.ts +0 -1
  134. package/dist/esm/node/plugin/plugins/config/pickFirst.js +0 -3
  135. package/dist/esm/node/plugin/plugins/config/resolveBase.d.ts +0 -10
  136. package/dist/esm/node/plugin/plugins/config/resolveBase.js +0 -42
  137. package/dist/esm/node/shared/getConfigVike.d.ts +0 -4
  138. package/dist/esm/node/shared/getConfigVike.js +0 -8
  139. package/dist/esm/shared/ConfigVike.js +0 -1
  140. package/dist/esm/utils/assertIsNotProductionRuntime.d.ts +0 -12
  141. package/dist/esm/utils/assertIsNotProductionRuntime.js +0 -59
  142. package/dist/esm/utils/assertNodeEnv.d.ts +0 -10
  143. package/dist/esm/utils/assertNodeEnv.js +0 -103
@@ -3,8 +3,8 @@ import { projectInfo } from '../../utils.js';
3
3
  import { assertPluginManifest } from '../../../shared/assertPluginManifest.js';
4
4
  import { isUsingClientRouter } from '../extractExportNamesPlugin.js';
5
5
  import { getRuntimeManifest } from '../../../runtime/globalContext.js';
6
- function getVikeManifest(configVike) {
7
- const runtimeManifest = getRuntimeManifest(configVike);
6
+ function getVikeManifest(vikeConfigGlobal, viteConfig) {
7
+ const runtimeManifest = getRuntimeManifest(vikeConfigGlobal, viteConfig);
8
8
  const manifest = {
9
9
  version: projectInfo.projectVersion,
10
10
  usesClientRouter: isUsingClientRouter(), // TODO/v1-release: remove
@@ -4,37 +4,39 @@ import { serverProductionEntryPlugin } from '@brillout/vite-plugin-server-entry/
4
4
  import { assert, getOutDirs, toPosixPath } from '../../utils.js';
5
5
  import path from 'path';
6
6
  import { createRequire } from 'module';
7
- import { getConfigVike } from '../../../shared/getConfigVike.js';
8
7
  import { getVikeManifest } from './getVikeManifest.js';
9
8
  import fs from 'fs/promises';
10
9
  import { virtualFileIdImportUserCodeServer } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
10
+ import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
11
11
  // @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
12
12
  const importMetaUrl = import.meta.url;
13
13
  const require_ = createRequire(importMetaUrl);
14
14
  const ASSETS_MAP = '__VITE_ASSETS_MAP__';
15
15
  function importBuild() {
16
16
  let config;
17
- let configVike;
17
+ let vikeConfigGlobal;
18
18
  return [
19
19
  {
20
20
  name: 'vike:importBuild:config',
21
21
  enforce: 'post',
22
22
  async configResolved(config_) {
23
23
  config = config_;
24
- configVike = await getConfigVike(config);
24
+ const vikeConfig = await getVikeConfig(config);
25
+ vikeConfigGlobal = vikeConfig.vikeConfigGlobal;
25
26
  }
26
27
  },
27
28
  ...serverProductionEntryPlugin({
28
29
  getServerProductionEntry: () => {
29
- return getServerProductionEntryCode(config, configVike);
30
+ return getServerProductionEntryCode(config, vikeConfigGlobal);
30
31
  },
31
32
  libraryName: 'Vike'
32
33
  })
33
34
  ];
34
35
  }
35
- function getServerProductionEntryCode(config, configVike) {
36
+ function getServerProductionEntryCode(config, vikeConfigGlobal) {
36
37
  const importPath = getImportPath(config);
37
- const vikeManifest = getVikeManifest(configVike);
38
+ const vikeManifest = getVikeManifest(vikeConfigGlobal, config);
39
+ // Let's eventually simplify and move everything to a single virtual module
38
40
  const importerCode = [
39
41
  ` import { setImportBuildGetters } from '${importPath}';`,
40
42
  ` import * as pageFiles from '${virtualFileIdImportUserCodeServer}';`,
@@ -1,6 +1,6 @@
1
1
  export { getVirtualFileImportUserCode };
2
2
  import type { ResolvedConfig } from 'vite';
3
- import type { ConfigVikeResolved } from '../../../../shared/ConfigVike.js';
3
+ import type { VikeConfigGlobal } from './v1-design/getVikeConfig/resolveVikeConfigGlobal.js';
4
4
  declare function getVirtualFileImportUserCode(id: string, options: {
5
5
  ssr?: boolean;
6
- } | undefined, configVike: ConfigVikeResolved, config: ResolvedConfig, isDev: boolean): Promise<string>;
6
+ } | undefined, vikeConfigGlobal: VikeConfigGlobal, config: ResolvedConfig, isDev: boolean): Promise<string>;
@@ -6,16 +6,16 @@ import { fileTypes } from '../../../../shared/getPageFiles/fileTypes.js';
6
6
  import path from 'path';
7
7
  import { getVirtualFilePageConfigs } from './v1-design/getVirtualFilePageConfigs.js';
8
8
  import { isV1Design as isV1Design_ } from './v1-design/getVikeConfig.js';
9
- async function getVirtualFileImportUserCode(id, options, configVike, config, isDev) {
9
+ async function getVirtualFileImportUserCode(id, options, vikeConfigGlobal, config, isDev) {
10
10
  const idParsed = isVirtualFileIdImportUserCode(id);
11
11
  assert(idParsed);
12
12
  const { isForClientSide, isClientRouting } = idParsed;
13
13
  assert(isForClientSide === !viteIsSSR_options(options));
14
- const isPrerendering = !!configVike.prerender;
15
- const code = await getCode(config, configVike, isForClientSide, isClientRouting, isPrerendering, isDev, id);
14
+ const isPrerendering = !!vikeConfigGlobal.prerender;
15
+ const code = await getCode(config, vikeConfigGlobal, isForClientSide, isClientRouting, isPrerendering, isDev, id);
16
16
  return code;
17
17
  }
18
- async function getCode(config, configVike, isForClientSide, isClientRouting, isPrerendering, isDev, id) {
18
+ async function getCode(config, vikeConfigGlobal, isForClientSide, isClientRouting, isPrerendering, isDev, id) {
19
19
  const { command } = config;
20
20
  assert(command === 'serve' || command === 'build');
21
21
  const isBuild = command === 'build';
@@ -24,7 +24,7 @@ async function getCode(config, configVike, isForClientSide, isClientRouting, isP
24
24
  {
25
25
  const globRoots = getGlobRoots(config);
26
26
  debugGlob('Glob roots: ', globRoots);
27
- content += await generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, configVike, isPrerendering, config, isDev, id);
27
+ content += await generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, vikeConfigGlobal, isPrerendering, config, isDev, id);
28
28
  }
29
29
  debugGlob(`Glob imports for ${isForClientSide ? 'client' : 'server'}:\n`, content);
30
30
  return content;
@@ -54,7 +54,7 @@ function determineInjection({ fileType, isForClientSide, isClientRouting, isPrer
54
54
  }
55
55
  }
56
56
  }
57
- async function generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, configVike, isPrerendering, config, isDev, id) {
57
+ async function generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, vikeConfigGlobal, isPrerendering, config, isDev, id) {
58
58
  let fileContent = `// Generated by https://github.com/vikejs/vike/blob/main/vike/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.ts
59
59
 
60
60
  export const pageFilesLazy = {};
@@ -68,7 +68,7 @@ ${await getVirtualFilePageConfigs(isForClientSide, isDev, id, isClientRouting, c
68
68
 
69
69
  `;
70
70
  // We still use import.meta.glob() when using th V1 design in order to not break the V1 design deprecation warning
71
- const isV1Design = await isV1Design_(config, isDev);
71
+ const isV1Design = await isV1Design_(config);
72
72
  fileTypes
73
73
  .filter((fileType) => fileType !== '.css')
74
74
  .forEach((fileType) => {
@@ -86,7 +86,7 @@ ${await getVirtualFilePageConfigs(isForClientSide, isDev, id, isClientRouting, c
86
86
  fileContent += getGlobs(globRoots, isBuild, fileType, 'extractExportNames', isV1Design);
87
87
  }
88
88
  });
89
- if (configVike.includeAssetsImportedByServer && isForClientSide) {
89
+ if (vikeConfigGlobal.includeAssetsImportedByServer && isForClientSide) {
90
90
  fileContent += getGlobs(globRoots, isBuild, '.page.server', 'extractAssets', isV1Design);
91
91
  }
92
92
  return fileContent;
@@ -1,32 +1,27 @@
1
1
  export { importUserCode };
2
2
  import { normalizePath } from 'vite';
3
- import { getConfigVike } from '../../../shared/getConfigVike.js';
4
3
  import { getVirtualFilePageConfigValuesAll } from './v1-design/getVirtualFilePageConfigValuesAll.js';
5
4
  import { getVirtualFileImportUserCode } from './getVirtualFileImportUserCode.js';
6
- import { assert, assertPosixPath, getOutDirs, isDevCheck } from '../../utils.js';
5
+ import { assert, assertPosixPath } from '../../utils.js';
7
6
  import { resolveVirtualFileId, isVirtualFileId, getVirtualFileId } from '../../../shared/virtual-files.js';
8
7
  import { isVirtualFileIdPageConfigValuesAll } from '../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
9
8
  import { isVirtualFileIdImportUserCode } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
10
- import { vikeConfigDependencies, reloadVikeConfig, isVikeConfigFile, isV1Design } from './v1-design/getVikeConfig.js';
9
+ import { vikeConfigDependencies, reloadVikeConfig, isVikeConfigFile, isV1Design, getVikeConfig } from './v1-design/getVikeConfig.js';
11
10
  import pc from '@brillout/picocolors';
12
11
  import { logConfigInfo } from '../../shared/loggerNotProd.js';
13
12
  import { getModuleFilePathAbsolute } from '../../shared/getFilePath.js';
14
13
  function importUserCode() {
15
14
  let config;
16
- let configVike;
17
- let isDev;
15
+ let vikeConfigGlobal;
18
16
  return {
19
17
  name: 'vike:importUserCode',
20
- config(_, env) {
21
- isDev = isDevCheck(env);
22
- },
23
18
  async configResolved(config_) {
24
- configVike = await getConfigVike(config_);
19
+ const vikeConfig = await getVikeConfig(config_);
20
+ vikeConfigGlobal = vikeConfig.vikeConfigGlobal;
25
21
  config = config_;
26
22
  // TODO/v1-release: remove
27
23
  {
28
- assert(isDev !== undefined);
29
- const isV1 = await isV1Design(config, isDev);
24
+ const isV1 = await isV1Design(config);
30
25
  if (!isV1)
31
26
  config.experimental.importGlobRestoreExtension = true;
32
27
  }
@@ -50,13 +45,14 @@ function importUserCode() {
50
45
  if (!isVirtualFileId(id))
51
46
  return undefined;
52
47
  id = getVirtualFileId(id);
48
+ const isDev = config._isDev;
53
49
  assert(typeof isDev === 'boolean');
54
50
  if (isVirtualFileIdPageConfigValuesAll(id)) {
55
51
  const code = await getVirtualFilePageConfigValuesAll(id, isDev, config);
56
52
  return code;
57
53
  }
58
54
  if (isVirtualFileIdImportUserCode(id)) {
59
- const code = await getVirtualFileImportUserCode(id, options, configVike, config, isDev);
55
+ const code = await getVirtualFileImportUserCode(id, options, vikeConfigGlobal, config, isDev);
60
56
  return code;
61
57
  }
62
58
  },
@@ -83,8 +79,6 @@ function handleFileAddRemove(server, config) {
83
79
  }
84
80
  function handleHotUpdate(ctx, config) {
85
81
  const { file, server } = ctx;
86
- assertPosixPath(file);
87
- vikeConfigDependencies.forEach((f) => assertPosixPath(f));
88
82
  const isVikeConfig = isVikeConfigModule(file);
89
83
  const isViteModule = ctx.modules.length > 0;
90
84
  /* Should we show this?
@@ -114,6 +108,8 @@ function handleHotUpdate(ctx, config) {
114
108
  }
115
109
  }
116
110
  function isVikeConfigModule(filePathAbsoluteFilesystem) {
111
+ assertPosixPath(filePathAbsoluteFilesystem);
112
+ vikeConfigDependencies.forEach((f) => assertPosixPath(f));
117
113
  return vikeConfigDependencies.has(filePathAbsoluteFilesystem);
118
114
  }
119
115
  function reloadConfig(filePath, config, op) {
@@ -122,7 +118,7 @@ function reloadConfig(filePath, config, op) {
122
118
  const msg = `${op} ${pc.dim(filePathToShowToUserResolved)}`;
123
119
  logConfigInfo(msg, 'info');
124
120
  }
125
- reloadVikeConfig(config.root, getOutDirs(config).outDirRoot);
121
+ reloadVikeConfig(config);
126
122
  }
127
123
  function getVirtualModules(server) {
128
124
  const virtualModules = Array.from(server.moduleGraph.urlToModuleMap.keys())
@@ -1,4 +1,4 @@
1
1
  export { crawlPlusFiles };
2
- declare function crawlPlusFiles(userRootDir: string, outDirAbsoluteFilesystem: string, crawlWithGit: null | boolean): Promise<{
2
+ declare function crawlPlusFiles(userRootDir: string, outDirAbsoluteFilesystem: null | string, crawlWithGit: null | boolean): Promise<{
3
3
  filePathAbsoluteUserRootDir: string;
4
4
  }[]>;
@@ -13,12 +13,16 @@ assertIsSingleModuleInstance('crawlPlusFiles.ts');
13
13
  let gitIsNotUsable = false;
14
14
  async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, crawlWithGit) {
15
15
  assertPosixPath(userRootDir);
16
- assertPosixPath(outDirAbsoluteFilesystem);
17
- let outDirRelativeFromUserRootDir = path.posix.relative(userRootDir, outDirAbsoluteFilesystem);
16
+ //*/
17
+ const outDirRelativeFromUserRootDir = null;
18
+ /*/
19
+ assertPosixPath(outDirAbsoluteFilesystem)
20
+ let outDirRelativeFromUserRootDir: string | null = path.posix.relative(userRootDir, outDirAbsoluteFilesystem)
18
21
  if (outDirRelativeFromUserRootDir.startsWith('../')) {
19
- // config.outDir is outside of config.root => it's going to be ignored anyways
20
- outDirRelativeFromUserRootDir = null;
22
+ // config.outDir is outside of config.root => it's going to be ignored anyways
23
+ outDirRelativeFromUserRootDir = null
21
24
  }
25
+ //*/
22
26
  assert(outDirRelativeFromUserRootDir === null ||
23
27
  /* Not true if outDirRelativeFromUserRootDir starts with a hidden directory (i.e. a directory with a name that starts with `.`)
24
28
  !outDirRelativeFromUserRootDir.startsWith('.') &&
@@ -1,6 +1,8 @@
1
- export type { ConfigVikeUserProvided };
2
- export type { ConfigVikeResolved };
3
- type ConfigVikeResolved = {
1
+ export { resolveVikeConfigGlobal };
2
+ export type { VikeConfigGlobal };
3
+ export type { VikeVitePluginOptions };
4
+ declare function resolveVikeConfigGlobal(vikeVitePluginOptions: unknown, pageConfigGlobalValues: Record<string, unknown>): VikeConfigGlobal;
5
+ type VikeConfigGlobal = {
4
6
  prerender: false | {
5
7
  noExtraDir: boolean;
6
8
  parallel: boolean | number;
@@ -9,8 +11,8 @@ type ConfigVikeResolved = {
9
11
  };
10
12
  disableAutoFullBuild: boolean | 'prerender' | null;
11
13
  includeAssetsImportedByServer: boolean;
12
- baseAssets: string;
13
- baseServer: string;
14
+ baseAssets: string | null;
15
+ baseServer: string | null;
14
16
  redirects: Record<string, string>;
15
17
  trailingSlash: boolean;
16
18
  disableUrlNormalization: boolean;
@@ -18,7 +20,7 @@ type ConfigVikeResolved = {
18
20
  git: null | boolean;
19
21
  };
20
22
  };
21
- type ConfigVikeUserProvided = {
23
+ type VikeVitePluginOptions = {
22
24
  /**
23
25
  * Enable pre-rendering.
24
26
  *
@@ -44,12 +46,12 @@ type ConfigVikeUserProvided = {
44
46
  */
45
47
  parallel?: boolean | number;
46
48
  /**
47
- * Allow only some of your pages to be pre-rendered.
48
- *
49
- * This setting doesn't affect the pre-rendering process: it merely suppresses the warnings when some of your pages cannot be pre-rendered.
50
-
51
- * @default false
52
- */
49
+ * Allow only some of your pages to be pre-rendered.
50
+ *
51
+ * This setting doesn't affect the pre-rendering process: it merely suppresses the warnings when some of your pages cannot be pre-rendered.
52
+
53
+ * @default false
54
+ */
53
55
  partial?: boolean;
54
56
  /**
55
57
  * Disable the automatic initiation of the pre-rendering process when running `$ vike build`.
@@ -0,0 +1,123 @@
1
+ export { resolveVikeConfigGlobal };
2
+ import pc from '@brillout/picocolors';
3
+ import { assert, assertUsage, hasProp, isObject } from '../../../../utils.js';
4
+ function resolveVikeConfigGlobal(vikeVitePluginOptions, pageConfigGlobalValues) {
5
+ // TODO/v1-release: remove
6
+ assertVikeConfigGlobal(vikeVitePluginOptions, ({ prop, errMsg }) => `vite.config.js > vike option ${prop} ${errMsg}`);
7
+ const configs = [vikeVitePluginOptions];
8
+ assertVikeConfigGlobal(pageConfigGlobalValues, ({ prop, errMsg }) => {
9
+ // Can we add the config file path ?
10
+ return `config ${pc.cyan(prop)} ${errMsg}`;
11
+ });
12
+ configs.push(pageConfigGlobalValues);
13
+ const vikeConfigGlobal = {
14
+ disableAutoFullBuild: pickFirst(configs.map((c) => c.disableAutoFullBuild)) ?? null,
15
+ prerender: resolvePrerenderOptions(configs),
16
+ includeAssetsImportedByServer: pickFirst(configs.map((c) => c.includeAssetsImportedByServer)) ?? true,
17
+ baseServer: pickFirst(configs.map((c) => c.baseServer)) ?? null,
18
+ baseAssets: pickFirst(configs.map((c) => c.baseAssets)) ?? null,
19
+ redirects: merge(configs.map((c) => c.redirects)) ?? {},
20
+ disableUrlNormalization: pickFirst(configs.map((c) => c.disableUrlNormalization)) ?? false,
21
+ trailingSlash: pickFirst(configs.map((c) => c.trailingSlash)) ?? false,
22
+ crawl: {
23
+ git: vikeVitePluginOptions.crawl?.git ?? null
24
+ }
25
+ };
26
+ return vikeConfigGlobal;
27
+ }
28
+ function resolvePrerenderOptions(configs) {
29
+ if (!configs.some((c) => c.prerender)) {
30
+ return false;
31
+ }
32
+ const configsPrerender = configs.map((c) => c.prerender).filter(isObject2);
33
+ return {
34
+ partial: pickFirst(configsPrerender.map((c) => c.partial)) ?? false,
35
+ noExtraDir: pickFirst(configsPrerender.map((c) => c.noExtraDir)) ?? false,
36
+ parallel: pickFirst(configsPrerender.map((c) => c.parallel)) ?? true,
37
+ disableAutoRun: pickFirst(configsPrerender.map((c) => c.disableAutoRun)) ?? false
38
+ };
39
+ }
40
+ function isObject2(p) {
41
+ return typeof p === 'object';
42
+ }
43
+ function merge(objs) {
44
+ const obj = {};
45
+ objs.forEach((e) => {
46
+ Object.assign(obj, e);
47
+ });
48
+ return obj;
49
+ }
50
+ function pickFirst(arr) {
51
+ return arr.filter((v) => v !== undefined)[0];
52
+ }
53
+ function assertVikeConfigGlobal(vikeConfigGlobal, wrongUsageMsg) {
54
+ const wrongUsageError = check(vikeConfigGlobal);
55
+ if (wrongUsageError) {
56
+ assertUsage(false, wrongUsageMsg(wrongUsageError));
57
+ }
58
+ }
59
+ function check(vikeConfigGlobal) {
60
+ assert(isObject(vikeConfigGlobal));
61
+ {
62
+ const prop = 'disableUrlNormalization';
63
+ if (!hasProp(vikeConfigGlobal, prop, 'boolean') && !hasProp(vikeConfigGlobal, prop, 'undefined'))
64
+ return { prop, errMsg: 'should be a boolean' };
65
+ }
66
+ {
67
+ const prop = 'trailingSlash';
68
+ if (!hasProp(vikeConfigGlobal, prop, 'boolean') && !hasProp(vikeConfigGlobal, prop, 'undefined'))
69
+ return { prop, errMsg: 'should be a boolean' };
70
+ }
71
+ {
72
+ const prop = 'redirects';
73
+ const { redirects } = vikeConfigGlobal;
74
+ if (!(redirects === undefined ||
75
+ (isObject(redirects) && Object.values(redirects).every((v) => typeof v === 'string'))))
76
+ return { prop, errMsg: 'should be an object of strings' };
77
+ }
78
+ {
79
+ const prop = 'disableAutoFullBuild';
80
+ if (!hasProp(vikeConfigGlobal, prop, 'boolean') &&
81
+ !hasProp(vikeConfigGlobal, prop, 'undefined') &&
82
+ !(vikeConfigGlobal[prop] === 'prerender'))
83
+ return { prop, errMsg: "should be a boolean or 'prerender'" };
84
+ }
85
+ {
86
+ const prop = 'includeAssetsImportedByServer';
87
+ if (!hasProp(vikeConfigGlobal, prop, 'boolean') && !hasProp(vikeConfigGlobal, prop, 'undefined'))
88
+ return { prop, errMsg: 'should be a boolean' };
89
+ }
90
+ {
91
+ const prop = 'prerender';
92
+ if (!hasProp(vikeConfigGlobal, prop, 'object') &&
93
+ !hasProp(vikeConfigGlobal, prop, 'boolean') &&
94
+ !hasProp(vikeConfigGlobal, prop, 'undefined'))
95
+ return { prop, errMsg: 'should be an object or a boolean' };
96
+ }
97
+ const configVikePrerender = vikeConfigGlobal.prerender;
98
+ if (typeof configVikePrerender === 'object') {
99
+ {
100
+ const p = 'partial';
101
+ if (!hasProp(configVikePrerender, p, 'boolean') && !hasProp(configVikePrerender, p, 'undefined'))
102
+ return { prop: `prerender.${p}`, errMsg: 'should be a boolean' };
103
+ }
104
+ {
105
+ const p = 'noExtraDir';
106
+ if (!hasProp(configVikePrerender, p, 'boolean') && !hasProp(configVikePrerender, p, 'undefined'))
107
+ return { prop: `prerender.${p}`, errMsg: 'should be a boolean' };
108
+ }
109
+ {
110
+ const p = 'disableAutoRun';
111
+ if (!hasProp(configVikePrerender, p, 'boolean') && !hasProp(configVikePrerender, p, 'undefined'))
112
+ return { prop: `prerender.${p}`, errMsg: 'should be a boolean' };
113
+ }
114
+ {
115
+ const p = 'parallel';
116
+ if (!hasProp(configVikePrerender, p, 'boolean') &&
117
+ !hasProp(configVikePrerender, p, 'number') &&
118
+ !hasProp(configVikePrerender, p, 'undefined'))
119
+ return { prop: `prerender.${p}`, errMsg: 'should be a boolean or a number' };
120
+ }
121
+ }
122
+ return null;
123
+ }
@@ -1,4 +1,5 @@
1
1
  export { getVikeConfig };
2
+ export { getVikeConfig2 };
2
3
  export { reloadVikeConfig };
3
4
  export { vikeConfigDependencies };
4
5
  export { isVikeConfigFile };
@@ -11,6 +12,7 @@ import type { PageConfigGlobalBuildTime, PageConfigBuildTime } from '../../../..
11
12
  import { type LocationId } from './getVikeConfig/filesystemRouting.js';
12
13
  import type { ResolvedConfig } from 'vite';
13
14
  import type { FilePathResolved } from '../../../../../shared/page-configs/FilePath.js';
15
+ import type { VikeConfigGlobal } from './getVikeConfig/resolveVikeConfigGlobal.js';
14
16
  type InterfaceFile = InterfaceConfigFile | InterfaceValueFile;
15
17
  type InterfaceFileCommons = {
16
18
  locationId: LocationId;
@@ -34,14 +36,14 @@ type ConfigName = string;
34
36
  type VikeConfigObject = {
35
37
  pageConfigs: PageConfigBuildTime[];
36
38
  pageConfigGlobal: PageConfigGlobalBuildTime;
37
- globalVikeConfig: Record<string, unknown>;
39
+ vikeConfigGlobal: VikeConfigGlobal;
38
40
  };
39
41
  declare const vikeConfigDependencies: Set<string>;
40
- declare function reloadVikeConfig(userRootDir: string, outDirRoot: string): void;
41
- declare function getVikeConfig(config: ResolvedConfig, isDev: boolean, { crawlWithGit, tolerateInvalidConfig }?: {
42
- crawlWithGit?: null | boolean;
43
- tolerateInvalidConfig?: true;
42
+ declare function reloadVikeConfig(config: ResolvedConfig): void;
43
+ declare function getVikeConfig(config: ResolvedConfig, { doNotRestartViteOnError }?: {
44
+ doNotRestartViteOnError?: true;
44
45
  }): Promise<VikeConfigObject>;
45
- declare function isV1Design(config: ResolvedConfig, isDev: boolean): Promise<boolean>;
46
+ declare function getVikeConfig2(userRootDir: string, isDev: boolean, vikeVitePluginOptions: unknown): Promise<VikeConfigObject>;
47
+ declare function isV1Design(config: ResolvedConfig): Promise<boolean>;
46
48
  declare function isVikeConfigFile(filePath: string): boolean;
47
49
  declare function getConfigValueInterfaceFile(interfaceFile: InterfaceFile, configName: string): unknown;
@@ -1,10 +1,11 @@
1
1
  export { getVikeConfig };
2
+ export { getVikeConfig2 };
2
3
  export { reloadVikeConfig };
3
4
  export { vikeConfigDependencies };
4
5
  export { isVikeConfigFile };
5
6
  export { isV1Design };
6
7
  export { getConfigValueInterfaceFile };
7
- import { assertPosixPath, assert, isObject, assertUsage, assertWarning, objectEntries, hasProp, includes, assertIsNotProductionRuntime, getMostSimilar, joinEnglish, lowerFirst, getOutDirs, assertKeys, objectKeys, objectFromEntries, makeFirst, isNpmPackageImport, reverse } from '../../../utils.js';
8
+ import { assertPosixPath, assert, isObject, assertUsage, assertWarning, objectEntries, hasProp, includes, assertIsNotProductionRuntime, getMostSimilar, joinEnglish, lowerFirst, assertKeys, objectKeys, objectFromEntries, makeFirst, isNpmPackageImport, reverse } from '../../../utils.js';
8
9
  import path from 'path';
9
10
  import { configDefinitionsBuiltIn, configDefinitionsBuiltInGlobal } from './getVikeConfig/configDefinitionsBuiltIn.js';
10
11
  import { getLocationId, getFilesystemRouteString, getFilesystemRouteDefinedBy, isInherited, sortAfterInheritanceOrder, isGlobalLocation, applyFilesystemRoutingRootEffect } from './getVikeConfig/filesystemRouting.js';
@@ -21,17 +22,20 @@ import { loadConfigFile, loadImportedFile, loadValueFile } from './getVikeConfig
21
22
  import { clearFilesEnvMap, resolveConfigEnvWithFileName, resolvePointerImportOfConfig } from './getVikeConfig/resolvePointerImport.js';
22
23
  import { getFilePathResolved } from '../../../shared/getFilePath.js';
23
24
  import { getConfigValueBuildTime } from '../../../../../shared/page-configs/getConfigValueBuildTime.js';
24
- import { getConfigVike } from '../../../../shared/getConfigVike.js';
25
25
  import { assertExtensionsPeerDependencies, assertExtensionsConventions } from './assertExtensions.js';
26
+ import { resolveVikeConfigGlobal } from './getVikeConfig/resolveVikeConfigGlobal.js';
26
27
  assertIsNotProductionRuntime();
27
- let devServerIsCorrupt = false;
28
+ let restartVite = false;
28
29
  let wasConfigInvalid = null;
29
30
  let vikeConfigPromise = null;
30
31
  const vikeConfigDependencies = new Set();
31
- function reloadVikeConfig(userRootDir, outDirRoot) {
32
+ function reloadVikeConfig(config) {
33
+ const userRootDir = config.root;
34
+ const vikeVitePluginOptions = config._vikeVitePluginOptions;
35
+ assert(vikeVitePluginOptions);
32
36
  vikeConfigDependencies.clear();
33
37
  clearFilesEnvMap();
34
- vikeConfigPromise = loadVikeConfig_withErrorHandling(userRootDir, outDirRoot, true, true);
38
+ vikeConfigPromise = loadVikeConfig_withErrorHandling(userRootDir, true, vikeVitePluginOptions);
35
39
  handleReloadSideEffects();
36
40
  }
37
41
  async function handleReloadSideEffects() {
@@ -55,8 +59,8 @@ async function handleReloadSideEffects() {
55
59
  wasConfigInvalid = false;
56
60
  logConfigErrorRecover();
57
61
  }
58
- if (devServerIsCorrupt) {
59
- devServerIsCorrupt = false;
62
+ if (restartVite) {
63
+ restartVite = false;
60
64
  const viteDevServer = getViteDevServer();
61
65
  assert(viteDevServer);
62
66
  removeSuperfluousViteLog_enable();
@@ -65,23 +69,31 @@ async function handleReloadSideEffects() {
65
69
  }
66
70
  }
67
71
  }
68
- async function getVikeConfig(config, isDev, { crawlWithGit, tolerateInvalidConfig } = {}) {
69
- const { outDirRoot } = getOutDirs(config);
72
+ async function getVikeConfig(config, { doNotRestartViteOnError } = {}) {
70
73
  const userRootDir = config.root;
74
+ const vikeVitePluginOptions = config._vikeVitePluginOptions;
75
+ assert(vikeVitePluginOptions);
76
+ const isDev = config._isDev;
77
+ assert(typeof isDev === 'boolean');
78
+ return await getVikeConfigEntry(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError ?? false);
79
+ }
80
+ async function getVikeConfig2(userRootDir, isDev, vikeVitePluginOptions) {
81
+ return await getVikeConfigEntry(userRootDir, isDev, vikeVitePluginOptions, false);
82
+ }
83
+ async function getVikeConfigEntry(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
71
84
  if (!vikeConfigPromise) {
72
- const crawlWithGit_ = crawlWithGit !== undefined ? crawlWithGit : (await getConfigVike(config)).crawl.git;
73
- vikeConfigPromise = loadVikeConfig_withErrorHandling(userRootDir, outDirRoot, isDev, crawlWithGit_, tolerateInvalidConfig);
85
+ vikeConfigPromise = loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
74
86
  }
75
87
  return await vikeConfigPromise;
76
88
  }
77
- async function isV1Design(config, isDev) {
78
- const vikeConfig = await getVikeConfig(config, isDev);
89
+ async function isV1Design(config) {
90
+ const vikeConfig = await getVikeConfig(config);
79
91
  const { pageConfigs } = vikeConfig;
80
92
  const isV1Design = pageConfigs.length > 0;
81
93
  return isV1Design;
82
94
  }
83
- async function loadInterfaceFiles(userRootDir, outDirRoot, crawlWithGit) {
84
- const plusFiles = await findPlusFiles(userRootDir, outDirRoot, crawlWithGit);
95
+ async function loadInterfaceFiles(userRootDir, crawlWithGit) {
96
+ const plusFiles = await findPlusFiles(userRootDir, null, crawlWithGit);
85
97
  const configFiles = [];
86
98
  const valueFiles = [];
87
99
  plusFiles.forEach((f) => {
@@ -190,12 +202,12 @@ function assertAllConfigsAreKnown(interfaceFilesByLocationId) {
190
202
  });
191
203
  });
192
204
  }
193
- async function loadVikeConfig_withErrorHandling(userRootDir, outDirRoot, isDev, crawlWithGit, tolerateInvalidConfig) {
205
+ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
194
206
  let hasError = false;
195
207
  let ret;
196
208
  let err;
197
209
  try {
198
- ret = await loadVikeConfig(userRootDir, outDirRoot, crawlWithGit);
210
+ ret = await loadVikeConfig(userRootDir, vikeVitePluginOptions);
199
211
  }
200
212
  catch (err_) {
201
213
  hasError = true;
@@ -217,8 +229,8 @@ async function loadVikeConfig_withErrorHandling(userRootDir, outDirRoot, isDev,
217
229
  }
218
230
  else {
219
231
  logConfigError(err);
220
- if (!tolerateInvalidConfig) {
221
- devServerIsCorrupt = true;
232
+ if (!doNotRestartViteOnError) {
233
+ restartVite = true;
222
234
  }
223
235
  const dummyData = {
224
236
  pageConfigs: [],
@@ -226,16 +238,18 @@ async function loadVikeConfig_withErrorHandling(userRootDir, outDirRoot, isDev,
226
238
  configDefinitions: {},
227
239
  configValueSources: {}
228
240
  },
229
- globalVikeConfig: {}
241
+ vikeConfigGlobal: resolveVikeConfigGlobal({}, {})
230
242
  };
231
243
  return dummyData;
232
244
  }
233
245
  }
234
246
  }
235
- async function loadVikeConfig(userRootDir, outDirRoot, crawlWithGit) {
236
- const interfaceFilesByLocationId = await loadInterfaceFiles(userRootDir, outDirRoot, crawlWithGit);
247
+ async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
248
+ const crawlWithGit = resolveVikeConfigGlobal(vikeVitePluginOptions, {}).crawl.git ?? null;
249
+ const interfaceFilesByLocationId = await loadInterfaceFiles(userRootDir, crawlWithGit);
237
250
  const importedFilesLoaded = {};
238
- const { globalVikeConfig, pageConfigGlobal } = await getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded);
251
+ const { pageConfigGlobal, pageConfigGlobalValues } = await getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded);
252
+ const vikeConfigGlobal = resolveVikeConfigGlobal(vikeVitePluginOptions, pageConfigGlobalValues);
239
253
  const pageConfigs = await Promise.all(objectEntries(interfaceFilesByLocationId)
240
254
  .filter(([_pageId, interfaceFiles]) => isDefiningPage(interfaceFiles))
241
255
  .map(async ([locationId]) => {
@@ -285,7 +299,7 @@ async function loadVikeConfig(userRootDir, outDirRoot, crawlWithGit) {
285
299
  return pageConfig;
286
300
  }));
287
301
  assertPageConfigs(pageConfigs);
288
- return { pageConfigs, pageConfigGlobal, globalVikeConfig };
302
+ return { pageConfigs, pageConfigGlobal, vikeConfigGlobal };
289
303
  }
290
304
  // TODO/soon: refactor
291
305
  // - Dedupe: most of the assertUsageGlobalConfigs() code below is a copy-paste of the assertUsage() logic inside getGlobalConfigs()
@@ -395,7 +409,7 @@ async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importe
395
409
  });
396
410
  });
397
411
  }
398
- const globalVikeConfig = {};
412
+ const pageConfigGlobalValues = {};
399
413
  const pageConfigGlobal = {
400
414
  configDefinitions: configDefinitionsBuiltInGlobal,
401
415
  configValueSources: {}
@@ -415,10 +429,10 @@ async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importe
415
429
  return;
416
430
  const { filePathToShowToUser } = configValueSource.definedAtFilePath;
417
431
  assertWarning(false, `Being able to define config ${pc.cyan(configName)} in ${filePathToShowToUser} is experimental and will likely be removed. Define the config ${pc.cyan(configName)} in Vike's Vite plugin options instead.`, { onlyOnce: true });
418
- globalVikeConfig[configName] = configValueSource.value;
432
+ pageConfigGlobalValues[configName] = configValueSource.value;
419
433
  }
420
434
  }));
421
- return { pageConfigGlobal, globalVikeConfig };
435
+ return { pageConfigGlobal, pageConfigGlobalValues };
422
436
  }
423
437
  async function resolveConfigValueSources(configName, configDef, interfaceFilesRelevant, userRootDir, importedFilesLoaded) {
424
438
  const sourcesInfo = [];
@@ -6,7 +6,6 @@ import { extractAssetsAddQuery } from '../../../../shared/extractAssetsQuery.js'
6
6
  import { debug } from './debug.js';
7
7
  import { isRuntimeEnvMatch } from './isRuntimeEnvMatch.js';
8
8
  import { serializeConfigValues } from '../../../../../shared/page-configs/serialize/serializeConfigValues.js';
9
- import { getConfigVike } from '../../../../shared/getConfigVike.js';
10
9
  import { fixServerAssets_isEnabled } from '../../buildConfig/fixServerAssets.js';
11
10
  import { getConfigValueBuildTime } from '../../../../../shared/page-configs/getConfigValueBuildTime.js';
12
11
  async function getVirtualFilePageConfigValuesAll(id, isDev, config) {
@@ -19,11 +18,11 @@ async function getVirtualFilePageConfigValuesAll(id, isDev, config) {
19
18
  }
20
19
  */
21
20
  const { pageId, isForClientSide } = result;
22
- const { pageConfigs } = await getVikeConfig(config, isDev, { tolerateInvalidConfig: true });
21
+ const vikeConfig = await getVikeConfig(config, { doNotRestartViteOnError: true });
22
+ const { pageConfigs } = vikeConfig;
23
23
  const pageConfig = pageConfigs.find((pageConfig) => pageConfig.pageId === pageId);
24
24
  assert(pageConfig, { id, pageId });
25
- const configVike = await getConfigVike(config);
26
- const code = getLoadConfigValuesAll(pageConfig, isForClientSide, pageId, configVike.includeAssetsImportedByServer, isDev);
25
+ const code = getLoadConfigValuesAll(pageConfig, isForClientSide, pageId, vikeConfig.vikeConfigGlobal.includeAssetsImportedByServer, isDev);
27
26
  debug(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code);
28
27
  return code;
29
28
  }
@@ -5,7 +5,7 @@ import { getVikeConfig } from './getVikeConfig.js';
5
5
  import { isRuntimeEnvMatch } from './isRuntimeEnvMatch.js';
6
6
  import { serializeConfigValues } from '../../../../../shared/page-configs/serialize/serializeConfigValues.js';
7
7
  async function getVirtualFilePageConfigs(isForClientSide, isDev, id, isClientRouting, config) {
8
- const { pageConfigs, pageConfigGlobal } = await getVikeConfig(config, isDev, { tolerateInvalidConfig: true });
8
+ const { pageConfigs, pageConfigGlobal } = await getVikeConfig(config, { doNotRestartViteOnError: true });
9
9
  return getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting);
10
10
  }
11
11
  function getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting) {