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.
- package/dist/cjs/__internal/index.js +11 -11
- package/dist/cjs/node/api/build.js +22 -48
- package/dist/cjs/node/api/context.js +8 -6
- package/dist/cjs/node/api/index.js +17 -7
- package/dist/cjs/node/api/prepareViteApiCall.js +40 -13
- package/dist/cjs/node/cli/context.js +16 -0
- package/dist/cjs/node/cli/entry.js +21 -7
- package/dist/cjs/node/cli/utils.js +1 -0
- package/dist/cjs/node/plugin/index.js +5 -5
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +32 -20
- package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -10
- package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/cjs/node/plugin/plugins/commonConfig.js +41 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -23
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +171 -68
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
- package/dist/cjs/node/prerender/context.js +24 -0
- package/dist/cjs/node/prerender/runPrerender.js +146 -96
- package/dist/cjs/node/prerender/utils.js +2 -0
- package/dist/cjs/node/runtime/globalContext.js +109 -55
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/cjs/node/runtime/index-common.js +0 -15
- package/dist/cjs/node/runtime/onLoad.js +17 -3
- package/dist/cjs/node/runtime/page-files/setup.js +2 -4
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/cjs/node/runtime/renderPage.js +21 -22
- package/dist/cjs/node/runtime/utils.js +2 -0
- package/dist/cjs/node/runtime-dev/index.js +17 -7
- package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/cjs/shared/getPageFiles.js +3 -9
- package/dist/cjs/shared/hooks/getHook.js +3 -3
- package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
- package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
- package/dist/cjs/shared/utils.js +1 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +4 -3
- package/dist/cjs/utils/assertSetup.js +47 -16
- package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
- package/dist/cjs/utils/debug.js +11 -6
- package/dist/cjs/utils/getGlobalObject.js +1 -2
- package/dist/cjs/utils/isDev.js +2 -0
- package/dist/cjs/utils/makePublicCopy.js +32 -0
- package/dist/cjs/utils/objectReplace.js +9 -0
- package/dist/esm/__internal/index.d.ts +3 -5
- package/dist/esm/__internal/index.js +6 -8
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -1
- package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/entry.js +0 -1
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/history.js +23 -18
- package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/index.js +0 -1
- package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +3 -4
- package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
- package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -62
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
- package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
- package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
- package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/utils.js +1 -0
- package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/entry.js +0 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.js +5 -2
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
- package/dist/esm/client/shared/normalizeClientSideUrl.js +2 -3
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/build.d.ts +1 -6
- package/dist/esm/node/api/build.js +20 -26
- package/dist/esm/node/api/context.d.ts +4 -2
- package/dist/esm/node/api/context.js +8 -7
- package/dist/esm/node/api/prepareViteApiCall.d.ts +0 -1
- package/dist/esm/node/api/prepareViteApiCall.js +26 -9
- package/dist/esm/node/cli/context.d.ts +5 -0
- package/dist/esm/node/cli/context.js +14 -0
- package/dist/esm/node/cli/entry.js +4 -0
- package/dist/esm/node/cli/parseCli.d.ts +3 -1
- package/dist/esm/node/cli/utils.d.ts +1 -0
- package/dist/esm/node/cli/utils.js +1 -0
- package/dist/esm/node/plugin/index.d.ts +1 -1
- package/dist/esm/node/plugin/index.js +5 -5
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +32 -20
- package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/baseUrls.js +4 -11
- package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +10 -1
- package/dist/esm/node/plugin/plugins/commonConfig.js +42 -5
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -22
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +96 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +167 -64
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/esm/node/prerender/context.d.ts +9 -0
- package/dist/esm/node/prerender/context.js +22 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +42 -2
- package/dist/esm/node/prerender/runPrerender.js +130 -90
- package/dist/esm/node/prerender/utils.d.ts +2 -0
- package/dist/esm/node/prerender/utils.js +2 -0
- package/dist/esm/node/runtime/globalContext.d.ts +23 -7
- package/dist/esm/node/runtime/globalContext.js +109 -55
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/esm/node/runtime/index-common.d.ts +0 -1
- package/dist/esm/node/runtime/index-common.js +0 -15
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
- package/dist/esm/node/runtime/onLoad.js +16 -2
- package/dist/esm/node/runtime/page-files/setup.js +3 -3
- package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +31 -46
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/esm/node/runtime/renderPage.js +22 -23
- package/dist/esm/node/runtime/utils.d.ts +2 -0
- package/dist/esm/node/runtime/utils.js +2 -0
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +3 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/esm/shared/getPageFiles.d.ts +2 -5
- package/dist/esm/shared/getPageFiles.js +1 -4
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
- package/dist/esm/shared/page-configs/Config.d.ts +20 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +13 -6
- package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +26 -12
- package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
- package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +26 -6
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +1 -1
- package/dist/esm/shared/types.d.ts +1 -1
- package/dist/esm/shared/utils.d.ts +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.js +4 -3
- package/dist/esm/utils/assertSetup.js +47 -16
- package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
- package/dist/esm/utils/catchInfiniteLoop.js +32 -0
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +11 -6
- package/dist/esm/utils/getGlobalObject.js +1 -2
- package/dist/esm/utils/isDev.js +2 -0
- package/dist/esm/utils/makePublicCopy.d.ts +3 -0
- package/dist/esm/utils/makePublicCopy.js +30 -0
- package/dist/esm/utils/objectReplace.d.ts +1 -0
- package/dist/esm/utils/objectReplace.js +6 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +4 -13
- package/__internal/loadImportBuild.js +0 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
- package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
- package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
- package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
- package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
- package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
- package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
- package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
- package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
- /package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
- /package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
- /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 (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
115
|
-
|
|
116
|
-
const prerenderContext = {
|
|
117
|
-
|
|
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(
|
|
125
|
-
await callOnBeforePrerenderStartHooks(prerenderContext,
|
|
126
|
-
await handlePagesWithStaticRoutes(prerenderContext,
|
|
127
|
-
await callOnPrerenderStartHook(prerenderContext
|
|
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(
|
|
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,
|
|
144
|
-
|
|
155
|
+
warnMissingPages(prerenderContext.prerenderedPageContexts, doNotPrerenderList, partial);
|
|
156
|
+
const prerenderContextPublic = makePublic(prerenderContext);
|
|
157
|
+
return { viteConfig, prerenderContextPublic };
|
|
145
158
|
}
|
|
146
|
-
async function collectDoNoPrerenderList(
|
|
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
|
-
|
|
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
|
-
|
|
177
|
-
const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(
|
|
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,
|
|
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(
|
|
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(
|
|
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,
|
|
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,
|
|
298
|
+
async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList, concurrencyLimit) {
|
|
284
299
|
// Pre-render pages with a static route
|
|
285
|
-
|
|
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,
|
|
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,
|
|
344
|
+
function createPageContext(urlOriginal, prerenderContext) {
|
|
329
345
|
const pageContext = {
|
|
330
346
|
_urlHandler: null,
|
|
331
347
|
_urlRewrite: null,
|
|
332
|
-
_noExtraDir: prerenderContext.
|
|
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
|
|
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
|
|
361
|
+
async function callOnPrerenderStartHook(prerenderContext) {
|
|
362
|
+
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
346
363
|
let onPrerenderStartHook;
|
|
347
364
|
// V1 design
|
|
348
|
-
if (
|
|
365
|
+
if (globalContext.pageConfigs.length > 0) {
|
|
349
366
|
const hookName = 'onPrerenderStart';
|
|
350
|
-
const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(
|
|
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 (
|
|
379
|
+
if (globalContext.pageConfigs.length === 0) {
|
|
363
380
|
const hookTimeout = (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerender');
|
|
364
|
-
const pageFilesWithOnBeforePrerenderHook =
|
|
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)(() =>
|
|
418
|
-
|
|
434
|
+
let result = await (0, executeHook_js_1.executeHook)(() => {
|
|
435
|
+
const prerenderContextPublic = makePublic(prerenderContext);
|
|
419
436
|
// TODO/v1-release: remove warning
|
|
420
|
-
|
|
421
|
-
(
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
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,
|
|
529
|
+
usesClientRouter = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
510
530
|
}
|
|
511
531
|
else {
|
|
512
|
-
usesClientRouter = globalContext.
|
|
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.
|
|
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,
|
|
553
|
-
const
|
|
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
|
-
|
|
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,
|
|
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(
|
|
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)(
|
|
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, '
|
|
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, '
|
|
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,
|
|
623
|
+
async function write(urlOriginal, pageContext, fileType, fileContent, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel) {
|
|
603
624
|
let fileUrl;
|
|
604
|
-
if (
|
|
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);
|