vike 0.4.218 → 0.4.220-commit-a9f46b8

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 (211) hide show
  1. package/dist/cjs/__internal/index.js +11 -11
  2. package/dist/cjs/node/api/build.js +22 -48
  3. package/dist/cjs/node/api/context.js +8 -6
  4. package/dist/cjs/node/api/index.js +17 -7
  5. package/dist/cjs/node/api/prepareViteApiCall.js +40 -13
  6. package/dist/cjs/node/cli/context.js +16 -0
  7. package/dist/cjs/node/cli/entry.js +21 -7
  8. package/dist/cjs/node/cli/utils.js +1 -0
  9. package/dist/cjs/node/plugin/index.js +5 -5
  10. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +32 -20
  11. package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -10
  12. package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
  13. package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  14. package/dist/cjs/node/plugin/plugins/commonConfig.js +41 -4
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -23
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +171 -68
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
  19. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
  20. package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  21. package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
  22. package/dist/cjs/node/prerender/context.js +24 -0
  23. package/dist/cjs/node/prerender/runPrerender.js +146 -96
  24. package/dist/cjs/node/prerender/utils.js +2 -0
  25. package/dist/cjs/node/runtime/globalContext.js +109 -55
  26. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  27. package/dist/cjs/node/runtime/index-common.js +0 -15
  28. package/dist/cjs/node/runtime/onLoad.js +17 -3
  29. package/dist/cjs/node/runtime/page-files/setup.js +2 -4
  30. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
  31. package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
  32. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  33. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  34. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
  35. package/dist/cjs/node/runtime/renderPage.js +21 -22
  36. package/dist/cjs/node/runtime/utils.js +2 -0
  37. package/dist/cjs/node/runtime-dev/index.js +17 -7
  38. package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
  39. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
  40. package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
  41. package/dist/cjs/shared/getPageFiles.js +3 -9
  42. package/dist/cjs/shared/hooks/getHook.js +3 -3
  43. package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
  44. package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
  45. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +80 -55
  46. package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
  47. package/dist/cjs/shared/utils.js +1 -0
  48. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  49. package/dist/cjs/utils/assert.js +4 -3
  50. package/dist/cjs/utils/assertSetup.js +47 -16
  51. package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
  52. package/dist/cjs/utils/debug.js +11 -6
  53. package/dist/cjs/utils/getGlobalObject.js +1 -2
  54. package/dist/cjs/utils/isDev.js +2 -0
  55. package/dist/cjs/utils/makePublicCopy.js +32 -0
  56. package/dist/cjs/utils/objectReplace.js +9 -0
  57. package/dist/esm/__internal/index.d.ts +3 -5
  58. package/dist/esm/__internal/index.js +6 -8
  59. package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -1
  60. package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
  61. package/dist/esm/client/client-routing-runtime/entry.js +0 -1
  62. package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
  63. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
  64. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
  65. package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
  66. package/dist/esm/client/client-routing-runtime/history.js +23 -18
  67. package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
  68. package/dist/esm/client/client-routing-runtime/index.js +0 -1
  69. package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
  70. package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +3 -4
  71. package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
  72. package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -62
  73. package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
  74. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
  75. package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
  76. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
  77. package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
  78. package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
  79. package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
  80. package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
  81. package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
  82. package/dist/esm/client/client-routing-runtime/utils.js +1 -0
  83. package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
  84. package/dist/esm/client/server-routing-runtime/entry.js +0 -1
  85. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
  86. package/dist/esm/client/server-routing-runtime/getPageContext.js +5 -2
  87. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
  88. package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
  89. package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
  90. package/dist/esm/client/shared/normalizeClientSideUrl.js +2 -3
  91. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
  92. package/dist/esm/node/api/build.d.ts +1 -6
  93. package/dist/esm/node/api/build.js +20 -26
  94. package/dist/esm/node/api/context.d.ts +4 -2
  95. package/dist/esm/node/api/context.js +8 -7
  96. package/dist/esm/node/api/prepareViteApiCall.d.ts +0 -1
  97. package/dist/esm/node/api/prepareViteApiCall.js +26 -9
  98. package/dist/esm/node/cli/context.d.ts +5 -0
  99. package/dist/esm/node/cli/context.js +14 -0
  100. package/dist/esm/node/cli/entry.js +4 -0
  101. package/dist/esm/node/cli/parseCli.d.ts +3 -1
  102. package/dist/esm/node/cli/utils.d.ts +1 -0
  103. package/dist/esm/node/cli/utils.js +1 -0
  104. package/dist/esm/node/plugin/index.d.ts +1 -1
  105. package/dist/esm/node/plugin/index.js +5 -5
  106. package/dist/esm/node/plugin/plugins/autoFullBuild.js +32 -20
  107. package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -1
  108. package/dist/esm/node/plugin/plugins/baseUrls.js +4 -11
  109. package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
  110. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
  111. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
  112. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  113. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +10 -1
  114. package/dist/esm/node/plugin/plugins/commonConfig.js +42 -5
  115. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
  116. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
  117. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -22
  118. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +96 -1
  119. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +167 -64
  120. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  121. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
  122. package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
  123. package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
  124. package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  125. package/dist/esm/node/prerender/context.d.ts +9 -0
  126. package/dist/esm/node/prerender/context.js +22 -0
  127. package/dist/esm/node/prerender/runPrerender.d.ts +42 -2
  128. package/dist/esm/node/prerender/runPrerender.js +130 -90
  129. package/dist/esm/node/prerender/utils.d.ts +2 -0
  130. package/dist/esm/node/prerender/utils.js +2 -0
  131. package/dist/esm/node/runtime/globalContext.d.ts +23 -7
  132. package/dist/esm/node/runtime/globalContext.js +109 -55
  133. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  134. package/dist/esm/node/runtime/index-common.d.ts +0 -1
  135. package/dist/esm/node/runtime/index-common.js +0 -15
  136. package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
  137. package/dist/esm/node/runtime/onLoad.js +16 -2
  138. package/dist/esm/node/runtime/page-files/setup.js +3 -3
  139. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  140. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
  141. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
  142. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
  143. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
  144. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
  145. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +31 -46
  146. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  147. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
  148. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
  149. package/dist/esm/node/runtime/renderPage.js +22 -23
  150. package/dist/esm/node/runtime/utils.d.ts +2 -0
  151. package/dist/esm/node/runtime/utils.js +2 -0
  152. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
  153. package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
  154. package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
  155. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  156. package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +3 -1
  157. package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
  158. package/dist/esm/shared/getPageFiles.d.ts +2 -5
  159. package/dist/esm/shared/getPageFiles.js +1 -4
  160. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  161. package/dist/esm/shared/hooks/getHook.js +1 -1
  162. package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
  163. package/dist/esm/shared/page-configs/Config.d.ts +20 -2
  164. package/dist/esm/shared/page-configs/PageConfig.d.ts +13 -6
  165. package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +26 -12
  166. package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
  167. package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
  168. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +26 -6
  169. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +80 -55
  170. package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
  171. package/dist/esm/shared/route/loadPageRoutes.js +1 -1
  172. package/dist/esm/shared/types.d.ts +1 -1
  173. package/dist/esm/shared/utils.d.ts +1 -0
  174. package/dist/esm/shared/utils.js +1 -0
  175. package/dist/esm/types/index.d.ts +1 -1
  176. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  177. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  178. package/dist/esm/utils/assert.js +4 -3
  179. package/dist/esm/utils/assertSetup.js +47 -16
  180. package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
  181. package/dist/esm/utils/catchInfiniteLoop.js +32 -0
  182. package/dist/esm/utils/debug.d.ts +1 -1
  183. package/dist/esm/utils/debug.js +11 -6
  184. package/dist/esm/utils/getGlobalObject.js +1 -2
  185. package/dist/esm/utils/isDev.js +2 -0
  186. package/dist/esm/utils/makePublicCopy.d.ts +3 -0
  187. package/dist/esm/utils/makePublicCopy.js +30 -0
  188. package/dist/esm/utils/objectReplace.d.ts +1 -0
  189. package/dist/esm/utils/objectReplace.js +6 -0
  190. package/dist/esm/utils/projectInfo.d.ts +1 -1
  191. package/package.json +4 -13
  192. package/__internal/loadImportBuild.js +0 -3
  193. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
  194. package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
  195. package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
  196. package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
  197. package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
  198. package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
  199. package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
  200. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
  201. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
  202. package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
  203. package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
  204. package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
  205. package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
  206. package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
  207. /package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  208. /package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
  209. /package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  210. /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
  211. /package/dist/esm/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -30,7 +40,6 @@ exports.runPrerenderFromAPI = runPrerenderFromAPI;
30
40
  exports.runPrerenderFromCLIPrerenderCommand = runPrerenderFromCLIPrerenderCommand;
31
41
  exports.runPrerenderFromAutoRun = runPrerenderFromAutoRun;
32
42
  exports.runPrerender_forceExit = runPrerender_forceExit;
33
- require("../runtime/page-files/setup.js");
34
43
  const path_1 = __importDefault(require("path"));
35
44
  const index_js_1 = require("../../shared/route/index.js");
36
45
  const utils_js_1 = require("./utils.js");
@@ -43,7 +52,7 @@ const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
43
52
  const getPageContextRequestUrl_js_1 = require("../../shared/getPageContextRequestUrl.js");
44
53
  const resolveRouteString_js_1 = require("../../shared/route/resolveRouteString.js");
45
54
  const helpers_js_1 = require("../../shared/page-configs/helpers.js");
46
- const getConfigValue_js_1 = require("../../shared/page-configs/getConfigValue.js");
55
+ const getConfigValueRuntime_js_1 = require("../../shared/page-configs/getConfigValueRuntime.js");
47
56
  const loadConfigValues_js_1 = require("../../shared/page-configs/loadConfigValues.js");
48
57
  const error_page_js_1 = require("../../shared/error-page.js");
49
58
  const getPageContextUrlComputed_js_1 = require("../../shared/getPageContextUrlComputed.js");
@@ -56,6 +65,7 @@ const logErrorHint_js_1 = require("../runtime/renderPage/logErrorHint.js");
56
65
  const executeHook_js_1 = require("../../shared/hooks/executeHook.js");
57
66
  const getConfigValueBuildTime_js_1 = require("../../shared/page-configs/getConfigValueBuildTime.js");
58
67
  const prepareViteApiCall_js_1 = require("../api/prepareViteApiCall.js");
68
+ const context_js_1 = require("./context.js");
59
69
  async function runPrerenderFromAPI(options = {}) {
60
70
  return await runPrerender(options, 'prerender()');
61
71
  // - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
@@ -74,19 +84,21 @@ async function runPrerenderFromCLIPrerenderCommand() {
74
84
  }
75
85
  runPrerender_forceExit();
76
86
  }
77
- async function runPrerenderFromAutoRun(viteConfig, forceExit) {
87
+ async function runPrerenderFromAutoRun(viteConfig) {
88
+ let prerenderContextPublic;
78
89
  try {
79
- await runPrerender({ viteConfig });
90
+ const ret = await runPrerender({ viteConfig });
91
+ prerenderContextPublic = ret.prerenderContextPublic;
80
92
  }
81
93
  catch (err) {
82
94
  console.error(err);
83
95
  (0, logErrorHint_js_1.logErrorHint)(err);
84
96
  process.exit(1);
85
97
  }
86
- if (forceExit)
87
- runPrerender_forceExit();
98
+ return { prerenderContextPublic };
88
99
  }
89
100
  async function runPrerender(options = {}, standaloneTrigger) {
101
+ (0, context_js_1.setContextIsPrerendering)();
90
102
  checkOutdatedOptions(options);
91
103
  (0, utils_js_1.onSetupPrerender)();
92
104
  (0, globalContext_js_1.setGlobalContext_isPrerendering)();
@@ -97,11 +109,11 @@ async function runPrerender(options = {}, standaloneTrigger) {
97
109
  }
98
110
  await disableReactStreaming();
99
111
  const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'build', 'production');
100
- assertLoadedConfig(viteConfig, options);
101
112
  const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(viteConfig);
102
113
  const { outDirClient } = (0, utils_js_1.getOutDirs)(viteConfig);
103
114
  const { root } = viteConfig;
104
115
  const prerenderConfig = vikeConfig.vikeConfigGlobal.prerender;
116
+ validatePrerenderConfig(prerenderConfig);
105
117
  if (!prerenderConfig) {
106
118
  (0, utils_js_1.assert)(standaloneTrigger);
107
119
  (0, utils_js_1.assertWarning)(prerenderConfig, `You're executing ${picocolors_1.default.cyan(standaloneTrigger)} but the config ${picocolors_1.default.cyan('prerender')} isn't set to true`, {
@@ -111,39 +123,40 @@ async function runPrerender(options = {}, standaloneTrigger) {
111
123
  const { partial = false, noExtraDir = false, parallel = true } = prerenderConfig || {};
112
124
  const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, os_1.cpus)().length : parallel);
113
125
  await (0, globalContext_js_1.initGlobalContext_runPrerender)();
114
- const renderContext = await (0, renderPageAlreadyRouted_js_1.getRenderContext)();
115
- renderContext.pageFilesAll.forEach(assertExportNames);
116
- const prerenderContext = {};
117
- (0, utils_js_1.objectAssign)(prerenderContext, {
118
- _urlHandler: null,
119
- _noExtraDir: noExtraDir ?? false,
126
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
127
+ globalContext.pageFilesAll.forEach(assertExportNames);
128
+ const prerenderContext = {
129
+ noExtraDir: noExtraDir ?? false,
120
130
  pageContexts: [],
121
- pageContextInit: options.pageContextInit ?? null
122
- });
131
+ pageContextInit: options.pageContextInit ?? null,
132
+ prerenderedPageContexts: {},
133
+ output: []
134
+ };
123
135
  const doNotPrerenderList = [];
124
- await collectDoNoPrerenderList(renderContext, vikeConfig.pageConfigs, doNotPrerenderList, concurrencyLimit);
125
- await callOnBeforePrerenderStartHooks(prerenderContext, renderContext, concurrencyLimit, doNotPrerenderList);
126
- await handlePagesWithStaticRoutes(prerenderContext, renderContext, doNotPrerenderList, concurrencyLimit);
127
- await callOnPrerenderStartHook(prerenderContext, renderContext);
128
- const prerenderedPageContexts = {};
136
+ await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, concurrencyLimit);
137
+ await callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimit, doNotPrerenderList);
138
+ await handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList, concurrencyLimit);
139
+ await callOnPrerenderStartHook(prerenderContext);
129
140
  let prerenderedCount = 0;
141
+ // Write files as soon as pages finish rendering (instead of writing all files at once only after all pages have rendered).
130
142
  const onComplete = async (htmlFile) => {
131
143
  prerenderedCount++;
132
144
  if (htmlFile.pageId) {
133
- prerenderedPageContexts[htmlFile.pageId] = htmlFile.pageContext;
145
+ prerenderContext.prerenderedPageContexts[htmlFile.pageId] = htmlFile.pageContext;
134
146
  }
135
- await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, logLevel);
147
+ await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, prerenderContext.output, logLevel);
136
148
  };
137
149
  await routeAndPrerender(prerenderContext, concurrencyLimit, onComplete);
138
- warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerenderList);
139
- await prerender404(prerenderedPageContexts, renderContext, prerenderContext, onComplete);
150
+ warnContradictoryNoPrerenderList(prerenderContext.prerenderedPageContexts, doNotPrerenderList);
151
+ await prerender404(prerenderContext, onComplete);
140
152
  if (logLevel === 'info') {
141
153
  console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
142
154
  }
143
- warnMissingPages(prerenderedPageContexts, doNotPrerenderList, renderContext, partial);
144
- return { viteConfig };
155
+ warnMissingPages(prerenderContext.prerenderedPageContexts, doNotPrerenderList, partial);
156
+ const prerenderContextPublic = makePublic(prerenderContext);
157
+ return { viteConfig, prerenderContextPublic };
145
158
  }
146
- async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerenderList, concurrencyLimit) {
159
+ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, concurrencyLimit) {
147
160
  // V1 design
148
161
  pageConfigs.forEach((pageConfig) => {
149
162
  const configName = 'prerender';
@@ -161,7 +174,8 @@ async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerend
161
174
  });
162
175
  // Old design
163
176
  // TODO/v1-release: remove
164
- await Promise.all(renderContext.pageFilesAll
177
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
178
+ await Promise.all(globalContext.pageFilesAll
165
179
  .filter((p) => {
166
180
  assertExportNames(p);
167
181
  if (!p.exportNames?.includes('doNotPrerender'))
@@ -173,8 +187,8 @@ async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerend
173
187
  (0, utils_js_1.assert)(p.loadFile);
174
188
  await p.loadFile();
175
189
  })));
176
- renderContext.allPageIds.forEach((pageId) => {
177
- const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(renderContext.pageFilesAll, pageId);
190
+ globalContext.allPageIds.forEach((pageId) => {
191
+ const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(globalContext.pageFilesAll, pageId);
178
192
  for (const p of pageFilesServerSide) {
179
193
  if (!p.exportNames?.includes('doNotPrerender'))
180
194
  continue;
@@ -203,10 +217,11 @@ function assertExportNames(pageFile) {
203
217
  const { exportNames, fileType } = pageFile;
204
218
  (0, utils_js_1.assert)(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
205
219
  }
206
- async function callOnBeforePrerenderStartHooks(prerenderContext, renderContext, concurrencyLimit, doNotPrerenderList) {
220
+ async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimit, doNotPrerenderList) {
207
221
  const onBeforePrerenderStartHooks = [];
222
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
208
223
  // V1 design
209
- await Promise.all(renderContext.pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
224
+ await Promise.all(globalContext.pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
210
225
  const hookName = 'onBeforePrerenderStart';
211
226
  const pageConfigLoaded = await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, false);
212
227
  const hook = (0, getHook_js_1.getHookFromPageConfig)(pageConfigLoaded, hookName);
@@ -222,7 +237,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, renderContext,
222
237
  });
223
238
  })));
224
239
  // 0.4 design
225
- await Promise.all(renderContext.pageFilesAll
240
+ await Promise.all(globalContext.pageFilesAll
226
241
  .filter((p) => {
227
242
  assertExportNames(p);
228
243
  if (!p.exportNames?.includes('prerender'))
@@ -263,7 +278,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, renderContext,
263
278
  (0, utils_js_1.assertUsage)(false, `URL ${picocolors_1.default.cyan(url)} provided ${providedTwice}. Make sure to provide the URL only once instead.`);
264
279
  }
265
280
  }
266
- const pageContextNew = createPageContext(url, renderContext, prerenderContext);
281
+ const pageContextNew = createPageContext(url, prerenderContext);
267
282
  (0, utils_js_1.objectAssign)(pageContextNew, {
268
283
  _providedByHook: {
269
284
  hookFilePath,
@@ -280,9 +295,10 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, renderContext,
280
295
  });
281
296
  })));
282
297
  }
283
- async function handlePagesWithStaticRoutes(prerenderContext, renderContext, doNotPrerenderList, concurrencyLimit) {
298
+ async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList, concurrencyLimit) {
284
299
  // Pre-render pages with a static route
285
- await Promise.all(renderContext.pageRoutes.map((pageRoute) => concurrencyLimit(async () => {
300
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
301
+ await Promise.all(globalContext.pageRoutes.map((pageRoute) => concurrencyLimit(async () => {
286
302
  const { pageId } = pageRoute;
287
303
  if (doNotPrerenderList.find((p) => p.pageId === pageId)) {
288
304
  return;
@@ -307,7 +323,7 @@ async function handlePagesWithStaticRoutes(prerenderContext, renderContext, doNo
307
323
  return;
308
324
  }
309
325
  const routeParams = {};
310
- const pageContext = createPageContext(urlOriginal, renderContext, prerenderContext);
326
+ const pageContext = createPageContext(urlOriginal, prerenderContext);
311
327
  (0, utils_js_1.objectAssign)(pageContext, {
312
328
  _providedByHook: null,
313
329
  routeParams,
@@ -325,11 +341,11 @@ async function handlePagesWithStaticRoutes(prerenderContext, renderContext, doNo
325
341
  prerenderContext.pageContexts.push(pageContext);
326
342
  })));
327
343
  }
328
- function createPageContext(urlOriginal, renderContext, prerenderContext) {
344
+ function createPageContext(urlOriginal, prerenderContext) {
329
345
  const pageContext = {
330
346
  _urlHandler: null,
331
347
  _urlRewrite: null,
332
- _noExtraDir: prerenderContext._noExtraDir,
348
+ _noExtraDir: prerenderContext.noExtraDir,
333
349
  _prerenderContext: prerenderContext
334
350
  };
335
351
  const pageContextInit = {
@@ -337,17 +353,18 @@ function createPageContext(urlOriginal, renderContext, prerenderContext) {
337
353
  };
338
354
  (0, utils_js_1.objectAssign)(pageContextInit, prerenderContext.pageContextInit);
339
355
  {
340
- const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, renderContext);
356
+ const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit);
341
357
  (0, utils_js_1.objectAssign)(pageContext, pageContextInitEnhanced);
342
358
  }
343
359
  return pageContext;
344
360
  }
345
- async function callOnPrerenderStartHook(prerenderContext, renderContext) {
361
+ async function callOnPrerenderStartHook(prerenderContext) {
362
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
346
363
  let onPrerenderStartHook;
347
364
  // V1 design
348
- if (renderContext.pageConfigs.length > 0) {
365
+ if (globalContext.pageConfigs.length > 0) {
349
366
  const hookName = 'onPrerenderStart';
350
- const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(renderContext.pageConfigGlobal, hookName);
367
+ const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(globalContext.pageConfigGlobal, hookName);
351
368
  if (hook) {
352
369
  (0, utils_js_1.assert)(hook.hookName === 'onPrerenderStart');
353
370
  onPrerenderStartHook = {
@@ -359,9 +376,9 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
359
376
  }
360
377
  // Old design
361
378
  // TODO/v1-release: remove
362
- if (renderContext.pageConfigs.length === 0) {
379
+ if (globalContext.pageConfigs.length === 0) {
363
380
  const hookTimeout = (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerender');
364
- const pageFilesWithOnBeforePrerenderHook = renderContext.pageFilesAll.filter((p) => {
381
+ const pageFilesWithOnBeforePrerenderHook = globalContext.pageFilesAll.filter((p) => {
365
382
  assertExportNames(p);
366
383
  if (!p.exportNames?.includes('onBeforePrerender'))
367
384
  return false;
@@ -414,17 +431,20 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
414
431
  const docLink = 'https://vike.dev/i18n#pre-rendering';
415
432
  // Set `enumerable` to `false` to avoid computed URL properties from being iterated & copied in onPrerenderStart() hook, e.g. /examples/i18n/
416
433
  const { restoreEnumerable, addPageContextComputedUrl } = makePageContextComputedUrlNonEnumerable(prerenderContext.pageContexts);
417
- let result = await (0, executeHook_js_1.executeHook)(() => hookFn({
418
- pageContexts: prerenderContext.pageContexts,
434
+ let result = await (0, executeHook_js_1.executeHook)(() => {
435
+ const prerenderContextPublic = makePublic(prerenderContext);
419
436
  // TODO/v1-release: remove warning
420
- get prerenderPageContexts() {
421
- (0, utils_js_1.assertWarning)(false, `prerenderPageContexts has been renamed pageContexts, see ${docLink}`, {
422
- showStackTrace: true,
423
- onlyOnce: true
424
- });
425
- return prerenderContext.pageContexts;
426
- }
427
- }), onPrerenderStartHook, null);
437
+ Object.defineProperty(prerenderContextPublic, 'prerenderPageContexts', {
438
+ get() {
439
+ (0, utils_js_1.assertWarning)(false, `prerenderPageContexts has been renamed pageContexts, see ${docLink}`, {
440
+ showStackTrace: true,
441
+ onlyOnce: true
442
+ });
443
+ return prerenderContext.pageContexts;
444
+ }
445
+ });
446
+ return hookFn(prerenderContextPublic);
447
+ }, onPrerenderStartHook, null);
428
448
  restoreEnumerable();
429
449
  if (result === null || result === undefined) {
430
450
  return;
@@ -506,10 +526,10 @@ async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete)
506
526
  if (pageContext._pageConfigs.length > 0) {
507
527
  const pageConfig = pageContext._pageConfigs.find((p) => p.pageId === pageId);
508
528
  (0, utils_js_1.assert)(pageConfig);
509
- usesClientRouter = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
529
+ usesClientRouter = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
510
530
  }
511
531
  else {
512
- usesClientRouter = globalContext.pluginManifest.usesClientRouter;
532
+ usesClientRouter = globalContext.usesClientRouter;
513
533
  }
514
534
  }
515
535
  (0, utils_js_1.objectAssign)(pageContext, {
@@ -531,7 +551,7 @@ async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete)
531
551
  pageContext,
532
552
  htmlString: documentHtml,
533
553
  pageContextSerialized,
534
- doNotCreateExtraDirectory: prerenderContext._noExtraDir,
554
+ doNotCreateExtraDirectory: prerenderContext.noExtraDir,
535
555
  pageId
536
556
  });
537
557
  })));
@@ -549,27 +569,28 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
549
569
  (0, utils_js_1.assertWarning)(false, `The ${providedByHook.hookName}() hook defined by ${providedByHook.hookFilePath} returns the URL ${picocolors_1.default.cyan(urlOriginal)}, while ${setByConfigFile} sets the config ${picocolors_1.default.cyan(setByConfigName)} to ${picocolors_1.default.cyan(String(setByConfigValue))}. This is contradictory: either don't set the config ${picocolors_1.default.cyan(setByConfigName)} to ${picocolors_1.default.cyan(String(setByConfigValue))} or remove the URL ${picocolors_1.default.cyan(urlOriginal)} from the list of URLs to be pre-rendered.`, { onlyOnce: true });
550
570
  });
551
571
  }
552
- function warnMissingPages(prerenderedPageContexts, doNotPrerenderList, renderContext, partial) {
553
- const isV1 = renderContext.pageConfigs.length > 0;
572
+ function warnMissingPages(prerenderedPageContexts, doNotPrerenderList, partial) {
573
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
574
+ const isV1 = globalContext.pageConfigs.length > 0;
554
575
  const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
555
576
  /* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
556
577
  const optOutName = isV1 ? 'prerender' : 'doNotPrerender'
557
578
  const msgAddendum = `Explicitly opt-out by setting the config ${optOutName} to ${isV1 ? 'false' : 'true'} or use the option prerender.partial`
558
579
  */
559
- renderContext.allPageIds
580
+ globalContext.allPageIds
560
581
  .filter((pageId) => !prerenderedPageContexts[pageId])
561
582
  .filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
562
- .filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, renderContext.pageConfigs))
583
+ .filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext.pageConfigs))
563
584
  .forEach((pageId) => {
564
585
  const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
565
586
  (0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while no ${hookName}() hook returned any URL matching the page's route. You need to use a ${hookName}() hook (https://vike.dev/${hookName}) providing a list of URLs for ${pageAt} that should be pre-rendered. If you don't want to pre-render ${pageAt} then use the option prerender.partial (https://vike.dev/prerender#partial) to suppress this warning.`, { onlyOnce: true });
566
587
  });
567
588
  }
568
- async function prerender404(prerenderedPageContexts, renderContext, prerenderContext, onComplete) {
569
- if (!Object.values(prerenderedPageContexts).find(({ urlOriginal }) => urlOriginal === '/404')) {
589
+ async function prerender404(prerenderContext, onComplete) {
590
+ if (!Object.values(prerenderContext.prerenderedPageContexts).find(({ urlOriginal }) => urlOriginal === '/404')) {
570
591
  let result;
571
592
  try {
572
- result = await (0, renderPageAlreadyRouted_js_1.prerender404Page)(renderContext, prerenderContext.pageContextInit);
593
+ result = await (0, renderPageAlreadyRouted_js_1.prerender404Page)(prerenderContext.pageContextInit);
573
594
  }
574
595
  catch (err) {
575
596
  assertIsNotAbort(err, 'the 404 page');
@@ -589,22 +610,23 @@ async function prerender404(prerenderedPageContexts, renderContext, prerenderCon
589
610
  }
590
611
  }
591
612
  }
592
- async function writeFiles({ urlOriginal, pageContext, htmlString, pageContextSerialized, doNotCreateExtraDirectory }, root, outDirClient, onPagePrerender, logLevel) {
613
+ async function writeFiles({ urlOriginal, pageContext, htmlString, pageContextSerialized, doNotCreateExtraDirectory }, root, outDirClient, onPagePrerender, output, logLevel) {
593
614
  (0, utils_js_1.assert)(urlOriginal.startsWith('/'));
594
615
  const writeJobs = [
595
- write(urlOriginal, pageContext, '.html', htmlString, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, logLevel)
616
+ write(urlOriginal, pageContext, 'HTML', htmlString, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel)
596
617
  ];
597
618
  if (pageContextSerialized !== null) {
598
- writeJobs.push(write(urlOriginal, pageContext, '.pageContext.json', pageContextSerialized, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, logLevel));
619
+ writeJobs.push(write(urlOriginal, pageContext, 'JSON', pageContextSerialized, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel));
599
620
  }
600
621
  await Promise.all(writeJobs);
601
622
  }
602
- async function write(urlOriginal, pageContext, fileExtension, fileContent, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, logLevel) {
623
+ async function write(urlOriginal, pageContext, fileType, fileContent, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel) {
603
624
  let fileUrl;
604
- if (fileExtension === '.html') {
625
+ if (fileType === 'HTML') {
605
626
  fileUrl = (0, utils_js_1.urlToFile)(urlOriginal, '.html', doNotCreateExtraDirectory);
606
627
  }
607
628
  else {
629
+ (0, utils_js_1.assert)(fileType === 'JSON');
608
630
  fileUrl = (0, getPageContextRequestUrl_js_1.getPageContextRequestUrl)(urlOriginal);
609
631
  }
610
632
  (0, utils_js_1.assertPosixPath)(fileUrl);
@@ -616,6 +638,12 @@ async function write(urlOriginal, pageContext, fileExtension, fileContent, root,
616
638
  (0, utils_js_1.assertPosixPath)(outDirClient);
617
639
  (0, utils_js_1.assertPosixPath)(filePathRelative);
618
640
  const filePath = path_1.default.posix.join(outDirClient, filePathRelative);
641
+ output.push({
642
+ filePath,
643
+ fileType,
644
+ fileContent,
645
+ pageContext
646
+ });
619
647
  if (onPagePrerender) {
620
648
  const prerenderPageContext = {};
621
649
  (0, utils_js_1.objectAssign)(prerenderPageContext, pageContext);
@@ -700,25 +728,6 @@ async function disableReactStreaming() {
700
728
  const { disable } = mod;
701
729
  disable();
702
730
  }
703
- function assertLoadedConfig(viteConfig, options) {
704
- if (viteConfig.plugins.some((p) => p.name.startsWith('vike'))) {
705
- return;
706
- }
707
- const { configFile } = viteConfig;
708
- if (configFile) {
709
- (0, utils_js_1.assertUsage)(false, `${configFile} doesn't install the vike plugin`);
710
- }
711
- else {
712
- if (!options.viteConfig) {
713
- (0, utils_js_1.assertUsage)(false, `[prerender()] No vite.config.js file found at ${process.cwd()}. Use the option ${picocolors_1.default.cyan('prerender({ viteConfig })')}.`, { showStackTrace: true });
714
- }
715
- else {
716
- (0, utils_js_1.assertUsage)(false, `[prerender()] The Vite config ${picocolors_1.default.cyan('prerender({ viteConfig })')} is missing the vike plugin.`, {
717
- showStackTrace: true
718
- });
719
- }
720
- }
721
- }
722
731
  function isSameUrl(url1, url2) {
723
732
  return normalizeUrl(url1) === normalizeUrl(url2);
724
733
  }
@@ -768,3 +777,44 @@ function makePageContextComputedUrlNonEnumerable(pageContexts) {
768
777
  });
769
778
  }
770
779
  }
780
+ function validatePrerenderConfig(
781
+ // Guaranteed by configDef.type to be either an object or boolean
782
+ prerenderConfig) {
783
+ if (!prerenderConfig || typeof prerenderConfig === 'boolean')
784
+ return;
785
+ (0, utils_js_1.assert)((0, utils_js_1.isObject)(prerenderConfig));
786
+ const wrongValue = (() => {
787
+ {
788
+ const p = 'partial';
789
+ if (!(0, utils_js_1.hasProp)(prerenderConfig, p, 'boolean') && !(0, utils_js_1.hasProp)(prerenderConfig, p, 'undefined'))
790
+ return { prop: p, errMsg: 'should be a boolean' };
791
+ }
792
+ {
793
+ const p = 'noExtraDir';
794
+ if (!(0, utils_js_1.hasProp)(prerenderConfig, p, 'boolean') && !(0, utils_js_1.hasProp)(prerenderConfig, p, 'undefined'))
795
+ return { prop: p, errMsg: 'should be a boolean' };
796
+ }
797
+ {
798
+ const p = 'disableAutoRun';
799
+ if (!(0, utils_js_1.hasProp)(prerenderConfig, p, 'boolean') && !(0, utils_js_1.hasProp)(prerenderConfig, p, 'undefined'))
800
+ return { prop: p, errMsg: 'should be a boolean' };
801
+ }
802
+ {
803
+ const p = 'parallel';
804
+ if (!(0, utils_js_1.hasProp)(prerenderConfig, p, 'boolean') &&
805
+ !(0, utils_js_1.hasProp)(prerenderConfig, p, 'number') &&
806
+ !(0, utils_js_1.hasProp)(prerenderConfig, p, 'undefined'))
807
+ return { prop: p, errMsg: 'should be a boolean or a number' };
808
+ }
809
+ })();
810
+ if (wrongValue) {
811
+ const { prop, errMsg } = wrongValue;
812
+ (0, utils_js_1.assertUsage)(false, `Setting ${picocolors_1.default.cyan(`prerender.${prop}`)} ${errMsg}`);
813
+ }
814
+ }
815
+ function makePublic(prerenderContext) {
816
+ const prerenderContextPublic = (0, utils_js_1.makePublicCopy)(prerenderContext, 'prerenderContext', [
817
+ 'pageContexts'
818
+ ]);
819
+ return prerenderContextPublic;
820
+ }
@@ -31,4 +31,6 @@ __exportStar(require("../../utils/assertSetup.js"), exports);
31
31
  __exportStar(require("../../utils/pLimit.js"), exports);
32
32
  __exportStar(require("../../utils/isFilePathAbsoluteFilesystem.js"), exports);
33
33
  __exportStar(require("../../utils/isArray.js"), exports);
34
+ __exportStar(require("../../utils/isObject.js"), exports);
34
35
  __exportStar(require("../../utils/changeEnumerable.js"), exports);
36
+ __exportStar(require("../../utils/makePublicCopy.js"), exports);