vike 0.4.228-commit-c2f6e1f → 0.4.228-commit-8d90991
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 +2 -2
- package/dist/cjs/client/client-routing-runtime/globalContext.js +49 -0
- package/dist/cjs/client/server-routing-runtime/globalContext.js +41 -0
- package/dist/cjs/client/shared/createGetGlobalContext.js +31 -0
- package/dist/cjs/client/shared/getJsonSerializedInHtml.js +31 -0
- package/dist/cjs/client/shared/utils.js +21 -0
- package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +1 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -0
- package/dist/cjs/node/prerender/runPrerender.js +42 -40
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +87 -119
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
- package/dist/cjs/node/runtime/html/propKeys.js +47 -0
- package/dist/cjs/node/runtime/html/renderHtml.js +1 -1
- package/dist/cjs/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +37 -67
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +14 -13
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +2 -2
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
- package/dist/cjs/node/runtime/renderPage.js +10 -10
- package/dist/cjs/node/runtime/utils.js +1 -1
- package/dist/cjs/shared/createGlobalContextShared.js +45 -0
- package/dist/cjs/shared/createPageContextShared.js +2 -2
- package/dist/cjs/{node/runtime/renderPage → shared/hooks}/executeHookGeneric.js +4 -4
- package/dist/cjs/shared/htmlElementIds.js +5 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/catchInfiniteLoop.js +3 -3
- package/dist/cjs/utils/getPublicProxy.js +27 -0
- package/dist/cjs/utils/objectAssign.js +5 -5
- package/dist/cjs/utils/objectReplace.js +4 -4
- package/dist/esm/__internal/index.js +2 -2
- package/dist/esm/client/client-routing-runtime/{createPageContextClientSide.d.ts → createPageContext.d.ts} +17 -8
- package/dist/esm/client/client-routing-runtime/{createPageContextClientSide.js → createPageContext.js} +14 -16
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/client-routing-runtime/globalContext.d.ts +16 -0
- package/dist/esm/client/client-routing-runtime/globalContext.js +13 -0
- package/dist/esm/client/client-routing-runtime/prefetch.js +1 -1
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +2 -3
- package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +13 -4
- package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +16 -15
- package/dist/esm/client/server-routing-runtime/globalContext.d.ts +13 -0
- package/dist/esm/client/server-routing-runtime/globalContext.js +5 -0
- package/dist/esm/client/shared/createGetGlobalContext.d.ts +11 -0
- package/dist/esm/client/shared/createGetGlobalContext.js +29 -0
- package/dist/esm/client/shared/{getPageContextSerializedInHtml.d.ts → getJsonSerializedInHtml.d.ts} +2 -0
- package/dist/esm/client/shared/getJsonSerializedInHtml.js +29 -0
- package/dist/esm/client/shared/utils.d.ts +3 -0
- package/dist/esm/client/shared/utils.js +3 -0
- package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +300 -5
- package/dist/esm/node/prerender/runPrerender.js +43 -41
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +393 -46
- package/dist/esm/node/runtime/globalContext.js +88 -120
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
- package/dist/esm/node/runtime/html/injectAssets.d.ts +1 -1
- package/dist/esm/node/runtime/html/propKeys.d.ts +8 -0
- package/dist/esm/node/runtime/html/propKeys.js +45 -0
- package/dist/esm/node/runtime/html/renderHtml.js +1 -1
- package/dist/esm/node/runtime/html/{serializePageContextClientSide.d.ts → serializeContext.d.ts} +7 -6
- package/dist/esm/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +36 -67
- package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +95 -35
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +14 -13
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +2 -2
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/esm/node/runtime/renderPage/log404/index.js +1 -1
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +186 -64
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
- package/dist/esm/node/runtime/renderPage.d.ts +95 -34
- package/dist/esm/node/runtime/renderPage.js +10 -10
- package/dist/esm/node/runtime/utils.d.ts +1 -1
- package/dist/esm/node/runtime/utils.js +1 -1
- package/dist/esm/shared/VikeNamespace.d.ts +32 -10
- package/dist/esm/shared/createGlobalContextShared.d.ts +25 -0
- package/dist/esm/shared/createGlobalContextShared.js +43 -0
- package/dist/esm/shared/createPageContextShared.js +2 -2
- package/dist/esm/shared/hooks/executeHookGeneric.d.ts +8 -0
- package/dist/esm/{node/runtime/renderPage → shared/hooks}/executeHookGeneric.js +4 -4
- package/dist/esm/shared/htmlElementIds.d.ts +2 -0
- package/dist/esm/shared/htmlElementIds.js +2 -0
- package/dist/esm/shared/page-configs/Config.d.ts +7 -2
- package/dist/esm/shared/types.d.ts +20 -13
- package/dist/esm/types/index.d.ts +1 -5
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/catchInfiniteLoop.js +4 -4
- package/dist/esm/utils/getGlobalObject.d.ts +1 -1
- package/dist/esm/utils/getPublicProxy.d.ts +2 -0
- package/dist/esm/utils/getPublicProxy.js +25 -0
- package/dist/esm/utils/objectAssign.d.ts +1 -1
- package/dist/esm/utils/objectAssign.js +5 -5
- package/dist/esm/utils/objectReplace.d.ts +1 -1
- package/dist/esm/utils/objectReplace.js +4 -4
- package/package.json +2 -2
- package/dist/cjs/client/client-routing-runtime/globalContextClientSide.js +0 -10
- package/dist/cjs/client/client-routing-runtime/onLoad.js +0 -10
- package/dist/cjs/client/client-routing-runtime/utils.js +0 -43
- package/dist/cjs/utils/makePublicCopy.js +0 -32
- package/dist/esm/client/client-routing-runtime/globalContextClientSide.d.ts +0 -5
- package/dist/esm/client/client-routing-runtime/globalContextClientSide.js +0 -8
- package/dist/esm/client/shared/getPageContextSerializedInHtml.js +0 -20
- package/dist/esm/node/runtime/renderPage/executeHookGeneric.d.ts +0 -8
- package/dist/esm/utils/makePublicCopy.d.ts +0 -3
- package/dist/esm/utils/makePublicCopy.js +0 -30
|
@@ -4,7 +4,7 @@ export { runPrerenderFromAutoRun };
|
|
|
4
4
|
export { runPrerender_forceExit };
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { route } from '../../shared/route/index.js';
|
|
7
|
-
import { assert, assertUsage, assertWarning, hasProp, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, onSetupPrerender,
|
|
7
|
+
import { assert, assertUsage, assertWarning, hasProp, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, onSetupPrerender, getPublicProxy, PROJECT_VERSION, preservePropertyGetters } from './utils.js';
|
|
8
8
|
import { prerenderPage } from '../runtime/renderPage/renderPageAlreadyRouted.js';
|
|
9
9
|
import { createPageContextServerSide } from '../runtime/renderPage/createPageContextServerSide.js';
|
|
10
10
|
import pc from '@brillout/picocolors';
|
|
@@ -94,26 +94,26 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
94
94
|
}
|
|
95
95
|
const concurrencyLimit = pLimit(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? cpus().length : parallel);
|
|
96
96
|
await initGlobalContext_runPrerender();
|
|
97
|
-
const globalContext = await getGlobalContextInternal();
|
|
98
|
-
globalContext.
|
|
97
|
+
const { globalContext, globalContext_public } = await getGlobalContextInternal();
|
|
98
|
+
globalContext._pageFilesAll.forEach(assertExportNames);
|
|
99
99
|
const prerenderContext = {
|
|
100
|
-
noExtraDir,
|
|
101
100
|
pageContexts: [],
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
output: [],
|
|
102
|
+
_noExtraDir: noExtraDir,
|
|
103
|
+
_pageContextInit: options.pageContextInit ?? null,
|
|
104
|
+
_prerenderedPageContexts: {}
|
|
105
105
|
};
|
|
106
106
|
const doNotPrerenderList = [];
|
|
107
107
|
await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
|
|
108
108
|
// Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
|
|
109
109
|
// https://vike.dev/onBeforePrerenderStart
|
|
110
|
-
await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
|
|
110
|
+
await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList);
|
|
111
111
|
// Create `pageContext` for each page with a static route
|
|
112
112
|
const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
|
|
113
|
-
await createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, false);
|
|
113
|
+
await createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, false);
|
|
114
114
|
// Create `pageContext` for 404 page
|
|
115
115
|
const urlList404 = getUrlList404(globalContext);
|
|
116
|
-
await createPageContexts(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
|
|
116
|
+
await createPageContexts(urlList404, prerenderContext, globalContext, globalContext_public, concurrencyLimit, true);
|
|
117
117
|
// Allow user to duplicate the list of `pageContext` for i18n
|
|
118
118
|
// https://vike.dev/onPrerenderStart
|
|
119
119
|
await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
|
|
@@ -123,15 +123,15 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
123
123
|
prerenderedCount++;
|
|
124
124
|
const { pageId } = htmlFile.pageContext;
|
|
125
125
|
assert(pageId);
|
|
126
|
-
prerenderContext.
|
|
126
|
+
prerenderContext._prerenderedPageContexts[pageId] = htmlFile.pageContext;
|
|
127
127
|
await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, prerenderContext.output, logLevel);
|
|
128
128
|
};
|
|
129
129
|
await prerenderPages(prerenderContext, concurrencyLimit, onComplete);
|
|
130
|
-
warnContradictoryNoPrerenderList(prerenderContext.
|
|
130
|
+
warnContradictoryNoPrerenderList(prerenderContext._prerenderedPageContexts, doNotPrerenderList);
|
|
131
131
|
if (logLevel === 'info') {
|
|
132
132
|
console.log(`${pc.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
|
|
133
133
|
}
|
|
134
|
-
await warnMissingPages(prerenderContext.
|
|
134
|
+
await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
|
|
135
135
|
const prerenderContextPublic = makePublic(prerenderContext);
|
|
136
136
|
objectAssign(vike.prerenderContext, prerenderContextPublic);
|
|
137
137
|
if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
|
|
@@ -158,7 +158,7 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
|
|
|
158
158
|
});
|
|
159
159
|
// Old design
|
|
160
160
|
// TODO/v1-release: remove
|
|
161
|
-
await Promise.all(globalContext.
|
|
161
|
+
await Promise.all(globalContext._pageFilesAll
|
|
162
162
|
.filter((p) => {
|
|
163
163
|
assertExportNames(p);
|
|
164
164
|
if (!p.exportNames?.includes('doNotPrerender'))
|
|
@@ -170,8 +170,8 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
|
|
|
170
170
|
assert(p.loadFile);
|
|
171
171
|
await p.loadFile();
|
|
172
172
|
})));
|
|
173
|
-
globalContext.
|
|
174
|
-
const pageFilesServerSide = getPageFilesServerSide(globalContext.
|
|
173
|
+
globalContext._allPageIds.forEach((pageId) => {
|
|
174
|
+
const pageFilesServerSide = getPageFilesServerSide(globalContext._pageFilesAll, pageId);
|
|
175
175
|
for (const p of pageFilesServerSide) {
|
|
176
176
|
if (!p.exportNames?.includes('doNotPrerender'))
|
|
177
177
|
continue;
|
|
@@ -195,10 +195,10 @@ function assertExportNames(pageFile) {
|
|
|
195
195
|
const { exportNames, fileType } = pageFile;
|
|
196
196
|
assert(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
|
|
197
197
|
}
|
|
198
|
-
async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
|
|
198
|
+
async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList) {
|
|
199
199
|
const onBeforePrerenderStartHooks = [];
|
|
200
200
|
// V1 design
|
|
201
|
-
await Promise.all(globalContext.
|
|
201
|
+
await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
|
|
202
202
|
const hookName = 'onBeforePrerenderStart';
|
|
203
203
|
const pageConfigLoaded = await loadConfigValues(pageConfig, false);
|
|
204
204
|
const hook = getHookFromPageConfig(pageConfigLoaded, hookName);
|
|
@@ -214,7 +214,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
214
214
|
});
|
|
215
215
|
})));
|
|
216
216
|
// 0.4 design
|
|
217
|
-
await Promise.all(globalContext.
|
|
217
|
+
await Promise.all(globalContext._pageFilesAll
|
|
218
218
|
.filter((p) => {
|
|
219
219
|
assertExportNames(p);
|
|
220
220
|
if (!p.exportNames?.includes('prerender'))
|
|
@@ -258,7 +258,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
258
258
|
}
|
|
259
259
|
// Add result
|
|
260
260
|
const providedByHook = { hookFilePath, hookName };
|
|
261
|
-
const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, false, undefined, providedByHook);
|
|
261
|
+
const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, globalContext_public, false, undefined, providedByHook);
|
|
262
262
|
prerenderContext.pageContexts.push(pageContextNew);
|
|
263
263
|
if (pageContext) {
|
|
264
264
|
objectAssign(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
|
|
@@ -269,7 +269,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
269
269
|
}
|
|
270
270
|
function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
|
|
271
271
|
const urlList = [];
|
|
272
|
-
globalContext.
|
|
272
|
+
globalContext._pageRoutes.map((pageRoute) => {
|
|
273
273
|
const { pageId } = pageRoute;
|
|
274
274
|
if (doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
275
275
|
return;
|
|
@@ -294,7 +294,7 @@ function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
|
|
|
294
294
|
}
|
|
295
295
|
function getUrlList404(globalContext) {
|
|
296
296
|
const urlList = [];
|
|
297
|
-
const errorPageId = getErrorPageId(globalContext.
|
|
297
|
+
const errorPageId = getErrorPageId(globalContext._pageFilesAll, globalContext._pageConfigs);
|
|
298
298
|
if (errorPageId) {
|
|
299
299
|
urlList.push({
|
|
300
300
|
// A URL is required for `viteDevServer.transformIndexHtml(url,html)`
|
|
@@ -304,28 +304,30 @@ function getUrlList404(globalContext) {
|
|
|
304
304
|
}
|
|
305
305
|
return urlList;
|
|
306
306
|
}
|
|
307
|
-
async function createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
|
|
307
|
+
async function createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, is404) {
|
|
308
308
|
await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
|
|
309
309
|
// Already included in a onBeforePrerenderStart() hook
|
|
310
310
|
if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
|
|
311
311
|
return;
|
|
312
312
|
}
|
|
313
|
-
const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
|
|
313
|
+
const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, null);
|
|
314
314
|
prerenderContext.pageContexts.push(pageContext);
|
|
315
315
|
})));
|
|
316
316
|
}
|
|
317
|
-
async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
|
|
317
|
+
async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, providedByHook) {
|
|
318
318
|
const pageContextInit = {
|
|
319
319
|
urlOriginal,
|
|
320
|
-
...prerenderContext.
|
|
320
|
+
...prerenderContext._pageContextInit
|
|
321
321
|
};
|
|
322
|
-
const pageContext = await createPageContextServerSide(pageContextInit, globalContext, {
|
|
322
|
+
const pageContext = await createPageContextServerSide(pageContextInit, globalContext, globalContext_public, {
|
|
323
|
+
isPrerendering: true
|
|
324
|
+
});
|
|
323
325
|
assert(pageContext.isPrerendering === true);
|
|
324
326
|
objectAssign(pageContext, {
|
|
325
327
|
_urlHandler: null,
|
|
326
328
|
_httpRequestId: null,
|
|
327
329
|
_urlRewrite: null,
|
|
328
|
-
_noExtraDir: prerenderContext.
|
|
330
|
+
_noExtraDir: prerenderContext._noExtraDir,
|
|
329
331
|
_prerenderContext: prerenderContext,
|
|
330
332
|
_providedByHook: providedByHook,
|
|
331
333
|
_urlOriginalModifiedByHook: null,
|
|
@@ -351,14 +353,14 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
|
|
|
351
353
|
{
|
|
352
354
|
const { pageId } = pageContext;
|
|
353
355
|
assert(pageId);
|
|
354
|
-
assert(globalContext.
|
|
355
|
-
if (globalContext.
|
|
356
|
-
const pageConfig = globalContext.
|
|
356
|
+
assert(globalContext._isPrerendering);
|
|
357
|
+
if (globalContext._pageConfigs.length > 0) {
|
|
358
|
+
const pageConfig = globalContext._pageConfigs.find((p) => p.pageId === pageId);
|
|
357
359
|
assert(pageConfig);
|
|
358
360
|
usesClientRouter = getConfigValueRuntime(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
359
361
|
}
|
|
360
362
|
else {
|
|
361
|
-
usesClientRouter = globalContext.
|
|
363
|
+
usesClientRouter = globalContext._usesClientRouter;
|
|
362
364
|
}
|
|
363
365
|
}
|
|
364
366
|
objectAssign(pageContext, { _usesClientRouter: usesClientRouter });
|
|
@@ -395,9 +397,9 @@ function assertRouteMatch(pageContextFromRoute, pageContext) {
|
|
|
395
397
|
async function callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit) {
|
|
396
398
|
let onPrerenderStartHook;
|
|
397
399
|
// V1 design
|
|
398
|
-
if (globalContext.
|
|
400
|
+
if (globalContext._pageConfigs.length > 0) {
|
|
399
401
|
const hookName = 'onPrerenderStart';
|
|
400
|
-
const hook = getHookFromPageConfigGlobal(globalContext.
|
|
402
|
+
const hook = getHookFromPageConfigGlobal(globalContext._pageConfigGlobal, hookName);
|
|
401
403
|
if (hook) {
|
|
402
404
|
assert(hook.hookName === 'onPrerenderStart');
|
|
403
405
|
onPrerenderStartHook = {
|
|
@@ -409,9 +411,9 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
409
411
|
}
|
|
410
412
|
// Old design
|
|
411
413
|
// TODO/v1-release: remove
|
|
412
|
-
if (globalContext.
|
|
414
|
+
if (globalContext._pageConfigs.length === 0) {
|
|
413
415
|
const hookTimeout = getHookTimeoutDefault('onBeforePrerender');
|
|
414
|
-
const pageFilesWithOnBeforePrerenderHook = globalContext.
|
|
416
|
+
const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
|
|
415
417
|
assertExportNames(p);
|
|
416
418
|
if (!p.exportNames?.includes('onBeforePrerender'))
|
|
417
419
|
return false;
|
|
@@ -551,7 +553,7 @@ async function prerenderPages(prerenderContext, concurrencyLimit, onComplete) {
|
|
|
551
553
|
pageContext,
|
|
552
554
|
htmlString: documentHtml,
|
|
553
555
|
pageContextSerialized,
|
|
554
|
-
doNotCreateExtraDirectory: prerenderContext.
|
|
556
|
+
doNotCreateExtraDirectory: prerenderContext._noExtraDir ?? pageContext.is404
|
|
555
557
|
});
|
|
556
558
|
})));
|
|
557
559
|
}
|
|
@@ -568,16 +570,16 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
|
|
|
568
570
|
});
|
|
569
571
|
}
|
|
570
572
|
async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
|
|
571
|
-
const isV1 = globalContext.
|
|
573
|
+
const isV1 = globalContext._pageConfigs.length > 0;
|
|
572
574
|
const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
|
|
573
575
|
/* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
|
|
574
576
|
const optOutName = isV1 ? 'prerender' : 'doNotPrerender'
|
|
575
577
|
const msgAddendum = `Explicitly opt-out by setting the config ${optOutName} to ${isV1 ? 'false' : 'true'} or use the option prerender.partial`
|
|
576
578
|
*/
|
|
577
|
-
globalContext.
|
|
579
|
+
globalContext._allPageIds
|
|
578
580
|
.filter((pageId) => !prerenderedPageContexts[pageId])
|
|
579
581
|
.filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
580
|
-
.filter((pageId) => !isErrorPage(pageId, globalContext.
|
|
582
|
+
.filter((pageId) => !isErrorPage(pageId, globalContext._pageConfigs))
|
|
581
583
|
.forEach((pageId) => {
|
|
582
584
|
const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
|
|
583
585
|
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 });
|
|
@@ -730,7 +732,7 @@ function assertIsNotAbort(err, urlOriginal) {
|
|
|
730
732
|
assertUsage(false, `${pc.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${pc.cyan(abortCaller)} isn't supported for pre-rendered pages`);
|
|
731
733
|
}
|
|
732
734
|
function makePublic(prerenderContext) {
|
|
733
|
-
const prerenderContextPublic =
|
|
735
|
+
const prerenderContextPublic = getPublicProxy(prerenderContext, 'prerenderContext', [
|
|
734
736
|
'output', // vite-plugin-vercel
|
|
735
737
|
'pageContexts' // https://vike.dev/i18n#pre-rendering
|
|
736
738
|
]);
|
|
@@ -13,6 +13,6 @@ export * from '../../utils/pLimit.js';
|
|
|
13
13
|
export * from '../../utils/isFilePathAbsoluteFilesystem.js';
|
|
14
14
|
export * from '../../utils/isArray.js';
|
|
15
15
|
export * from '../../utils/isObject.js';
|
|
16
|
-
export * from '../../utils/
|
|
16
|
+
export * from '../../utils/getPublicProxy.js';
|
|
17
17
|
export * from '../../utils/isNullish.js';
|
|
18
18
|
export * from '../../utils/preservePropertyGetters.js';
|
|
@@ -15,6 +15,6 @@ export * from '../../utils/pLimit.js';
|
|
|
15
15
|
export * from '../../utils/isFilePathAbsoluteFilesystem.js';
|
|
16
16
|
export * from '../../utils/isArray.js';
|
|
17
17
|
export * from '../../utils/isObject.js';
|
|
18
|
-
export * from '../../utils/
|
|
18
|
+
export * from '../../utils/getPublicProxy.js';
|
|
19
19
|
export * from '../../utils/isNullish.js';
|
|
20
20
|
export * from '../../utils/preservePropertyGetters.js';
|