vike 0.4.225 → 0.4.226-commit-8f5c172

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 (157) hide show
  1. package/dist/cjs/client/shared/getPageContextProxyForUser.js +3 -66
  2. package/dist/cjs/node/api/build.js +7 -7
  3. package/dist/cjs/node/api/dev.js +2 -2
  4. package/dist/cjs/node/api/prepareViteApiCall.js +55 -30
  5. package/dist/cjs/node/api/prerender.js +2 -3
  6. package/dist/cjs/node/api/preview.js +27 -6
  7. package/dist/cjs/node/api/utils.js +1 -0
  8. package/dist/cjs/node/cli/entry.js +4 -2
  9. package/dist/cjs/node/cli/parseCli.js +10 -4
  10. package/dist/cjs/node/plugin/plugins/build/pluginAutoFullBuild.js +3 -3
  11. package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +51 -0
  12. package/dist/cjs/node/plugin/plugins/build.js +3 -1
  13. package/dist/cjs/node/plugin/plugins/commonConfig.js +22 -8
  14. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  15. package/dist/cjs/node/plugin/plugins/fileEnv.js +3 -0
  16. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +14 -10
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -1
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
  19. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +99 -85
  20. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +10 -1
  21. package/dist/cjs/node/plugin/shared/getEnvVarObject.js +7 -0
  22. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +3 -3
  23. package/dist/cjs/node/prerender/runPrerender.js +21 -28
  24. package/dist/cjs/node/prerender/utils.js +1 -1
  25. package/dist/cjs/node/runtime/globalContext.js +13 -8
  26. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
  27. package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +67 -14
  28. package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +3 -2
  29. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +3 -0
  30. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +18 -12
  31. package/dist/cjs/node/runtime/renderPage.js +13 -28
  32. package/dist/cjs/node/runtime/utils.js +1 -1
  33. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +2 -2
  34. package/dist/cjs/node/shared/assertV1Design.js +1 -1
  35. package/dist/cjs/node/shared/utils.js +1 -1
  36. package/dist/cjs/node/shared/virtual-files.js +14 -10
  37. package/dist/cjs/shared/NOT_SERIALIZABLE.js +5 -0
  38. package/dist/cjs/shared/modifyUrl.js +3 -5
  39. package/dist/cjs/shared/modifyUrlSameOrigin.js +42 -0
  40. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +3 -2
  41. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +5 -5
  42. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +9 -9
  43. package/dist/cjs/shared/utils.js +2 -1
  44. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  45. package/dist/cjs/utils/assert.js +10 -3
  46. package/dist/cjs/utils/assertSetup.js +12 -8
  47. package/dist/cjs/utils/assertSingleInstance.js +19 -4
  48. package/dist/cjs/utils/getRandomId.js +1 -1
  49. package/dist/cjs/utils/isNullish.js +16 -0
  50. package/dist/cjs/utils/normalizeHeaders.js +1 -1
  51. package/dist/cjs/utils/objectAssign.js +7 -2
  52. package/dist/cjs/utils/objectFilter.js +10 -0
  53. package/dist/cjs/utils/pick.js +12 -0
  54. package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +3 -1
  55. package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -3
  56. package/dist/esm/client/client-routing-runtime/navigate.d.ts +6 -5
  57. package/dist/esm/client/client-routing-runtime/navigate.js +6 -2
  58. package/dist/esm/client/client-routing-runtime/normalizeUrlArgument.js +1 -1
  59. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +1 -1
  60. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +6 -3
  61. package/dist/esm/client/server-routing-runtime/getPageContext.js +6 -3
  62. package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +1 -11
  63. package/dist/esm/client/shared/getPageContextProxyForUser.js +4 -67
  64. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
  65. package/dist/esm/node/api/build.js +7 -7
  66. package/dist/esm/node/api/dev.js +2 -2
  67. package/dist/esm/node/api/prepareViteApiCall.d.ts +2 -1
  68. package/dist/esm/node/api/prepareViteApiCall.js +57 -32
  69. package/dist/esm/node/api/prerender.js +2 -3
  70. package/dist/esm/node/api/preview.d.ts +1 -1
  71. package/dist/esm/node/api/preview.js +24 -6
  72. package/dist/esm/node/api/utils.d.ts +1 -0
  73. package/dist/esm/node/api/utils.js +1 -0
  74. package/dist/esm/node/cli/entry.js +4 -2
  75. package/dist/esm/node/cli/parseCli.js +10 -4
  76. package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.js +3 -3
  77. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.d.ts +3 -0
  78. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +49 -0
  79. package/dist/esm/node/plugin/plugins/build.js +3 -1
  80. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +10 -2
  81. package/dist/esm/node/plugin/plugins/commonConfig.js +22 -8
  82. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  83. package/dist/esm/node/plugin/plugins/fileEnv.js +3 -0
  84. package/dist/esm/node/plugin/plugins/importUserCode/index.js +15 -11
  85. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -1
  86. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +5 -2
  87. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
  88. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +11 -2
  89. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +101 -86
  90. package/dist/esm/node/plugin/plugins/setGlobalContext.js +11 -2
  91. package/dist/esm/node/plugin/shared/getEnvVarObject.js +7 -0
  92. package/dist/esm/node/prerender/resolvePrerenderConfig.js +3 -3
  93. package/dist/esm/node/prerender/runPrerender.d.ts +1 -1
  94. package/dist/esm/node/prerender/runPrerender.js +21 -28
  95. package/dist/esm/node/prerender/utils.d.ts +1 -1
  96. package/dist/esm/node/prerender/utils.js +1 -1
  97. package/dist/esm/node/runtime/globalContext.d.ts +2 -3
  98. package/dist/esm/node/runtime/globalContext.js +13 -8
  99. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
  100. package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +2 -0
  101. package/dist/esm/node/runtime/html/serializePageContextClientSide.js +69 -15
  102. package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.d.ts +1 -1
  103. package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +3 -2
  104. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +3 -0
  105. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +27 -1
  106. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +18 -12
  107. package/dist/esm/node/runtime/renderPage.js +14 -29
  108. package/dist/esm/node/runtime/utils.d.ts +1 -1
  109. package/dist/esm/node/runtime/utils.js +1 -1
  110. package/dist/esm/node/runtime-dev/createDevMiddleware.js +2 -2
  111. package/dist/esm/node/shared/assertV1Design.js +1 -1
  112. package/dist/esm/node/shared/utils.d.ts +1 -1
  113. package/dist/esm/node/shared/utils.js +1 -1
  114. package/dist/esm/node/shared/virtual-files.d.ts +2 -0
  115. package/dist/esm/node/shared/virtual-files.js +14 -10
  116. package/dist/esm/shared/NOT_SERIALIZABLE.d.ts +1 -0
  117. package/dist/esm/shared/NOT_SERIALIZABLE.js +2 -0
  118. package/dist/esm/shared/modifyUrl.d.ts +2 -2
  119. package/dist/esm/shared/modifyUrl.js +3 -5
  120. package/dist/esm/shared/modifyUrlSameOrigin.d.ts +9 -0
  121. package/dist/esm/shared/modifyUrlSameOrigin.js +40 -0
  122. package/dist/esm/shared/page-configs/Config.d.ts +11 -3
  123. package/dist/esm/shared/page-configs/PageConfig.d.ts +2 -2
  124. package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +3 -1
  125. package/dist/esm/shared/page-configs/getConfigDefinedAt.js +3 -2
  126. package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +5 -5
  127. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +9 -9
  128. package/dist/esm/shared/route/abort.d.ts +2 -2
  129. package/dist/esm/shared/types.d.ts +39 -3
  130. package/dist/esm/shared/utils.d.ts +2 -1
  131. package/dist/esm/shared/utils.js +2 -1
  132. package/dist/esm/types/index.d.ts +0 -1
  133. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  134. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  135. package/dist/esm/utils/assert.d.ts +2 -1
  136. package/dist/esm/utils/assert.js +10 -3
  137. package/dist/esm/utils/assertSetup.d.ts +2 -2
  138. package/dist/esm/utils/assertSetup.js +12 -8
  139. package/dist/esm/utils/assertSingleInstance.js +19 -4
  140. package/dist/esm/utils/getRandomId.d.ts +1 -1
  141. package/dist/esm/utils/getRandomId.js +1 -1
  142. package/dist/esm/utils/isNullish.d.ts +3 -0
  143. package/dist/esm/utils/isNullish.js +11 -0
  144. package/dist/esm/utils/normalizeHeaders.js +1 -1
  145. package/dist/esm/utils/objectAssign.d.ts +1 -1
  146. package/dist/esm/utils/objectAssign.js +7 -2
  147. package/dist/esm/utils/objectFilter.d.ts +1 -0
  148. package/dist/esm/utils/objectFilter.js +7 -0
  149. package/dist/esm/utils/pick.d.ts +1 -0
  150. package/dist/esm/utils/pick.js +9 -0
  151. package/package.json +4 -2
  152. package/dist/cjs/shared/notSerializable.js +0 -5
  153. package/dist/cjs/utils/isNotNullish.js +0 -5
  154. package/dist/esm/shared/notSerializable.d.ts +0 -1
  155. package/dist/esm/shared/notSerializable.js +0 -2
  156. package/dist/esm/utils/isNotNullish.d.ts +0 -1
  157. package/dist/esm/utils/isNotNullish.js +0 -1
@@ -1,12 +1,13 @@
1
1
  export { getVikeConfig };
2
+ export { getVikeConfigOptional };
2
3
  export { getVikeConfig2 };
3
4
  export { reloadVikeConfig };
4
- export { vikeConfigDependencies };
5
5
  export { isV1Design };
6
6
  export { getConfVal };
7
7
  export { getConfigDefinitionOptional };
8
+ export { getVikeConfigFromCliOrEnv };
8
9
  export { isOverriden };
9
- import { assertPosixPath, assert, isObject, assertUsage, assertWarning, objectEntries, hasProp, includes, assertIsNotProductionRuntime, getMostSimilar, joinEnglish, assertKeys, objectKeys, objectFromEntries, unique, isCallable, makeFirst, lowerFirst, makeLast } from '../../../utils.js';
10
+ import { assertPosixPath, assert, isObject, assertUsage, assertWarning, objectEntries, hasProp, includes, assertIsNotProductionRuntime, getMostSimilar, joinEnglish, assertKeys, objectKeys, objectFromEntries, unique, isCallable, makeFirst, lowerFirst, makeLast, assertIsSingleModuleInstance } from '../../../utils.js';
10
11
  import { configDefinitionsBuiltIn } from './getVikeConfig/configDefinitionsBuiltIn.js';
11
12
  import { getLocationId, getFilesystemRouteString, getFilesystemRouteDefinedBy, isInherited, sortAfterInheritanceOrder, applyFilesystemRoutingRootEffect } from './getVikeConfig/filesystemRouting.js';
12
13
  import { isVikeConfigInvalid, isVikeConfigInvalid_set } from '../../../../runtime/renderPage/isVikeConfigInvalid.js';
@@ -14,7 +15,7 @@ import { getViteDevServer } from '../../../../runtime/globalContext.js';
14
15
  import { logConfigError, logConfigErrorRecover } from '../../../shared/loggerNotProd.js';
15
16
  import { removeSuperfluousViteLog_enable, removeSuperfluousViteLog_disable } from '../../../shared/loggerVite/removeSuperfluousViteLog.js';
16
17
  import pc from '@brillout/picocolors';
17
- import { getConfigDefinedAt } from '../../../../../shared/page-configs/getConfigDefinedAt.js';
18
+ import { getConfigDefinedAt, getDefinedByString } from '../../../../../shared/page-configs/getConfigDefinedAt.js';
18
19
  import { loadPointerImport, loadValueFile } from './getVikeConfig/loadFileAtConfigTime.js';
19
20
  import { resolvePointerImport } from './getVikeConfig/resolvePointerImport.js';
20
21
  import { getFilePathResolved } from '../../../shared/getFilePath.js';
@@ -27,16 +28,14 @@ import { getEnvVarObject } from '../../../shared/getEnvVarObject.js';
27
28
  import { getApiOperation } from '../../../../api/context.js';
28
29
  import { getCliOptions } from '../../../../cli/context.js';
29
30
  assertIsNotProductionRuntime();
31
+ assertIsSingleModuleInstance('v1-design/getVikeConfig.ts');
30
32
  let restartVite = false;
31
33
  let wasConfigInvalid = null;
32
34
  let vikeConfigPromise = null;
33
- const vikeConfigDependencies = new Set();
34
35
  function reloadVikeConfig(config) {
35
36
  const userRootDir = config.root;
36
37
  const vikeVitePluginOptions = config._vikeVitePluginOptions;
37
38
  assert(vikeVitePluginOptions);
38
- // TODO/now: unify with esbuildCache
39
- vikeConfigDependencies.clear();
40
39
  vikeConfigPromise = loadVikeConfig_withErrorHandling(userRootDir, true, vikeVitePluginOptions);
41
40
  handleReloadSideEffects();
42
41
  }
@@ -90,6 +89,11 @@ async function getVikeConfigEntry(userRootDir, isDev, vikeVitePluginOptions, doN
90
89
  }
91
90
  return await vikeConfigPromise;
92
91
  }
92
+ async function getVikeConfigOptional() {
93
+ if (!vikeConfigPromise)
94
+ return null;
95
+ return await vikeConfigPromise;
96
+ }
93
97
  function isV1Design(config) {
94
98
  const vikeConfig = config._vikeConfigObject;
95
99
  assert(vikeConfig);
@@ -134,22 +138,24 @@ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePlug
134
138
  configValueSources: {}
135
139
  },
136
140
  global: getPageConfigGlobalUserFriendly({ pageConfigGlobalValues: {} }),
137
- pages: {}
141
+ pages: {},
142
+ vikeConfigDependencies: new Set()
138
143
  };
139
144
  return dummyData;
140
145
  }
141
146
  }
142
147
  }
143
148
  async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
144
- const esbuildCache = {};
149
+ const esbuildCache = {
150
+ transpileCache: {},
151
+ vikeConfigDependencies: new Set()
152
+ };
145
153
  const plusFilesAll = await getPlusFilesAll(userRootDir, esbuildCache);
146
154
  const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache);
147
- assertKnownConfigs(configDefinitionsResolved, plusFilesAll);
148
155
  const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir);
149
156
  // Backwards compatibility for vike(options) in vite.config.js
150
157
  temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
151
- // TODO/now: add validation
152
- setCliAndApiOptions(pageConfigGlobal);
158
+ setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
153
159
  // global
154
160
  const pageConfigGlobalValues = getConfigValues(pageConfigGlobal);
155
161
  const global = getPageConfigGlobalUserFriendly({ pageConfigGlobalValues });
@@ -158,7 +164,7 @@ async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
158
164
  const pageConfigValues = getConfigValues(pageConfig, true);
159
165
  return getPageConfigUserFriendly(pageConfigGlobalValues, pageConfig, pageConfigValues);
160
166
  }));
161
- return { pageConfigs, pageConfigGlobal, global, pages };
167
+ return { pageConfigs, pageConfigGlobal, global, pages, vikeConfigDependencies: esbuildCache.vikeConfigDependencies };
162
168
  }
163
169
  async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache) {
164
170
  const plusFilesAllOrdered = Object.values(plusFilesAll)
@@ -168,6 +174,10 @@ async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache)
168
174
  // We use `plusFilesAll` in order to allow local Vike extensions to create global configs, and to set the value of global configs such as `+vite` (enabling Vike extensions to add Vite plugins).
169
175
  plusFilesAllOrdered, (configDef) => !!configDef.global);
170
176
  await loadCustomConfigBuildTimeFiles(plusFilesAll, configDefinitionsGlobal, userRootDir, esbuildCache);
177
+ const configDefinitionsAll = getConfigDefinitions(Object.values(plusFilesAll).flat());
178
+ const configNamesKnownAll = Object.keys(configDefinitionsAll);
179
+ const configNamesKnownGlobal = Object.keys(configDefinitionsGlobal);
180
+ assert(configNamesKnownGlobal.every((configName) => configNamesKnownAll.includes(configName)));
171
181
  const configDefinitionsLocal = {};
172
182
  await Promise.all(objectEntries(plusFilesAll).map(async ([locationIdPage, plusFiles]) => {
173
183
  const plusFilesRelevant = objectEntries(plusFilesAll)
@@ -177,12 +187,23 @@ async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache)
177
187
  .sort((plusFile1, plusFile2) => sortAfterInheritanceOrderPage(plusFile1, plusFile2, locationIdPage, null));
178
188
  const configDefinitions = getConfigDefinitions(plusFilesRelevant, (configDef) => configDef.global !== true);
179
189
  await loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, esbuildCache);
180
- configDefinitionsLocal[locationIdPage] = { configDefinitions, plusFiles, plusFilesRelevant };
190
+ const configNamesKnownLocal = unique([...Object.keys(configDefinitions), ...configNamesKnownGlobal]);
191
+ assert(configNamesKnownLocal.every((configName) => configNamesKnownAll.includes(configName)));
192
+ configDefinitionsLocal[locationIdPage] = {
193
+ configDefinitions,
194
+ plusFiles,
195
+ plusFilesRelevant,
196
+ configNamesKnownLocal
197
+ };
181
198
  }));
182
199
  const configDefinitionsResolved = {
183
200
  configDefinitionsGlobal,
184
- configDefinitionsLocal
201
+ configDefinitionsLocal,
202
+ configDefinitionsAll,
203
+ configNamesKnownAll,
204
+ configNamesKnownGlobal
185
205
  };
206
+ assertKnownConfigs(configDefinitionsResolved);
186
207
  return configDefinitionsResolved;
187
208
  }
188
209
  // Load value files (with `env.config===true`) of *custom* configs.
@@ -285,7 +306,7 @@ function assertGlobalConfigLocation(configName, sources, plusFilesAll, configDef
285
306
  : 'to a value that is global';
286
307
  const what = isConditionallyGlobal ? 'global values' : pc.cyan(configName);
287
308
  const errEnd = configFilePathsGlobal.length > 0
288
- ? `define ${what} at a global config file such as ${joinEnglish(configFilePathsGlobal, 'or')} instead`
309
+ ? `define ${what} at a global config file such as ${joinEnglish(configFilePathsGlobal.map(pc.bold), 'or')} instead`
289
310
  : `create a global config file (e.g. /pages/+config.js) and define ${what} there instead`;
290
311
  // When updating this error message => also update error message at https://vike.dev/warning/global-config
291
312
  const errMsg = `${errBeg} ${errMid}: ${errEnd} (https://vike.dev/warning/global-config).`;
@@ -354,56 +375,55 @@ function temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, use
354
375
  assertWarning(Object.keys(vikeVitePluginOptions).length === 0, `Define Vike settings in +config.js instead of vite.config.js ${pc.underline('https://vike.dev/migration/settings')}`, { onlyOnce: true });
355
376
  Object.entries(vikeVitePluginOptions).forEach(([configName, value]) => {
356
377
  var _a;
357
- assert(includes(objectKeys(configDefinitionsBuiltIn), configName));
358
- const configDef = configDefinitionsBuiltIn[configName];
359
378
  const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
360
- // TODO/now: use getSourceNonConfigFile()
361
- sources.push({
362
- valueIsLoaded: true,
363
- value,
364
- configEnv: configDef.env,
365
- definedAtFilePath: {
366
- ...getFilePathResolved({
367
- userRootDir,
368
- filePathAbsoluteUserRootDir: '/vite.config.js'
369
- }),
370
- fileExportPathToShowToUser: null
371
- },
372
- locationId: '/',
373
- plusFile: null,
374
- valueIsLoadedWithImport: false,
375
- valueIsDefinedByPlusValueFile: false
376
- });
379
+ sources.push(getSourceNonConfigFile(configName, value, {
380
+ ...getFilePathResolved({
381
+ userRootDir,
382
+ filePathAbsoluteUserRootDir: '/vite.config.js'
383
+ }),
384
+ fileExportPathToShowToUser: null
385
+ }));
377
386
  });
378
387
  }
379
- function setCliAndApiOptions(pageConfigGlobal) {
380
- // VIKE_CONFIG
381
- const configFromEnv = getEnvVarObject('VIKE_CONFIG');
382
- if (configFromEnv) {
383
- add(configFromEnv, { definedBy: 'env' });
384
- }
385
- // Vike API — passed options
388
+ function setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved) {
389
+ // Vike API — passed options [lowest precedence]
386
390
  const apiOperation = getApiOperation();
387
391
  if (apiOperation?.options.vikeConfig) {
388
- add(apiOperation.options.vikeConfig, {
389
- definedBy: 'api',
390
- operation: apiOperation.operation
391
- });
392
+ addSources(apiOperation.options.vikeConfig, { definedBy: 'api', operation: apiOperation.operation }, false);
392
393
  }
394
+ const { configFromCliOptions, configFromEnvVar } = getVikeConfigFromCliOrEnv();
393
395
  // Vike CLI options
394
- const cliOptions = getCliOptions();
395
- if (cliOptions) {
396
- add(cliOptions, { definedBy: 'cli' });
396
+ if (configFromCliOptions) {
397
+ addSources(configFromCliOptions, { definedBy: 'cli' }, true);
398
+ }
399
+ // VIKE_CONFIG [highest precedence]
400
+ if (configFromEnvVar) {
401
+ addSources(configFromEnvVar, { definedBy: 'env' }, false);
397
402
  }
398
403
  return;
399
- function add(configValues, definedBy) {
404
+ function addSources(configValues, definedBy, exitOnError) {
400
405
  Object.entries(configValues).forEach(([configName, value]) => {
401
406
  var _a;
407
+ const sourceName = `The ${getDefinedByString(definedBy, configName)}`;
408
+ assertKnownConfig(configName, configDefinitionsResolved.configNamesKnownGlobal, configDefinitionsResolved, '/', sourceName, exitOnError);
402
409
  const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
403
410
  sources.unshift(getSourceNonConfigFile(configName, value, definedBy));
404
411
  });
405
412
  }
406
413
  }
414
+ function getVikeConfigFromCliOrEnv() {
415
+ const configFromCliOptions = getCliOptions();
416
+ const configFromEnvVar = getEnvVarObject('VIKE_CONFIG');
417
+ const vikeConfigFromCliOrEnv = {
418
+ ...configFromCliOptions, // Lower precedence
419
+ ...configFromEnvVar // Higher precedence
420
+ };
421
+ return {
422
+ vikeConfigFromCliOrEnv,
423
+ configFromCliOptions,
424
+ configFromEnvVar
425
+ };
426
+ }
407
427
  function getSourceNonConfigFile(configName, value, definedAt) {
408
428
  assert(includes(objectKeys(configDefinitionsBuiltIn), configName));
409
429
  const configDef = configDefinitionsBuiltIn[configName];
@@ -411,7 +431,7 @@ function getSourceNonConfigFile(configName, value, definedAt) {
411
431
  valueIsLoaded: true,
412
432
  value,
413
433
  configEnv: configDef.env,
414
- definedAtFilePath: definedAt,
434
+ definedAt,
415
435
  locationId: '/',
416
436
  plusFile: null,
417
437
  valueIsLoadedWithImport: false,
@@ -527,7 +547,7 @@ function resolveConfigValueSources(configName, configDef, plusFilesRelevant, use
527
547
  return sources;
528
548
  }
529
549
  function isDefiningConfig(plusFile, configName) {
530
- return getDefiningConfigNames(plusFile).includes(configName);
550
+ return getConfigNamesSetByPlusFile(plusFile).includes(configName);
531
551
  }
532
552
  function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
533
553
  const confVal = getConfVal(plusFile, configName);
@@ -570,7 +590,7 @@ function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
570
590
  configEnv: configDef.env,
571
591
  valueIsLoadedWithImport: false,
572
592
  valueIsDefinedByPlusValueFile: false,
573
- definedAtFilePath
593
+ definedAt: definedAtFilePath
574
594
  };
575
595
  return configValueSource;
576
596
  }
@@ -594,7 +614,7 @@ function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
594
614
  configEnv: resolveConfigEnv(configDef.env, pointerImport.fileExportPath),
595
615
  valueIsLoadedWithImport: true,
596
616
  valueIsDefinedByPlusValueFile: false,
597
- definedAtFilePath: pointerImport.fileExportPath
617
+ definedAt: pointerImport.fileExportPath
598
618
  };
599
619
  return configValueSource;
600
620
  }
@@ -606,7 +626,7 @@ function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
606
626
  configEnv: configDef.env,
607
627
  valueIsLoadedWithImport: false,
608
628
  valueIsDefinedByPlusValueFile: false,
609
- definedAtFilePath: definedAtFilePath_
629
+ definedAt: definedAtFilePath_
610
630
  };
611
631
  return configValueSource;
612
632
  }
@@ -620,7 +640,7 @@ function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
620
640
  configEnv: configEnvResolved,
621
641
  valueIsLoadedWithImport: !confVal.valueIsLoaded || !isJsonValue(confVal.value),
622
642
  valueIsDefinedByPlusValueFile: true,
623
- definedAtFilePath: {
643
+ definedAt: {
624
644
  ...plusFile.filePath,
625
645
  fileExportPathToShowToUser: configName === plusFile.configName
626
646
  ? []
@@ -634,7 +654,7 @@ function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
634
654
  }
635
655
  function isDefiningPage(plusFiles) {
636
656
  for (const plusFile of plusFiles) {
637
- const configNames = getDefiningConfigNames(plusFile);
657
+ const configNames = getConfigNamesSetByPlusFile(plusFile);
638
658
  if (configNames.some((configName) => isDefiningPageConfig(configName))) {
639
659
  return true;
640
660
  }
@@ -656,7 +676,7 @@ function resolveIsGlobalValue(configDefGlobal, source, plusFilesAll) {
656
676
  assert(typeof isGlobal === 'boolean');
657
677
  return isGlobal;
658
678
  }
659
- function getDefiningConfigNames(plusFile) {
679
+ function getConfigNamesSetByPlusFile(plusFile) {
660
680
  let configNames = [];
661
681
  if (!plusFile.isConfigFile) {
662
682
  configNames.push(plusFile.configName);
@@ -776,7 +796,7 @@ function runEffect(configName, configDef, source) {
776
796
  // Call effect
777
797
  const configModFromEffect = configDef.effect({
778
798
  configValue: source.value,
779
- configDefinedAt: getConfigDefinedAt('Config', configName, source.definedAtFilePath)
799
+ configDefinedAt: getConfigDefinedAt('Config', configName, source.definedAt)
780
800
  });
781
801
  if (!configModFromEffect)
782
802
  return null;
@@ -790,7 +810,7 @@ function applyEffectConfVal(configModFromEffect, sourceEffect, configValueSource
790
810
  assert(configDef);
791
811
  assert(configDefEffect._userEffectDefinedAtFilePath);
792
812
  const configValueSource = {
793
- definedAtFilePath: configDefEffect._userEffectDefinedAtFilePath,
813
+ definedAt: configDefEffect._userEffectDefinedAtFilePath,
794
814
  plusFile: sourceEffect.plusFile,
795
815
  locationId: sourceEffect.locationId,
796
816
  configEnv: configDef.env,
@@ -853,33 +873,30 @@ function getComputed(configValueSources, configDefinitions) {
853
873
  return configValuesComputed;
854
874
  }
855
875
  // Show error message upon unknown config
856
- function assertKnownConfigs(configDefinitionsResolved, plusFilesAll) {
857
- const configDefinitionsAll = getConfigDefinitions(Object.values(plusFilesAll).flat());
858
- const configNamesKnownAll = Object.keys(configDefinitionsAll);
859
- const configNamesGlobal = Object.keys(configDefinitionsResolved.configDefinitionsGlobal);
860
- objectEntries(configDefinitionsResolved.configDefinitionsLocal).forEach(([_locationId, { configDefinitions, plusFiles }]) => {
861
- const configDefinitionsLocal = configDefinitions;
862
- const configNamesKnownLocal = [...Object.keys(configDefinitionsLocal), ...configNamesGlobal];
876
+ function assertKnownConfigs(configDefinitionsResolved) {
877
+ objectEntries(configDefinitionsResolved.configDefinitionsLocal).forEach(([_locationId, { configNamesKnownLocal, plusFiles }]) => {
863
878
  plusFiles.forEach((plusFile) => {
864
- const configNames = getDefiningConfigNames(plusFile);
879
+ const configNames = getConfigNamesSetByPlusFile(plusFile);
865
880
  configNames.forEach((configName) => {
866
- assertKnownConfig(configName, configNamesKnownAll, configNamesKnownLocal, plusFile);
867
- assert(configNamesKnownLocal.includes(configName));
868
- assert(configNamesKnownAll.includes(configName));
881
+ const { locationId } = plusFile;
882
+ const sourceName = plusFile.filePath.filePathToShowToUser;
883
+ assertKnownConfig(configName, configNamesKnownLocal, configDefinitionsResolved, locationId, sourceName, false);
869
884
  });
870
885
  });
871
886
  });
872
887
  }
873
- function assertKnownConfig(configName, configNamesKnownAll, configNamesKnownLocal, plusFile) {
874
- if (configNamesKnownLocal.includes(configName))
888
+ function assertKnownConfig(configName, configNamesKnownRelevant, configDefinitionsResolved, locationId, sourceName, exitOnError) {
889
+ const { configNamesKnownAll } = configDefinitionsResolved;
890
+ if (configNamesKnownRelevant.includes(configName)) {
891
+ assert(configNamesKnownAll.includes(configName));
875
892
  return;
893
+ }
876
894
  const configNameColored = pc.cyan(configName);
877
- const { locationId, filePath: { filePathToShowToUser } } = plusFile;
878
- const errMsg = `${filePathToShowToUser} sets an unknown config ${configNameColored}`;
879
895
  // Inheritance issue: config is known but isn't defined at `locationId`
880
896
  if (configNamesKnownAll.includes(configName)) {
881
- assertUsage(false, `${filePathToShowToUser} sets the value of the config ${configNameColored} which is a custom config that is defined with ${pc.underline('https://vike.dev/meta')} at a path that doesn't apply to ${locationId} — see ${pc.underline('https://vike.dev/config#inheritance')}`);
897
+ assertUsage(false, `${sourceName} sets the value of the config ${configNameColored} which is a custom config that is defined with ${pc.underline('https://vike.dev/meta')} at a path that doesn't apply to ${locationId} — see ${pc.underline('https://vike.dev/config#inheritance')}`, { exitOnError });
882
898
  }
899
+ const errMsg = `${sourceName} sets an unknown config ${configNameColored}`;
883
900
  // Missing vike-{react,vue,solid} installation
884
901
  {
885
902
  const ui = ['vike-react', 'vike-vue', 'vike-solid'];
@@ -895,11 +912,9 @@ function assertKnownConfig(configName, configNamesKnownAll, configNamesKnownLoca
895
912
  Wrapper: ui
896
913
  };
897
914
  if (configName in knownVikeExntensionConfigs) {
898
- const requiredVikeExtension = knownVikeExntensionConfigs[configName]
899
- .map((e) => pc.bold(e))
900
- .join('/');
915
+ const requiredVikeExtension = joinEnglish(knownVikeExntensionConfigs[configName].map((e) => pc.bold(e)), 'or');
901
916
  const errMsgEnhanced = `${errMsg}. If you want to use the configuration ${configNameColored} documented at ${pc.underline(`https://vike.dev/${configName}`)} then make sure to install ${requiredVikeExtension}. (Alternatively, you can define ${configNameColored} yourself by using ${pc.cyan('meta')}, see ${pc.underline('https://vike.dev/meta')} for more information.)`;
902
- assertUsage(false, errMsgEnhanced);
917
+ assertUsage(false, errMsgEnhanced, { exitOnError });
903
918
  }
904
919
  }
905
920
  // Similarity hint
@@ -916,9 +931,9 @@ function assertKnownConfig(configName, configNamesKnownAll, configNamesKnownLoca
916
931
  if (configName === 'page') {
917
932
  errMsgEnhanced += ` (The name of the config ${pc.cyan('Page')} starts with a capital letter ${pc.cyan('P')} because it defines a UI component: a ubiquitous JavaScript convention is that the name of UI components start with a capital letter.)`;
918
933
  }
919
- assertUsage(false, errMsgEnhanced);
934
+ assertUsage(false, errMsgEnhanced, { exitOnError });
920
935
  }
921
- assertUsage(false, errMsg);
936
+ assertUsage(false, errMsg, { exitOnError });
922
937
  }
923
938
  function determineRouteFilesystem(locationId, configValueSources) {
924
939
  const configName = 'filesystemRoutingRoot';
@@ -950,12 +965,12 @@ function getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName)
950
965
  // Eagerly loaded since it's config-only
951
966
  assert(configFilesystemRoutingRoot.valueIsLoaded);
952
967
  const { value } = configFilesystemRoutingRoot;
953
- const configDefinedAt = getConfigDefinedAt('Config', configName, configFilesystemRoutingRoot.definedAtFilePath);
968
+ const configDefinedAt = getConfigDefinedAt('Config', configName, configFilesystemRoutingRoot.definedAt);
954
969
  assertUsage(typeof value === 'string', `${configDefinedAt} should be a string`);
955
970
  assertUsage(value.startsWith('/'), `${configDefinedAt} is ${pc.cyan(value)} but it should start with a leading slash ${pc.cyan('/')}`);
956
- const { definedAtFilePath } = configFilesystemRoutingRoot;
957
- assert(!definedAtFilePath.definedBy);
958
- const { filePathAbsoluteUserRootDir } = definedAtFilePath;
971
+ const { definedAt } = configFilesystemRoutingRoot;
972
+ assert(!definedAt.definedBy);
973
+ const { filePathAbsoluteUserRootDir } = definedAt;
959
974
  assert(filePathAbsoluteUserRootDir);
960
975
  const before = getFilesystemRouteString(getLocationId(filePathAbsoluteUserRootDir));
961
976
  const after = value;
@@ -1006,7 +1021,7 @@ function getConfigDefinitionOptional(configDefinitions, configName) {
1006
1021
  return configDefinitions[configName] ?? null;
1007
1022
  }
1008
1023
  function getConfVal(plusFile, configName) {
1009
- const configNames = getDefiningConfigNames(plusFile);
1024
+ const configNames = getConfigNamesSetByPlusFile(plusFile);
1010
1025
  if (!configNames.includes(configName))
1011
1026
  return null;
1012
1027
  if (plusFile.isNotLoaded)
@@ -1,15 +1,23 @@
1
1
  export { setGlobalContext };
2
2
  import { setGlobalContext_viteDevServer, setGlobalContext_viteConfig, setGlobalContext_isProduction } from '../../runtime/globalContext.js';
3
- import { assertFilePathAbsoluteFilesystem, isDevCheck, markSetup_isViteDev, markSetup_viteDevServer, markSetup_vitePreviewServer } from '../utils.js';
3
+ import { assert, assertFilePathAbsoluteFilesystem, isDevCheck, markSetup_isViteDev, markSetup_viteDevServer, markSetup_vitePreviewServer } from '../utils.js';
4
4
  import { getOutDirs } from '../shared/getOutDirs.js';
5
+ import { reloadVikeConfig } from './importUserCode/v1-design/getVikeConfig.js';
5
6
  function setGlobalContext() {
7
+ let isServerReload = false;
8
+ let config;
6
9
  return [
7
10
  {
8
11
  name: 'vike:setGlobalContext:pre',
9
12
  enforce: 'pre',
13
+ // This hook is called not only at server start but also at server restart (a new `viteDevServer` instance is created)
10
14
  configureServer: {
11
15
  order: 'pre',
12
16
  handler(viteDevServer) {
17
+ assert(config);
18
+ if (isServerReload)
19
+ reloadVikeConfig(config);
20
+ isServerReload = true;
13
21
  setGlobalContext_viteDevServer(viteDevServer);
14
22
  markSetup_viteDevServer();
15
23
  }
@@ -31,7 +39,8 @@ function setGlobalContext() {
31
39
  enforce: 'post',
32
40
  configResolved: {
33
41
  order: 'post',
34
- async handler(config) {
42
+ async handler(config_) {
43
+ config = config_;
35
44
  const { outDirRoot } = getOutDirs(config);
36
45
  assertFilePathAbsoluteFilesystem(outDirRoot); // Needed for `importServerProductionEntry({ outDir })` of @brillout/vite-plugin-server-entry
37
46
  setGlobalContext_viteConfig(config, outDirRoot);
@@ -18,8 +18,15 @@ function parseJson5(valueStr, what) {
18
18
  value = JSON5.parse(valueStr);
19
19
  }
20
20
  catch (err) {
21
+ if (isNotJavaScriptLike(valueStr)) {
22
+ // Interpret as string
23
+ return valueStr;
24
+ }
21
25
  console.error(err);
22
26
  assertUsage(false, `Cannot parse ${pc.cyan(what)} (see error above) because it's set to the following which isn't a valid JSON5 string: ${pc.bold(valueStr)}`);
23
27
  }
24
28
  return value;
25
29
  }
30
+ function isNotJavaScriptLike(valueStr) {
31
+ return ![':', ',', '{', '}', '(', ')'].some((c) => valueStr.includes(c));
32
+ }
@@ -15,8 +15,8 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
15
15
  };
16
16
  let defaultLocalValue = false;
17
17
  {
18
- const valueFirst = prerenderConfigs.filter((p) => !isObject(p) || p.value !== null)[0];
19
- if (valueFirst === true || (isObject(valueFirst) && (valueFirst.value ?? defaultValueForObject))) {
18
+ const valueFirst = prerenderConfigs.filter((p) => !isObject(p) || p.enable !== null)[0];
19
+ if (valueFirst === true || (isObject(valueFirst) && (valueFirst.enable ?? defaultValueForObject))) {
20
20
  defaultLocalValue = true;
21
21
  }
22
22
  }
@@ -47,7 +47,7 @@ function resolvePrerenderConfigLocal(pageConfig) {
47
47
  const values = configValue.value;
48
48
  assert(isArray(values));
49
49
  const value = values[0];
50
- // TODO/now I believe this assert() can fail
50
+ // If it's set to an object in a local config then Vike considers it a global config and it's skipped from local inheritance, thus we can assume the value to be a boolean.
51
51
  assert(typeof value === 'boolean');
52
52
  assert(isArray(configValue.definedAtData));
53
53
  const prerenderConfigLocal = { value };
@@ -46,7 +46,7 @@ declare function runPrerenderFromAPI(options?: PrerenderOptions): Promise<{
46
46
  viteConfig: ResolvedConfig;
47
47
  }>;
48
48
  declare function runPrerenderFromCLIPrerenderCommand(): Promise<void>;
49
- declare function runPrerenderFromAutoRun(viteConfig: InlineConfig | undefined, config: ResolvedConfig): Promise<{
49
+ declare function runPrerenderFromAutoRun(viteConfig: InlineConfig | undefined): Promise<{
50
50
  forceExit: boolean;
51
51
  }>;
52
52
  declare function runPrerender_forceExit(): void;
@@ -38,8 +38,8 @@ async function runPrerenderFromAPI(options = {}) {
38
38
  }
39
39
  async function runPrerenderFromCLIPrerenderCommand() {
40
40
  try {
41
- const { viteConfigEnhanced } = await prepareViteApiCall({}, 'prerender');
42
- await runPrerender({ viteConfig: viteConfigEnhanced }, '$ vike prerender');
41
+ const { viteConfigFromUserEnhanced } = await prepareViteApiCall({}, 'prerender');
42
+ await runPrerender({ viteConfig: viteConfigFromUserEnhanced }, '$ vike prerender');
43
43
  }
44
44
  catch (err) {
45
45
  console.error(err);
@@ -50,11 +50,9 @@ async function runPrerenderFromCLIPrerenderCommand() {
50
50
  runPrerender_forceExit();
51
51
  assert(false);
52
52
  }
53
- async function runPrerenderFromAutoRun(viteConfig, config) {
54
- let prerenderContextPublic;
53
+ async function runPrerenderFromAutoRun(viteConfig) {
55
54
  try {
56
- const ret = await runPrerender({ viteConfig });
57
- prerenderContextPublic = ret.prerenderContextPublic;
55
+ await runPrerender({ viteConfig });
58
56
  }
59
57
  catch (err) {
60
58
  // Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
@@ -62,8 +60,6 @@ async function runPrerenderFromAutoRun(viteConfig, config) {
62
60
  logErrorHint(err);
63
61
  process.exit(1);
64
62
  }
65
- const vike = getVikeConfigPublic(config);
66
- vike.prerenderContext = prerenderContextPublic;
67
63
  const forceExit = isVikeCli() || isViteCliCall();
68
64
  return { forceExit };
69
65
  }
@@ -80,6 +76,8 @@ async function runPrerender(options = {}, standaloneTrigger) {
80
76
  await disableReactStreaming();
81
77
  const viteConfig = await resolveConfig(options.viteConfig || {}, 'build', 'production');
82
78
  const vikeConfig = await getVikeConfig(viteConfig);
79
+ const vike = getVikeConfigPublic(viteConfig);
80
+ assert(vike.prerenderContext.isPrerenderingEnabled);
83
81
  const { outDirClient } = getOutDirs(viteConfig);
84
82
  const { root } = viteConfig;
85
83
  const prerenderConfigGlobal = resolvePrerenderConfigGlobal(vikeConfig);
@@ -123,7 +121,8 @@ async function runPrerender(options = {}, standaloneTrigger) {
123
121
  }
124
122
  await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
125
123
  const prerenderContextPublic = makePublic(prerenderContext);
126
- return { viteConfig, prerenderContextPublic };
124
+ objectAssign(vike.prerenderContext, prerenderContextPublic);
125
+ return { viteConfig };
127
126
  }
128
127
  async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext) {
129
128
  // V1 design
@@ -304,20 +303,16 @@ async function handlePagesWithStaticRoutes(prerenderContext, globalContext, doNo
304
303
  })));
305
304
  }
306
305
  async function createPageContext(urlOriginal, prerenderContext, globalContext) {
307
- const pageContext = {
306
+ const pageContextInit = { urlOriginal };
307
+ objectAssign(pageContextInit, prerenderContext.pageContextInit);
308
+ const pageContext = await getPageContextInitEnhanced(pageContextInit, globalContext, true, {});
309
+ assert(pageContext.isPrerendering === true);
310
+ objectAssign(pageContext, {
308
311
  _urlHandler: null,
309
312
  _urlRewrite: null,
310
313
  _noExtraDir: prerenderContext.noExtraDir,
311
314
  _prerenderContext: prerenderContext
312
- };
313
- const pageContextInit = {
314
- urlOriginal
315
- };
316
- objectAssign(pageContextInit, prerenderContext.pageContextInit);
317
- {
318
- const pageContextInitEnhanced = await getPageContextInitEnhanced(pageContextInit, globalContext);
319
- objectAssign(pageContext, pageContextInitEnhanced);
320
- }
315
+ });
321
316
  return pageContext;
322
317
  }
323
318
  async function callOnPrerenderStartHook(prerenderContext, globalContext) {
@@ -596,6 +591,12 @@ async function write(urlOriginal, pageContext, fileType, fileContent, root, outD
596
591
  assertPosixPath(outDirClient);
597
592
  assertPosixPath(filePathRelative);
598
593
  const filePath = path.posix.join(outDirClient, filePathRelative);
594
+ objectAssign(pageContext, {
595
+ _prerenderResult: {
596
+ filePath,
597
+ fileContent
598
+ }
599
+ });
599
600
  output.push({
600
601
  filePath,
601
602
  fileType,
@@ -603,15 +604,7 @@ async function write(urlOriginal, pageContext, fileType, fileContent, root, outD
603
604
  pageContext
604
605
  });
605
606
  if (onPagePrerender) {
606
- const prerenderPageContext = {};
607
- objectAssign(prerenderPageContext, pageContext);
608
- objectAssign(prerenderPageContext, {
609
- _prerenderResult: {
610
- filePath,
611
- fileContent
612
- }
613
- });
614
- await onPagePrerender(prerenderPageContext);
607
+ await onPagePrerender(pageContext);
615
608
  }
616
609
  else {
617
610
  const { promises } = await import('fs');
@@ -15,4 +15,4 @@ export * from '../../utils/isArray.js';
15
15
  export * from '../../utils/isObject.js';
16
16
  export * from '../../utils/changeEnumerable.js';
17
17
  export * from '../../utils/makePublicCopy.js';
18
- export * from '../../utils/isNotNullish.js';
18
+ export * from '../../utils/isNullish.js';
@@ -17,4 +17,4 @@ export * from '../../utils/isArray.js';
17
17
  export * from '../../utils/isObject.js';
18
18
  export * from '../../utils/changeEnumerable.js';
19
19
  export * from '../../utils/makePublicCopy.js';
20
- export * from '../../utils/isNotNullish.js';
20
+ export * from '../../utils/isNullish.js';
@@ -21,7 +21,6 @@ export type { GlobalContextPublic };
21
21
  import type { ViteManifest } from '../shared/ViteManifest.js';
22
22
  import type { ResolvedConfig, ViteDevServer } from 'vite';
23
23
  import type { PageConfigUserFriendly, PageConfigsUserFriendly } from '../../shared/page-configs/getPageConfigUserFriendly.js';
24
- import type { ConfigVitePluginServerEntry } from '@brillout/vite-plugin-server-entry/plugin';
25
24
  import { type BaseUrlsResolved } from '../shared/resolveBase.js';
26
25
  type PageRuntimeInfo = Awaited<ReturnType<typeof getUserFiles>>;
27
26
  type GlobalContextInternal = GlobalContext & {
@@ -84,11 +83,11 @@ type BuildInfo = {
84
83
  viteConfigRuntime: {
85
84
  _baseViteOriginal: string;
86
85
  vitePluginServerEntry: {
87
- inject?: NonNullable<ConfigVitePluginServerEntry['vitePluginServerEntry']>['inject'];
86
+ inject?: boolean;
88
87
  };
89
88
  };
90
89
  };
91
90
  declare function assertBuildInfo(buildInfo: unknown): asserts buildInfo is BuildInfo;
92
- declare function getViteConfigRuntime(viteConfig: ResolvedConfig & ConfigVitePluginServerEntry): BuildInfo['viteConfigRuntime'];
91
+ declare function getViteConfigRuntime(viteConfig: ResolvedConfig): BuildInfo['viteConfigRuntime'];
93
92
  declare function updateUserFiles(): Promise<void>;
94
93
  declare function clearGlobalContext(): void;