vike 0.4.235 → 0.4.236-commit-64431e7

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 (227) hide show
  1. package/dist/cjs/__internal/index.js +1 -1
  2. package/dist/cjs/client/shared/createGetGlobalContextClient.js +2 -3
  3. package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  4. package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
  5. package/dist/cjs/node/cli/index.js +1 -1
  6. package/dist/cjs/node/createPageRenderer.js +1 -1
  7. package/dist/cjs/node/importBuild.js +1 -1
  8. package/dist/cjs/node/prerender/context.js +1 -1
  9. package/dist/cjs/node/prerender/index.js +1 -1
  10. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +2 -2
  11. package/dist/cjs/node/prerender/runPrerender.js +9 -13
  12. package/dist/cjs/node/runtime/globalContext.js +109 -28
  13. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  14. package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  15. package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  16. package/dist/cjs/node/runtime/html/serializeContext.js +73 -15
  17. package/dist/cjs/node/runtime/index-deprecated.js +1 -1
  18. package/dist/cjs/node/runtime/index.js +1 -1
  19. package/dist/cjs/node/runtime/page-files/setup.js +1 -1
  20. package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
  21. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +9 -6
  22. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  23. package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  24. package/dist/cjs/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +9 -9
  25. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  26. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  27. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +15 -12
  28. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +35 -16
  29. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  30. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  31. package/dist/cjs/node/runtime/renderPage.js +4 -6
  32. package/dist/cjs/node/runtime/utils.js +1 -0
  33. package/dist/cjs/node/vite/index.js +2 -0
  34. package/dist/cjs/node/vite/onLoad.js +1 -1
  35. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  36. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
  37. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  38. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  39. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  40. package/dist/cjs/node/vite/plugins/pluginCommon.js +9 -4
  41. package/dist/cjs/node/vite/plugins/pluginDev.js +1 -1
  42. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +4 -4
  43. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
  44. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +1 -1
  45. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +1 -1
  46. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +1 -1
  47. package/dist/cjs/node/vite/plugins/pluginViteRPC.js +42 -0
  48. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +1 -1
  49. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +1 -0
  50. package/dist/cjs/node/vite/shared/loggerNotProd.js +10 -6
  51. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  52. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  53. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  54. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  55. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  56. package/dist/cjs/shared/RenderErrorPage.js +1 -1
  57. package/dist/cjs/shared/abort.js +1 -1
  58. package/dist/cjs/shared/createGlobalContextShared.js +28 -7
  59. package/dist/cjs/shared/createPageContextShared.js +1 -2
  60. package/dist/cjs/shared/determinePageIdOld.js +1 -1
  61. package/dist/cjs/shared/error-page.js +3 -3
  62. package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
  63. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
  64. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  65. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  66. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
  67. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
  68. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  69. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  70. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
  71. package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  72. package/dist/cjs/shared/getProxyForPublicUsage.js +3 -3
  73. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
  74. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
  75. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  76. package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
  77. package/dist/cjs/shared/route/abort.js +1 -1
  78. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  79. package/dist/cjs/shared/route/execHookGuard.js +1 -1
  80. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
  81. package/dist/cjs/shared/route/index.js +1 -1
  82. package/dist/cjs/shared/route/loadPageRoutes.js +10 -4
  83. package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
  84. package/dist/cjs/shared/route/resolveRouteString.js +1 -1
  85. package/dist/cjs/shared/route/routing.js +1 -1
  86. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  87. package/dist/cjs/utils/assertSetup.js +11 -8
  88. package/dist/cjs/utils/debug.js +1 -0
  89. package/dist/cjs/utils/debugGlob.js +1 -1
  90. package/dist/cjs/utils/getViteRPC.js +79 -0
  91. package/dist/cjs/utils/parseNpmPackage.js +1 -1
  92. package/dist/esm/__internal/index.d.ts +1 -1
  93. package/dist/esm/__internal/index.js +1 -1
  94. package/dist/esm/client/node.js +1 -1
  95. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
  96. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  97. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +10 -2
  98. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
  99. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +1 -1
  100. package/dist/esm/client/runtime-client-routing/index.js +1 -1
  101. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
  102. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
  103. package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
  104. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +3 -1
  105. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
  106. package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
  107. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
  108. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
  109. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +1 -1
  110. package/dist/esm/client/runtime-server-routing/index.js +1 -1
  111. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +5 -4
  112. package/dist/esm/client/shared/createGetGlobalContextClient.js +1 -2
  113. package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
  114. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
  115. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  116. package/dist/esm/node/api/prepareViteApiCall.js +1 -1
  117. package/dist/esm/node/cli/index.js +1 -1
  118. package/dist/esm/node/createPageRenderer.js +1 -1
  119. package/dist/esm/node/importBuild.js +1 -1
  120. package/dist/esm/node/prerender/context.js +1 -1
  121. package/dist/esm/node/prerender/index.js +1 -1
  122. package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
  123. package/dist/esm/node/prerender/runPrerender.d.ts +42 -133
  124. package/dist/esm/node/prerender/runPrerender.js +9 -13
  125. package/dist/esm/node/runtime/globalContext.d.ts +39 -59
  126. package/dist/esm/node/runtime/globalContext.js +112 -31
  127. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  128. package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  129. package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  130. package/dist/esm/node/runtime/html/serializeContext.d.ts +7 -1
  131. package/dist/esm/node/runtime/html/serializeContext.js +73 -15
  132. package/dist/esm/node/runtime/index-deprecated.js +1 -1
  133. package/dist/esm/node/runtime/index.js +1 -1
  134. package/dist/esm/node/runtime/page-files/setup.js +1 -1
  135. package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
  136. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -0
  137. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +9 -6
  138. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +12 -35
  139. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  140. package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  141. package/dist/esm/node/runtime/renderPage/getCacheControl.d.ts +5 -0
  142. package/dist/esm/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +8 -9
  143. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  144. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  145. package/dist/esm/node/runtime/renderPage/getPageAssets.js +16 -13
  146. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +8 -4
  147. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +36 -17
  148. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  149. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +24 -68
  150. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  151. package/dist/esm/node/runtime/renderPage.d.ts +13 -36
  152. package/dist/esm/node/runtime/renderPage.js +4 -6
  153. package/dist/esm/node/runtime/utils.d.ts +1 -0
  154. package/dist/esm/node/runtime/utils.js +1 -0
  155. package/dist/esm/node/vite/index.js +3 -1
  156. package/dist/esm/node/vite/onLoad.js +1 -1
  157. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +1 -1
  158. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  159. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +1 -1
  160. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
  161. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  162. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  163. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
  164. package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  165. package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
  166. package/dist/esm/node/vite/plugins/pluginCommon.js +9 -4
  167. package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
  168. package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
  169. package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
  170. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +1 -1
  171. package/dist/esm/node/vite/plugins/pluginViteRPC.d.ts +25 -0
  172. package/dist/esm/node/vite/plugins/pluginViteRPC.js +40 -0
  173. package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
  174. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +1 -0
  175. package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
  176. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  177. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  178. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  179. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  180. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  181. package/dist/esm/shared/RenderErrorPage.js +1 -1
  182. package/dist/esm/shared/abort.js +1 -1
  183. package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
  184. package/dist/esm/shared/createGlobalContextShared.js +28 -7
  185. package/dist/esm/shared/createPageContextShared.d.ts +2 -3
  186. package/dist/esm/shared/createPageContextShared.js +1 -2
  187. package/dist/esm/shared/determinePageIdOld.js +1 -1
  188. package/dist/esm/shared/error-page.js +3 -3
  189. package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
  190. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  191. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  192. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  193. package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
  194. package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
  195. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  196. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  197. package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
  198. package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  199. package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
  200. package/dist/esm/shared/hooks/getHook.js +1 -1
  201. package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
  202. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
  203. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  204. package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
  205. package/dist/esm/shared/route/abort.js +1 -1
  206. package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  207. package/dist/esm/shared/route/execHookGuard.js +1 -1
  208. package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
  209. package/dist/esm/shared/route/index.js +1 -1
  210. package/dist/esm/shared/route/loadPageRoutes.d.ts +5 -0
  211. package/dist/esm/shared/route/loadPageRoutes.js +10 -4
  212. package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
  213. package/dist/esm/shared/route/resolveRouteString.js +1 -1
  214. package/dist/esm/shared/route/routing.js +1 -1
  215. package/dist/esm/types/Config.d.ts +9 -1
  216. package/dist/esm/types/PageContext.d.ts +8 -2
  217. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  218. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  219. package/dist/esm/utils/assertSetup.js +11 -8
  220. package/dist/esm/utils/debug.d.ts +1 -1
  221. package/dist/esm/utils/debug.js +1 -0
  222. package/dist/esm/utils/debugGlob.js +1 -1
  223. package/dist/esm/utils/getViteRPC.d.ts +6 -0
  224. package/dist/esm/utils/getViteRPC.js +77 -0
  225. package/dist/esm/utils/parseNpmPackage.js +1 -1
  226. package/package.json +12 -6
  227. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
@@ -41,7 +41,7 @@ let restartVite = false;
41
41
  let vikeConfigHasBuildError = null;
42
42
  let isV1Design_ = null;
43
43
  let vikeConfigPromise = null;
44
- // TODO/v1-release: remove
44
+ // TO-DO/next-major-release: remove
45
45
  let vikeConfigSync = null;
46
46
  let vikeConfigCtx = null; // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
47
47
  let prerenderContext;
@@ -53,14 +53,14 @@ function reloadVikeConfig() {
53
53
  }
54
54
  async function getVikeConfigInternal(
55
55
  // I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
56
- // TO-DO: eventually rethink all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
56
+ // TO-DO/eventually: re-think all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
57
57
  doNotRestartViteOnError = false) {
58
58
  assert(vikeConfigCtx);
59
59
  const { userRootDir, isDev, vikeVitePluginOptions } = vikeConfigCtx;
60
60
  const vikeConfig = await getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
61
61
  return vikeConfig;
62
62
  }
63
- // TODO/v1-release: remove
63
+ // TO-DO/next-major-release: remove
64
64
  function getVikeConfigInternalSync() {
65
65
  assert(vikeConfigSync);
66
66
  return vikeConfigSync;
@@ -484,7 +484,7 @@ function sortConfigValueSources(configValueSources, locationIdPage) {
484
484
  return sortAfterInheritanceOrderPage(source1.plusFile, source2.plusFile, locationIdPage, configName);
485
485
  }
486
486
  })
487
- // TODO/next-major: remove
487
+ // TO-DO/next-major-release: remove
488
488
  // Interop with vike(options) in vite.config.js — make it least precedence.
489
489
  .sort(makeLast((source) => !source.plusFile));
490
490
  });
@@ -780,7 +780,7 @@ function assertMetaUsage(metaVal, metaConfigDefinedAt) {
780
780
  }
781
781
  configEnv = getConfigEnvValue(def.env, `${metaConfigDefinedAt} sets ${pc.cyan(`meta.${configName}.env`)} to`);
782
782
  // Overwrite deprecated value with valid value
783
- // TODO/v1-release: remove once support for the deprecated values is removed
783
+ // TO-DO/next-major-release: remove once support for the deprecated values is removed
784
784
  if (typeof def.env === 'string')
785
785
  def.env = configEnv;
786
786
  }
@@ -1026,7 +1026,7 @@ function determineIsErrorPage(routeFilesystem) {
1026
1026
  function getConfigEnvValue(val, errMsgIntro) {
1027
1027
  const errInvalidValue = `${errMsgIntro} an invalid value ${pc.cyan(JSON.stringify(val))}`;
1028
1028
  // Legacy outdated values
1029
- // TODO/v1-release: remove
1029
+ // TO-DO/next-major-release: remove
1030
1030
  if (typeof val === 'string') {
1031
1031
  const valConverted = (() => {
1032
1032
  if (val === 'client-only')
@@ -1,2 +1,2 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { RenderErrorPage } from './route/abort.js';
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: Move all universal imports (when using Client Routing) to:
1
+ // TO-DO/next-major-release: Move all universal imports (when using Client Routing) to:
2
2
  // import {
3
3
  // redirect,
4
4
  // render,
@@ -9,10 +9,10 @@ import type { GlobalContextServerInternal } from '../node/runtime/globalContext.
9
9
  import type { GlobalContextClientInternal } from '../client/runtime-client-routing/globalContext.js';
10
10
  import { type Hook } from './hooks/getHook.js';
11
11
  declare const getGlobalContextSyncErrMsg = "The global context isn't set yet, call getGlobalContextSync() later or use getGlobalContext() instead.";
12
- declare function createGlobalContextShared<GlobalContextAddendum extends object>(virtualFileExports: unknown, globalObject: {
12
+ declare function createGlobalContextShared<GlobalContextAdded extends Record<string, any>, GlobalContextAddedAsync extends Record<string, any>>(virtualFileExports: unknown, globalObject: {
13
13
  globalContext?: Record<string, unknown>;
14
14
  onCreateGlobalContextHooks?: Hook[];
15
- }, addGlobalContext?: (globalContext: GlobalContextBase) => Promise<GlobalContextAddendum>): Promise<{
15
+ }, addGlobalContext?: (globalContext: GlobalContextBase) => GlobalContextAdded, addGlobalContextTmp?: (globalContext: GlobalContextBase) => Promise<GlobalContextAdded>, addGlobalContextAsync?: (globalContext: GlobalContextBase) => Promise<GlobalContextAddedAsync>): Promise<{
16
16
  /**
17
17
  * Useful for distinguishing `globalContext` from other objects and narrowing down TypeScript unions.
18
18
  *
@@ -35,7 +35,7 @@ declare function createGlobalContextShared<GlobalContextAddendum extends object>
35
35
  pages: {
36
36
  [k: string]: import("./page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
37
37
  };
38
- } & Awaited<GlobalContextAddendum>>;
38
+ } & GlobalContextAdded & GlobalContextAddedAsync>;
39
39
  type GlobalContextBasePublic = Pick<GlobalContextBase, 'config' | 'pages' | 'isGlobalContext'>;
40
40
  type GlobalContextBase = ReturnType<typeof createGlobalContextBase>;
41
41
  declare function createGlobalContextBase(virtualFileExports: unknown): {
@@ -7,10 +7,34 @@ import { execHookGlobal } from './hooks/execHook.js';
7
7
  import { prepareGlobalContextForPublicUsage } from './prepareGlobalContextForPublicUsage.js';
8
8
  import { getHookFromPageConfigGlobalCumulative } from './hooks/getHook.js';
9
9
  const getGlobalContextSyncErrMsg = "The global context isn't set yet, call getGlobalContextSync() later or use getGlobalContext() instead.";
10
- async function createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext) {
10
+ async function createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext,
11
+ // TO-DO/next-major-release: we'll be able to remove addGlobalContextTmp after loadPageRoutes() is sync (it will be sync after we remove the old design)
12
+ addGlobalContextTmp, addGlobalContextAsync) {
11
13
  const globalContext = createGlobalContextBase(virtualFileExports);
12
- const globalContextAddendum = await addGlobalContext?.(globalContext);
13
- objectAssign(globalContext, globalContextAddendum);
14
+ let isNewGlobalContext;
15
+ if (!globalObject.globalContext) {
16
+ // We set globalObject.globalContext early and before any async operations, so that getGlobalContextSync() can be used early.
17
+ // - Required by vike-vercel
18
+ globalObject.globalContext = globalContext;
19
+ isNewGlobalContext = false;
20
+ }
21
+ else {
22
+ isNewGlobalContext = true;
23
+ }
24
+ if (addGlobalContext &&
25
+ // TODO/next-major-release: remove
26
+ globalContext._pageConfigs.length > 0) {
27
+ const globalContextAdded = addGlobalContext?.(globalContext);
28
+ objectAssign(globalContext, globalContextAdded);
29
+ }
30
+ else {
31
+ const globalContextAdded = await addGlobalContextTmp?.(globalContext);
32
+ objectAssign(globalContext, globalContextAdded);
33
+ }
34
+ {
35
+ const globalContextAddedAsync = await addGlobalContextAsync?.(globalContext);
36
+ objectAssign(globalContext, globalContextAddedAsync);
37
+ }
14
38
  const onCreateGlobalContextHooks = getHookFromPageConfigGlobalCumulative(globalContext._pageConfigGlobal, 'onCreateGlobalContext');
15
39
  let hooksCalled = false;
16
40
  if (!hooksAreEqual(globalObject.onCreateGlobalContextHooks ?? [], onCreateGlobalContextHooks)) {
@@ -18,10 +42,7 @@ async function createGlobalContextShared(virtualFileExports, globalObject, addGl
18
42
  await execHookGlobal('onCreateGlobalContext', globalContext._pageConfigGlobal, null, globalContext, prepareGlobalContextForPublicUsage);
19
43
  hooksCalled = true;
20
44
  }
21
- if (!globalObject.globalContext) {
22
- globalObject.globalContext = globalContext;
23
- }
24
- else {
45
+ if (isNewGlobalContext) {
25
46
  // Singleton: ensure all `globalContext` user-land references are preserved & updated.
26
47
  if (hooksCalled) {
27
48
  objectReplace(globalObject.globalContext, globalContext);
@@ -1,14 +1,13 @@
1
1
  export { createPageContextShared };
2
2
  export { createPageContextObject };
3
3
  import type { VikeConfigPublicGlobal } from './page-configs/resolveVikeConfigPublic.js';
4
- import type { PageConfigGlobalRuntime } from '../types/PageConfig.js';
5
4
  import { type PageContextPrepareMinimum } from './preparePageContextForPublicUsage.js';
6
- declare function createPageContextShared<T extends PageContextPrepareMinimum>(pageContextCreated: T, pageConfigGlobal: PageConfigGlobalRuntime, vikeConfigPublicGlobal: VikeConfigPublicGlobal): Promise<T & {
5
+ declare function createPageContextShared<T extends PageContextPrepareMinimum>(pageContextCreated: T, vikeConfigPublicGlobal: VikeConfigPublicGlobal): T & {
7
6
  config: import("../types/index.js").ConfigResolved;
8
7
  _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
9
8
  _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
10
9
  _from: import("./page-configs/resolveVikeConfigPublic.js").From;
11
- }>;
10
+ };
12
11
  declare function createPageContextObject(): {
13
12
  _isOriginalObject: true;
14
13
  isPageContext: true;
@@ -1,8 +1,7 @@
1
1
  export { createPageContextShared };
2
2
  export { createPageContextObject };
3
3
  import { changeEnumerable, objectAssign } from './utils.js';
4
- // TODO/now: make this and parents sync
5
- async function createPageContextShared(pageContextCreated, pageConfigGlobal, vikeConfigPublicGlobal) {
4
+ function createPageContextShared(pageContextCreated, vikeConfigPublicGlobal) {
6
5
  objectAssign(pageContextCreated, vikeConfigPublicGlobal);
7
6
  return pageContextCreated;
8
7
  }
@@ -1,6 +1,6 @@
1
1
  export { determinePageIdOld };
2
2
  import { slice, assert } from './utils.js';
3
- // TODO/v1-release: remove
3
+ // TO-DO/next-major-release: remove
4
4
  function determinePageIdOld(filePath) {
5
5
  const pageSuffix = '.page.';
6
6
  const pageId = slice(filePath.split(pageSuffix), 0, -1).join(pageSuffix);
@@ -1,7 +1,7 @@
1
1
  export { getErrorPageId };
2
2
  export { isErrorPageId };
3
3
  export { isErrorPage };
4
- // TODO/v1-release: consider loading this file only for Client Routing
4
+ // TO-DO/next-major-release: consider loading this file only for Client Routing
5
5
  import { assert, assertUsage, unique } from './utils.js';
6
6
  function getErrorPageId(pageFilesAll, pageConfigs) {
7
7
  if (pageConfigs.length > 0) {
@@ -11,7 +11,7 @@ function getErrorPageId(pageFilesAll, pageConfigs) {
11
11
  assertUsage(errorPageConfigs.length === 1, 'Only one error page can be defined');
12
12
  return errorPageConfigs[0].pageId;
13
13
  }
14
- // TODO/v1-release: remove
14
+ // TO-DO/next-major-release: remove
15
15
  const errorPageIds = unique(pageFilesAll.map(({ pageId }) => pageId).filter((pageId) => isErrorPageId(pageId, false)));
16
16
  assertUsage(errorPageIds.length <= 1, `Only one _error.page.js is allowed, but found several: ${errorPageIds.join(' ')}`);
17
17
  if (errorPageIds.length > 0) {
@@ -21,7 +21,7 @@ function getErrorPageId(pageFilesAll, pageConfigs) {
21
21
  }
22
22
  return null;
23
23
  }
24
- // TODO/v1-release: remove
24
+ // TO-DO/next-major-release: remove
25
25
  function isErrorPageId(pageId, _isV1Design) {
26
26
  assert(!pageId.includes('\\'));
27
27
  return pageId.includes('/_error');
@@ -38,7 +38,7 @@ function getUrlParsed(pageContext) {
38
38
  // Reproduction: https://github.com/vikejs/vike/discussions/1436#discussioncomment-8142023
39
39
  // Determine logical URL
40
40
  const assertUrlResolved = (src) => assert(typeof urlResolved === 'string',
41
- // TODO/eventually: remove debug logs, see:
41
+ // TO-DO/eventually: remove debug logs, see:
42
42
  // - https://github.com/vikejs/vike/issues/2138#issuecomment-2631713411
43
43
  // - https://github.com/vikejs/vike/commit/5c7810f3080ab62536950f26e019bb2a3a517082
44
44
  { src, urlResolved });
@@ -83,7 +83,7 @@ function urlPathnameGetter() {
83
83
  return urlPathname;
84
84
  }
85
85
  function urlGetter() {
86
- // TODO/v1-release: remove
86
+ // TO-DO/next-major-release: remove
87
87
  assertWarning(false, '`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)', { onlyOnce: true, showStackTrace: true });
88
88
  return urlPathnameGetter.call(this);
89
89
  }
@@ -105,7 +105,7 @@ function urlParsedGetter() {
105
105
  warnHashNotAvailable('hashOriginal');
106
106
  return urlParsed.hashOriginal;
107
107
  },
108
- // TODO/next-major-release: remove
108
+ // TO-DO/next-major-release: remove
109
109
  get hashString() {
110
110
  assertWarning(false, 'pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal', {
111
111
  onlyOnce: true,
@@ -114,7 +114,7 @@ function urlParsedGetter() {
114
114
  warnHashNotAvailable('hashString');
115
115
  return urlParsed.hashOriginal;
116
116
  },
117
- // TODO/next-major-release: remove
117
+ // TO-DO/next-major-release: remove
118
118
  get searchString() {
119
119
  assertWarning(false, 'pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal', { onlyOnce: true, showStackTrace: true });
120
120
  return urlParsed.searchOriginal;
@@ -9,7 +9,7 @@ function analyzeClientSide(pageConfig, pageFilesAll, pageId) {
9
9
  return { isClientRuntimeLoaded, isClientRouting };
10
10
  }
11
11
  else {
12
- // TODO/v1-release: remove
12
+ // TO-DO/next-major-release: remove
13
13
  // V0.4 design
14
14
  const { isHtmlOnly, isClientRouting } = analyzePageClientSide(pageFilesAll, pageId);
15
15
  return { isClientRuntimeLoaded: !isHtmlOnly, isClientRouting };
@@ -1,7 +1,7 @@
1
1
  export { analyzeExports };
2
2
  import { getExportNames } from './getExportNames.js';
3
3
  import { assertUsage } from '../../utils.js';
4
- // TODO/v1-release: remove
4
+ // TO-DO/next-major-release: remove
5
5
  function analyzeExports({ pageFilesClientSide, pageFilesServerSide, pageId, }) {
6
6
  return { isHtmlOnly: isHtmlOnly(), isClientRouting: isClientRouting() };
7
7
  function isHtmlOnly() {
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { determineClientEntry };
3
3
  export { getVikeClientEntry };
4
4
  function determineClientEntry({ pageFilesClientSide, pageFilesServerSide, isHtmlOnly, isClientRouting, }) {
@@ -6,7 +6,7 @@ import { getPageFilesClientSide } from './getAllPageIdFiles.js';
6
6
  import { getPageFilesServerSide } from './getAllPageIdFiles.js';
7
7
  import { assert } from '../utils.js';
8
8
  import { getExportNames } from './analyzePageClientSide/getExportNames.js';
9
- // TODO/v1-release: remove analyzePageClientSide(), use analyzeClientSide() instead
9
+ // TO-DO/next-major-release: remove analyzePageClientSide(), use analyzeClientSide() instead
10
10
  function analyzePageClientSide(pageFilesAll, pageId) {
11
11
  let pageFilesClientSide = getPageFilesClientSide(pageFilesAll, pageId);
12
12
  const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
@@ -24,7 +24,7 @@ function analyzePageClientSide(pageFilesAll, pageId) {
24
24
  });
25
25
  return { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide };
26
26
  }
27
- // TODO:v1-release: remove
27
+ // TO-DO/next-major-release: remove
28
28
  async function analyzePageClientSideInit(pageFilesAll, pageId, { sharedPageFilesAlreadyLoaded }) {
29
29
  const pageFilesClientSide = getPageFilesClientSide(pageFilesAll, pageId);
30
30
  await Promise.all(pageFilesClientSide.map(async (p) => {
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this
1
+ // TO-DO/next-major-release: remove this
2
2
  export { assertDefaultExports };
3
3
  export { assertExportValues };
4
4
  export { forbiddenDefaultExports };
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { fileTypes };
3
3
  export { isValidFileType };
4
4
  export { determineFileType };
@@ -1,4 +1,4 @@
1
- // TODO:v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export { getPageFilesClientSide };
3
3
  export { getPageFilesServerSide };
4
4
  import { assert, assertUsage, isNotNullish } from '../utils.js';
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { getPageFileObject };
3
3
  import { determinePageIdOld } from '../determinePageIdOld.js';
4
4
  import { isErrorPageId } from '../error-page.js';
@@ -1,5 +1,5 @@
1
1
  export { parseVirtualFileExports };
2
- // TODO/v1-release: remove old design code, and remove all assertions.
2
+ // TO-DO/next-major-release: remove old design code, and remove all assertions.
3
3
  import { assert, hasProp, isCallable, isObject, cast, isArray } from '../utils.js';
4
4
  import { assertExportValues } from './assert_exports_old_design.js';
5
5
  import { getPageFileObject } from './getPageFileObject.js';
@@ -45,7 +45,7 @@ function onInternalProp(propStr, objName) {
45
45
  // - If Rolldown Vite + Rolldowns always transpiles node_modules/ then we can simply use import.meta.env.SSR
46
46
  if (isBrowser())
47
47
  return;
48
- // TODO/now-proxy remove this and only warn on built-in access instead
48
+ // TO-DO/soon/proxy: remove this and only warn on built-in access instead
49
49
  if (propStr === '_configFromHook')
50
50
  return;
51
51
  if (propStr.startsWith('_')) {
@@ -4,7 +4,7 @@ export { getHookFromPageConfig };
4
4
  export { getHookFromPageConfigGlobal };
5
5
  export { getHookFromPageConfigGlobalCumulative };
6
6
  export { getHook_setIsPrerenderering };
7
- // TODO/v1-release: remove
7
+ // TO-DO/next-major-release: remove
8
8
  // We export for old V0.4 design which doesn't support config.hooksTimeout
9
9
  export { getHookTimeoutDefault };
10
10
  import { getGlobalObject } from '../../utils/getGlobalObject.js';
@@ -33,12 +33,13 @@ function getDefinedAtString(definedAtData, configName) {
33
33
  if (definedAt.definedBy)
34
34
  return getDefinedByString(definedAt, configName);
35
35
  const { filePathToShowToUser, fileExportPathToShowToUser } = definedAt;
36
- let s = filePathToShowToUser;
37
36
  const exportPath = getExportPath(fileExportPathToShowToUser, configName);
38
37
  if (exportPath) {
39
- s = `${s} > ${pc.cyan(exportPath)}`;
38
+ return `${filePathToShowToUser} > ${pc.cyan(exportPath)}`;
39
+ }
40
+ else {
41
+ return filePathToShowToUser;
40
42
  }
41
- return s;
42
43
  })
43
44
  .join(' / ');
44
45
  return definedAtString;
@@ -1,5 +1,5 @@
1
- // TODO/now-same-api: use public API internally?
2
- // TODO/now-flat-pageContext: rename definedAt => definedBy
1
+ // TO-DO/soon/same-api: use public API internally?
2
+ // TO-DO/soon/flat-pageContext: rename definedAt => definedBy
3
3
  export { resolveVikeConfigPublicGlobal };
4
4
  export { resolveVikeConfigPublicPageEager };
5
5
  export { resolveVikeConfigPublicPageLazy };
@@ -47,10 +47,10 @@ function resolveVikeConfigPublicPageLazy(pageFiles, // V0.4 design
47
47
  pageConfig, // V1 design
48
48
  pageConfigGlobal) {
49
49
  const config = {};
50
- const configEntries = {}; // TODO/v1-release: remove
51
- const exportsAll = {}; // TODO/v1-release: remove
50
+ const configEntries = {}; // TO-DO/next-major-release: remove
51
+ const exportsAll = {}; // TO-DO/next-major-release: remove
52
52
  // V0.4 design
53
- // TODO/v1-release: remove
53
+ // TO-DO/next-major-release: remove
54
54
  pageFiles.forEach((pageFile) => {
55
55
  const exportValues = getExportValues(pageFile);
56
56
  exportValues.forEach(({ exportName, exportValue, isFromDefaultExport }) => {
@@ -60,7 +60,7 @@ pageConfigGlobal) {
60
60
  exportValue,
61
61
  exportSource: `${pageFile.filePath} > ${isFromDefaultExport ? `\`export default { ${exportName} }\`` : `\`export { ${exportName} }\``}`,
62
62
  filePath: pageFile.filePath,
63
- _filePath: pageFile.filePath, // TODO/next-major-release: remove
63
+ _filePath: pageFile.filePath, // TO-DO/next-major-release: remove
64
64
  _fileType: pageFile.fileType,
65
65
  _isFromDefaultExport: isFromDefaultExport,
66
66
  });
@@ -105,18 +105,18 @@ pageConfigGlobal) {
105
105
  });
106
106
  assert(!('default' in exports));
107
107
  assert(!('default' in exportsAll));
108
- const pageContextExports = {
108
+ const configPublicPageLazy = {
109
109
  config: config,
110
110
  from,
111
111
  source,
112
112
  sources,
113
- // TODO/now-flat-pageContext: deprecate every prop below
113
+ // TO-DO/soon/flat-pageContext: deprecate every prop below
114
114
  configEntries,
115
115
  exports,
116
116
  exportsAll,
117
117
  };
118
- // TODO/v1-release: remove
119
- objectDefineProperty(pageContextExports, 'pageExports', {
118
+ // TO-DO/next-major-release: remove
119
+ objectDefineProperty(configPublicPageLazy, 'pageExports', {
120
120
  get: () => {
121
121
  // We only show the warning in Node.js because when using Client Routing Vue integration uses `Object.assign(pageContextReactive, pageContext)` which will wrongully trigger the warning. There is no cross-browser way to catch whether the property accessor was initiated by an `Object.assign()` call.
122
122
  if (!isBrowser()) {
@@ -130,7 +130,7 @@ pageConfigGlobal) {
130
130
  enumerable: false,
131
131
  configurable: true,
132
132
  });
133
- return pageContextExports;
133
+ return configPublicPageLazy;
134
134
  }
135
135
  // V1 design
136
136
  function resolveVikeConfigPublic_V1Design(pageConfig) {
@@ -158,7 +158,7 @@ function resolveVikeConfigPublic_V1Design(pageConfig) {
158
158
  configDefinedAt,
159
159
  configDefinedByFile: configValueFilePathToShowToUser,
160
160
  });
161
- // TODO/v1-release: remove
161
+ // TO-DO/next-major-release: remove
162
162
  const exportName = configName;
163
163
  exportsAll[exportName] = exportsAll[exportName] ?? [];
164
164
  exportsAll[exportName].push({
@@ -173,7 +173,7 @@ function logJsonSerializeError(err, configName, definedAtData) {
173
173
  //*/
174
174
  const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(definedAtData);
175
175
  assert(configValueFilePathToShowToUser);
176
- assertUsage(false, `${pc.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined over a so-called "pointer import", see https://vike.dev/config#pointer-imports`);
176
+ assertUsage(false, `${pc.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined using a separate file ${pc.bold(`+${configName}.js`)}, see https://vike.dev/error/runtime-in-config`);
177
177
  }
178
178
  function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
179
179
  const fromComputed = Object.entries(pageConfig.configValuesComputed ?? {}).map(([configName, valueInfo]) => {
@@ -9,7 +9,7 @@ function preparePageContextForPublicUsage(pageContext) {
9
9
  assert(!pageContext.globalContext); // pageContext.globalContext should only be available to users — Vike itself should use pageContext._globalContext instead
10
10
  assert(pageContext._isOriginalObject); // ensure we preserve the original object reference
11
11
  addIs404ToPageProps(pageContext);
12
- // TODO/next-major-release: remove
12
+ // TO-DO/next-major-release: remove
13
13
  if (!('_pageId' in pageContext)) {
14
14
  Object.defineProperty(pageContext, '_pageId', {
15
15
  get() {
@@ -27,7 +27,7 @@ function preparePageContextForPublicUsage(pageContext) {
27
27
  const globalContextPublic = prepareGlobalContextForPublicUsage(pageContext._globalContext);
28
28
  const pageContextPublic = getProxyForPublicUsage(pageContext, 'pageContext',
29
29
  // We must skip it in the client-side because of the reactivity mechanism of UI frameworks like Solid.
30
- // - TODO/now-proxy: double check whether that's true
30
+ // - TO-DO/soon/proxy: double check whether that's true
31
31
  true, (prop) => {
32
32
  if (prop === 'globalContext') {
33
33
  return globalContextPublic;
@@ -65,11 +65,11 @@ function assertPropertyGetters(pageContext) {
65
65
  ;
66
66
  [
67
67
  'urlPathname',
68
- // TODO/v1-release: remove
68
+ // TO-DO/next-major-release: remove
69
69
  'urlParsed',
70
- // TODO/v1-release: remove
70
+ // TO-DO/next-major-release: remove
71
71
  'url',
72
- // TODO/v1-release: remove
72
+ // TO-DO/next-major-release: remove
73
73
  'pageExports',
74
74
  ].forEach((prop) => {
75
75
  if (pageContext.prop)
@@ -82,7 +82,7 @@ function AbortRender(pageContextAbort) {
82
82
  checkType(err);
83
83
  return err;
84
84
  }
85
- // TODO/v1-release: remove
85
+ // TO-DO/next-major-release: remove
86
86
  /**
87
87
  * @deprecated Use `throw render()` or `throw redirect()` instead, see https://vike.dev/render'
88
88
  */
@@ -1,7 +1,7 @@
1
1
  // Unit tests at ./deduceRouteStringFromFilesystemPath.spec.ts
2
2
  import { assert, higherFirst, slice } from './utils.js';
3
3
  export { deduceRouteStringFromFilesystemPath };
4
- // TODO/next-major-update: remove this and whole filesystemRoot mechanism
4
+ // TO-DO/next-major-release: remove this and whole filesystemRoot mechanism
5
5
  function deduceRouteStringFromFilesystemPath(pageId, filesystemRoots) {
6
6
  // Handle Filesystem Routing Root
7
7
  const filesystemRootsMatch = filesystemRoots
@@ -6,7 +6,7 @@ const errIntro = 'The guard() hook defined by';
6
6
  async function execHookGuard(pageContext, prepareForPublicUsage) {
7
7
  let hook;
8
8
  if (pageContext._globalContext._pageFilesAll.length > 0) {
9
- // TODO/v1-release: remove
9
+ // TO-DO/next-major-release: remove
10
10
  // V0.4 design
11
11
  assert(pageContext._globalContext._pageConfigs.length === 0);
12
12
  hook = findPageGuard(pageContext.pageId, pageContext._globalContext._pageFilesAll);
@@ -36,7 +36,7 @@ async function execHookOnBeforeRoute(pageContext) {
36
36
  async function getPageContextFromHook(onBeforeRouteHook, pageContext) {
37
37
  let { hookReturn } = execHookDirectSync(onBeforeRouteHook, pageContext, preparePageContextForPublicUsage);
38
38
  assertSyncRouting(hookReturn, `The onBeforeRoute() hook ${onBeforeRouteHook.hookFilePath}`);
39
- // TODO/v1-release: make execHookOnBeforeRoute() and route() sync
39
+ // TO-DO/next-major-release: make execHookOnBeforeRoute() and route() sync
40
40
  hookReturn = await hookReturn;
41
41
  const errPrefix = `The onBeforeRoute() hook defined by ${onBeforeRouteHook.hookFilePath}`;
42
42
  assertUsage(hookReturn === null ||
@@ -12,7 +12,7 @@ import { resolveRouteFunction } from './resolveRouteFunction.js';
12
12
  import { execHookOnBeforeRoute } from './execHookOnBeforeRoute.js';
13
13
  import { debug } from './debug.js';
14
14
  import pc from '@brillout/picocolors';
15
- // TODO/next-major-release: make it sync
15
+ // TO-DO/next-major-release: make it sync
16
16
  async function route(pageContext, skipOnBeforeRouteHook) {
17
17
  debug('Pages routes:', pageContext._globalContext._pageRoutes);
18
18
  const pageContextFromRoute = {};
@@ -1,4 +1,5 @@
1
1
  export { loadPageRoutes };
2
+ export { loadPageRoutesSync };
2
3
  export type { PageRoutes };
3
4
  export type { RouteType };
4
5
  import type { PageFile } from '../getPageFiles.js';
@@ -28,3 +29,7 @@ declare function loadPageRoutes(pageFilesAll: PageFile[], pageConfigs: PageConfi
28
29
  pageRoutes: PageRoutes;
29
30
  onBeforeRouteHook: null | Hook;
30
31
  }>;
32
+ declare function loadPageRoutesSync(pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[], pageConfigGlobal: PageConfigGlobalRuntime, allPageIds: string[]): {
33
+ pageRoutes: PageRoutes;
34
+ onBeforeRouteHook: null | Hook;
35
+ };
@@ -1,4 +1,5 @@
1
1
  export { loadPageRoutes };
2
+ export { loadPageRoutesSync };
2
3
  import { isErrorPageId } from '../error-page.js';
3
4
  import { assert, assertUsage, hasProp, slice } from './utils.js';
4
5
  import { deduceRouteStringFromFilesystemPath } from './deduceRouteStringFromFilesystemPath.js';
@@ -10,8 +11,13 @@ import { getHookFromPageConfigGlobal, getHookTimeoutDefault } from '../hooks/get
10
11
  async function loadPageRoutes(
11
12
  // Remove all arguments and use GlobalContextServerInternal instead?
12
13
  pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds) {
13
- // TODO/next-major: remove & make this function sync
14
+ // TO-DO/next-major-release: remove this line, remove this function, rename loadPageRoutesSync() to loadPageRoutes()
14
15
  await Promise.all(pageFilesAll.filter((p) => p.fileType === '.page.route').map((p) => p.loadFile?.()));
16
+ return loadPageRoutesSync(pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds);
17
+ }
18
+ function loadPageRoutesSync(
19
+ // Remove all arguments and use GlobalContextServerInternal instead?
20
+ pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds) {
15
21
  const { onBeforeRouteHook, filesystemRoots } = getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal);
16
22
  const pageRoutes = getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds);
17
23
  return { pageRoutes, onBeforeRouteHook };
@@ -49,7 +55,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
49
55
  const { filePathToShowToUser } = definedAtData;
50
56
  assert(filePathToShowToUser);
51
57
  assert(isCallable(route));
52
- // TODO/next-major: remove
58
+ // TO-DO/next-major-release: remove
53
59
  if (getConfigValueRuntime(pageConfig, 'iKnowThePerformanceRisksOfAsyncRouteFunctions', 'boolean'))
54
60
  warnDeprecatedAllowKey();
55
61
  pageRoute = {
@@ -82,7 +88,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
82
88
  });
83
89
  }
84
90
  // Old design
85
- // TODO/v1-release: remove
91
+ // TO-DO/next-major-release: remove
86
92
  if (pageConfigs.length === 0) {
87
93
  assert(filesystemRoots);
88
94
  const comesFromV1PageConfig = false;
@@ -149,7 +155,7 @@ function getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal) {
149
155
  return { onBeforeRouteHook: hook, filesystemRoots: null };
150
156
  }
151
157
  // Old design
152
- // TODO/v1-release: remove
158
+ // TO-DO/next-major-release: remove
153
159
  let onBeforeRouteHook = null;
154
160
  const filesystemRoots = [];
155
161
  pageFilesAll
@@ -13,7 +13,7 @@ async function resolveRouteFunction(routeFunction, pageContext, routeFunctionFil
13
13
  hookName: 'route',
14
14
  }, pageContext, preparePageContextForPublicUsage);
15
15
  assertSyncRouting(result, `The Route Function ${routeFunctionFilePath}`);
16
- // TODO/v1-release: make resolveRouteFunction() and route() sync
16
+ // TO-DO/next-major-release: make resolveRouteFunction() and route() sync
17
17
  //* We disallow asynchronous routing, because we need to check whether a link is a Vike link in a synchronous fashion before calling ev.preventDefault() in the 'click' event listener
18
18
  result = await result;
19
19
  //*/
@@ -49,11 +49,11 @@ async function resolveRouteFunction(routeFunction, pageContext, routeFunctionFil
49
49
  routeParams,
50
50
  };
51
51
  }
52
- // TODO/v1-release: remove, and make routing synchronous (enabling Vike to synchronously check whether a link is a Vike link before even calling ev.preventDefault())
52
+ // TO-DO/next-major-release: remove, and make routing synchronous (enabling Vike to synchronously check whether a link is a Vike link before even calling ev.preventDefault())
53
53
  function assertSyncRouting(res, errPrefix) {
54
54
  assertWarning(!isPromise(res), `${errPrefix} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`, { onlyOnce: true });
55
55
  }
56
- // TODO/v1-release: remove
56
+ // TO-DO/next-major-release: remove
57
57
  function warnDeprecatedAllowKey() {
58
58
  const allowKey = pc.cyan('iKnowThePerformanceRisksOfAsyncRouteFunctions');
59
59
  assertWarning(false, `${allowKey} is deprecated and will be removed in the next major release`, { onlyOnce: true });
@@ -8,7 +8,7 @@ import { assertWarning, isBrowser, escapeRegex } from '../utils.js';
8
8
  import { assert, assertUsage } from './utils.js';
9
9
  import pc from '@brillout/picocolors';
10
10
  const PARAM_TOKEN_NEW = '@';
11
- // TODO/v1-release: remove
11
+ // TO-DO/next-major-release: remove
12
12
  const PARAM_TOKEN_OLD = ':';
13
13
  function assertRouteString(routeString, errPrefix = 'Invalid') {
14
14
  let errPrefix2 = `${errPrefix} Route String ${highlight(routeString)}`;