vike 0.4.227 → 0.4.228-commit-1553dee
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/node/api/dev.js +2 -0
- package/dist/cjs/node/plugin/plugins/build/handleAssetsManifest.js +9 -4
- package/dist/cjs/node/plugin/plugins/build/pluginBuildConfig.js +3 -5
- package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +13 -8
- package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +13 -21
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +8 -9
- package/dist/cjs/node/plugin/plugins/envVars.js +22 -13
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +1 -2
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +1 -2
- package/dist/cjs/node/plugin/plugins/fileEnv.js +1 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +1 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +25 -19
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +7 -4
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +3 -4
- package/dist/cjs/node/plugin/shared/getViteConfigRuntime.js +21 -0
- package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +11 -12
- package/dist/cjs/node/plugin/utils.js +1 -0
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +1 -1
- package/dist/cjs/node/prerender/runPrerender.js +157 -196
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +57 -34
- package/dist/cjs/node/runtime/html/stream.js +2 -4
- package/dist/cjs/node/runtime/index-common.js +2 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +0 -23
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +1 -1
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +1 -1
- package/dist/cjs/shared/route/index.js +13 -11
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +2 -5
- package/dist/cjs/utils/findPackageJson.js +2 -2
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +1 -1
- package/dist/cjs/utils/isNpmPackage.js +1 -1
- package/dist/cjs/utils/isScriptFile.js +4 -4
- package/dist/cjs/utils/parseUrl.js +4 -4
- package/dist/cjs/utils/preservePropertyGetters.js +30 -0
- package/dist/cjs/utils/requireResolve.js +60 -16
- package/dist/cjs/{node/plugin/shared → utils}/rollupSourceMap.js +4 -4
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +2 -2
- package/dist/esm/node/api/dev.js +2 -0
- package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.js +9 -4
- package/dist/esm/node/plugin/plugins/build/pluginBuildConfig.js +2 -4
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +12 -7
- package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +11 -22
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +7 -8
- package/dist/esm/node/plugin/plugins/envVars.js +19 -13
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +2 -3
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -3
- package/dist/esm/node/plugin/plugins/fileEnv.js +2 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +2 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +26 -20
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +7 -4
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +4 -5
- package/dist/esm/node/plugin/shared/getViteConfigRuntime.d.ts +14 -0
- package/dist/esm/node/plugin/shared/getViteConfigRuntime.js +19 -0
- package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +10 -11
- package/dist/esm/node/plugin/utils.d.ts +1 -0
- package/dist/esm/node/plugin/utils.js +1 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +1 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +1 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +1 -0
- package/dist/esm/node/prerender/runPrerender.js +160 -199
- 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 +26 -17
- package/dist/esm/node/runtime/globalContext.js +57 -34
- package/dist/esm/node/runtime/html/stream.js +2 -4
- package/dist/esm/node/runtime/index-common.d.ts +1 -1
- package/dist/esm/node/runtime/index-common.js +1 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +9 -197
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +0 -23
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +1 -1
- package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +1 -1
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +1 -1
- package/dist/esm/shared/route/index.d.ts +1 -1
- package/dist/esm/shared/route/index.js +13 -11
- package/dist/esm/shared/types.d.ts +1 -3
- 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 +2 -5
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -1
- package/dist/esm/utils/isNpmPackage.js +1 -1
- package/dist/esm/utils/isScriptFile.js +4 -4
- package/dist/esm/utils/parseUrl.js +4 -4
- package/dist/esm/utils/preservePropertyGetters.d.ts +2 -0
- package/dist/esm/utils/preservePropertyGetters.js +28 -0
- package/dist/esm/utils/requireResolve.d.ts +7 -1
- package/dist/esm/utils/requireResolve.js +54 -13
- package/dist/esm/{node/plugin/shared → utils}/rollupSourceMap.d.ts +4 -4
- package/dist/esm/{node/plugin/shared → utils}/rollupSourceMap.js +4 -4
- package/package.json +3 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Public use
|
|
2
|
+
export { getGlobalContext };
|
|
2
3
|
export { getGlobalContextSync };
|
|
3
4
|
export { getGlobalContextAsync };
|
|
4
5
|
// Internal use
|
|
@@ -15,7 +16,6 @@ export { setGlobalContext_isProduction };
|
|
|
15
16
|
export { setGlobalContext_buildEntry };
|
|
16
17
|
export { clearGlobalContext };
|
|
17
18
|
export { assertBuildInfo };
|
|
18
|
-
export { getViteConfigRuntime };
|
|
19
19
|
export { updateUserFiles };
|
|
20
20
|
// The core logic revolves around:
|
|
21
21
|
// - globalObject.userFiles which is the main requirement for resolveGlobalContext()
|
|
@@ -56,13 +56,24 @@ function assertGlobalContextIsDefined() {
|
|
|
56
56
|
assertIsDefined(globalObject.globalContext);
|
|
57
57
|
assert(globalObject.globalContext_public);
|
|
58
58
|
}
|
|
59
|
-
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Get runtime information about your app.
|
|
61
|
+
*
|
|
62
|
+
* https://vike.dev/getGlobalContext
|
|
63
|
+
*/
|
|
64
|
+
async function getGlobalContext() {
|
|
65
|
+
debug('getGlobalContext()');
|
|
66
|
+
const { isProduction } = globalObject;
|
|
67
|
+
// This assertion cannot fail for vike-server users (because when using vike-server it's guaranteed that globalObject.isProduction is set before executing any user-land code and any Vike extension code).
|
|
68
|
+
assertUsage(isProduction !== undefined, "The global context isn't set yet, use getGlobalContextAsync() instead.");
|
|
69
|
+
assert(typeof globalObject.isProduction === 'boolean');
|
|
70
|
+
return await getGlobalContextAsync(isProduction);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get runtime information about your app.
|
|
74
|
+
*
|
|
75
|
+
* https://vike.dev/getGlobalContext
|
|
76
|
+
*/
|
|
66
77
|
async function getGlobalContextAsync(isProduction) {
|
|
67
78
|
debug('getGlobalContextAsync()');
|
|
68
79
|
assertUsage(typeof isProduction === 'boolean', `[getGlobalContextAsync(isProduction)] Argument ${pc.cyan('isProduction')} ${isProduction === undefined ? 'is missing' : `should be ${pc.cyan('true')} or ${pc.cyan('false')}`}`);
|
|
@@ -76,11 +87,29 @@ async function getGlobalContextAsync(isProduction) {
|
|
|
76
87
|
assert(globalContext_public);
|
|
77
88
|
return globalContext_public;
|
|
78
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Get runtime information about your app.
|
|
92
|
+
*
|
|
93
|
+
* https://vike.dev/getGlobalContext
|
|
94
|
+
*
|
|
95
|
+
* @deprecated
|
|
96
|
+
*/
|
|
97
|
+
function getGlobalContextSync() {
|
|
98
|
+
debug('getGlobalContextSync()');
|
|
99
|
+
const { globalContext_public } = globalObject;
|
|
100
|
+
assertUsage(globalContext_public, "The global context isn't set yet, call getGlobalContextSync() later or use getGlobalContext() instead.");
|
|
101
|
+
assertWarning(false,
|
|
102
|
+
// We discourage users from using it because using `pageContext.globalContext` is better: it doesn't have the race condition issue that `getGlobalContextSync()` would have when called inside React/Vue components.
|
|
103
|
+
// We're lying about "is going to be deprecated in the next major release": let's keep it and see if users need it (so far I can't see a use case for it).
|
|
104
|
+
'getGlobalContextSync() is going to be deprecated in the next major release, see https://vike.dev/getGlobalContext', { onlyOnce: true });
|
|
105
|
+
return globalContext_public;
|
|
106
|
+
}
|
|
79
107
|
function makePublic(globalContext) {
|
|
80
108
|
const globalContextPublic = makePublicCopy(globalContext, 'globalContext', [
|
|
81
109
|
'assetsManifest',
|
|
82
110
|
'config',
|
|
83
111
|
'viteConfig',
|
|
112
|
+
'viteConfigRuntime',
|
|
84
113
|
'pages',
|
|
85
114
|
'baseServer',
|
|
86
115
|
'baseAssets'
|
|
@@ -100,12 +129,12 @@ async function setGlobalContext_viteDevServer(viteDevServer) {
|
|
|
100
129
|
assertGlobalContextIsDefined();
|
|
101
130
|
globalObject.viteDevServerPromiseResolve(viteDevServer);
|
|
102
131
|
}
|
|
103
|
-
function setGlobalContext_viteConfig(viteConfig,
|
|
132
|
+
function setGlobalContext_viteConfig(viteConfig, viteConfigRuntime) {
|
|
104
133
|
if (globalObject.viteConfig)
|
|
105
134
|
return;
|
|
106
135
|
assertIsNotInitilizedYet();
|
|
107
136
|
globalObject.viteConfig = viteConfig;
|
|
108
|
-
globalObject.
|
|
137
|
+
globalObject.viteConfigRuntime = viteConfigRuntime;
|
|
109
138
|
}
|
|
110
139
|
function assertIsNotInitilizedYet() {
|
|
111
140
|
// In development, globalObject.viteDevServer always needs to be awaited for before initializing globalObject.globalContext
|
|
@@ -115,8 +144,13 @@ function setGlobalContext_isPrerendering() {
|
|
|
115
144
|
globalObject.isPrerendering = true;
|
|
116
145
|
setIsProduction(true);
|
|
117
146
|
}
|
|
118
|
-
function setGlobalContext_isProduction(isProduction) {
|
|
119
|
-
|
|
147
|
+
function setGlobalContext_isProduction(isProduction, tolerateContraditction) {
|
|
148
|
+
if (globalObject.isProduction === undefined) {
|
|
149
|
+
setIsProduction(isProduction);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
assert(globalObject.isProduction === isProduction || tolerateContraditction);
|
|
153
|
+
}
|
|
120
154
|
}
|
|
121
155
|
function getViteDevServer() {
|
|
122
156
|
return globalObject.viteDevServer ?? null;
|
|
@@ -140,7 +174,6 @@ async function initGlobalContext_runPrerender() {
|
|
|
140
174
|
globalObject.initGlobalContext_runPrerender_alreadyCalled = true;
|
|
141
175
|
assert(globalObject.isPrerendering);
|
|
142
176
|
assert(globalObject.viteConfig);
|
|
143
|
-
assert(globalObject.outDirRoot);
|
|
144
177
|
// We assume initGlobalContext_runPrerender() to be called before:
|
|
145
178
|
// - initGlobalContext_renderPage()
|
|
146
179
|
// - initGlobalContext_getGlobalContextAsync()
|
|
@@ -176,7 +209,7 @@ async function initGlobalContext() {
|
|
|
176
209
|
await waitForViteDevServer();
|
|
177
210
|
}
|
|
178
211
|
else {
|
|
179
|
-
await loadBuildEntry(globalObject.
|
|
212
|
+
await loadBuildEntry(globalObject.viteConfigRuntime?.build.outDir);
|
|
180
213
|
}
|
|
181
214
|
assertGlobalContextIsDefined();
|
|
182
215
|
globalObject.isInitialized = true;
|
|
@@ -199,7 +232,7 @@ function defineGlobalContext() {
|
|
|
199
232
|
onSetupRuntime();
|
|
200
233
|
}
|
|
201
234
|
function resolveGlobalContext() {
|
|
202
|
-
const { viteDevServer, viteConfig, isPrerendering, isProduction, userFiles } = globalObject;
|
|
235
|
+
const { viteDevServer, viteConfig, viteConfigRuntime, isPrerendering, isProduction, userFiles } = globalObject;
|
|
203
236
|
assert(typeof isProduction === 'boolean');
|
|
204
237
|
let globalContext;
|
|
205
238
|
if (!isProduction) {
|
|
@@ -208,8 +241,8 @@ function resolveGlobalContext() {
|
|
|
208
241
|
return null;
|
|
209
242
|
assert(userFiles); // main common requiement
|
|
210
243
|
assert(viteConfig);
|
|
244
|
+
assert(viteConfigRuntime);
|
|
211
245
|
assert(!isPrerendering);
|
|
212
|
-
const viteConfigRuntime = getViteConfigRuntime(viteConfig);
|
|
213
246
|
globalContext = {
|
|
214
247
|
isProduction: false,
|
|
215
248
|
isPrerendering: false,
|
|
@@ -309,14 +342,12 @@ async function loadBuildEntry(outDir) {
|
|
|
309
342
|
globalObject.buildEntry = globalObject.buildEntryPrevious;
|
|
310
343
|
}
|
|
311
344
|
assert(globalObject.buildEntry);
|
|
345
|
+
// If using `inject` then dist/server/index.js imports dist/server/entry.js and loadBuildEntry() isn't needed.
|
|
346
|
+
// If dist/server/entry.js isn't imported then this means the user is running the original server entry `$ ts-node server/index.ts`.
|
|
312
347
|
assertWarning(
|
|
313
|
-
// vike-server => `
|
|
314
|
-
// vike-node => `
|
|
315
|
-
globalObject.buildInfo?.viteConfigRuntime.vitePluginServerEntry.inject !== true,
|
|
316
|
-
/* TO-DO/eventually:
|
|
317
|
-
!!globalObject.buildInfo?.viteConfigRuntime.vitePluginServerEntry.inject,
|
|
318
|
-
*/
|
|
319
|
-
`Run the built server entry (e.g. ${pc.cyan('$ node dist/server/index.mjs')}) instead of the original server entry (e.g. ${pc.cyan('$ ts-node server/index.ts')})`, { onlyOnce: true });
|
|
348
|
+
// vike-server => `inject === true`
|
|
349
|
+
// vike-node => `inject === [ 'index' ]` => we don't show the warning to vike-node users (I don't remember why).
|
|
350
|
+
globalObject.buildInfo?.viteConfigRuntime.vitePluginServerEntry.inject !== true || globalObject.isPrerendering, `Run the built server entry (e.g. ${pc.cyan('$ node dist/server/index.mjs')}) instead of the original server entry (e.g. ${pc.cyan('$ ts-node server/index.ts')})`, { onlyOnce: true });
|
|
320
351
|
}
|
|
321
352
|
const { buildEntry } = globalObject;
|
|
322
353
|
assertBuildEntry(buildEntry);
|
|
@@ -352,25 +383,17 @@ function assertBuildInfo(buildInfo) {
|
|
|
352
383
|
assertVersionAtBuildTime(buildInfo.versionAtBuildTime);
|
|
353
384
|
assert(hasProp(buildInfo, 'viteConfigRuntime', 'object'));
|
|
354
385
|
assert(hasProp(buildInfo.viteConfigRuntime, '_baseViteOriginal', 'string'));
|
|
386
|
+
assert(hasProp(buildInfo.viteConfigRuntime, 'root', 'string'));
|
|
387
|
+
assert(hasProp(buildInfo.viteConfigRuntime, 'build', 'object'));
|
|
388
|
+
assert(hasProp(buildInfo.viteConfigRuntime.build, 'outDir', 'string'));
|
|
355
389
|
assert(hasProp(buildInfo.viteConfigRuntime, 'vitePluginServerEntry', 'object'));
|
|
356
390
|
assert(hasProp(buildInfo, 'usesClientRouter', 'boolean'));
|
|
357
|
-
checkType({ ...buildInfo, viteConfigRuntime: buildInfo.viteConfigRuntime });
|
|
358
391
|
}
|
|
359
392
|
function assertVersionAtBuildTime(versionAtBuildTime) {
|
|
360
393
|
const versionAtRuntime = PROJECT_VERSION;
|
|
361
394
|
const pretty = (version) => pc.bold(`vike@${version}`);
|
|
362
395
|
assertUsage(versionAtBuildTime === versionAtRuntime, `Re-build your app (you're using ${pretty(versionAtRuntime)} but your app was built with ${pretty(versionAtBuildTime)})`);
|
|
363
396
|
}
|
|
364
|
-
function getViteConfigRuntime(viteConfig) {
|
|
365
|
-
assert(hasProp(viteConfig, '_baseViteOriginal', 'string'));
|
|
366
|
-
const viteConfigRuntime = {
|
|
367
|
-
_baseViteOriginal: viteConfig._baseViteOriginal,
|
|
368
|
-
vitePluginServerEntry: {
|
|
369
|
-
inject: viteConfig.vitePluginServerEntry?.inject
|
|
370
|
-
}
|
|
371
|
-
};
|
|
372
|
-
return viteConfigRuntime;
|
|
373
|
-
}
|
|
374
397
|
async function updateUserFiles() {
|
|
375
398
|
const { promise, resolve } = genPromise();
|
|
376
399
|
assert(!globalObject.isProduction);
|
|
@@ -517,7 +517,6 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
|
|
|
517
517
|
if (isStreamReadableWeb(streamOriginal)) {
|
|
518
518
|
debug('onRenderHtml() hook returned Web Readable');
|
|
519
519
|
const readableOriginal = streamOriginal;
|
|
520
|
-
let controllerProxyIsClosed = false;
|
|
521
520
|
let isClosed = false;
|
|
522
521
|
let isCancel = false;
|
|
523
522
|
const closeStream = async () => {
|
|
@@ -526,7 +525,6 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
|
|
|
526
525
|
isClosed = true;
|
|
527
526
|
await onEnd(isCancel);
|
|
528
527
|
controllerProxy.close();
|
|
529
|
-
controllerProxyIsClosed = true;
|
|
530
528
|
};
|
|
531
529
|
let controllerProxy;
|
|
532
530
|
assertReadableStreamConstructor();
|
|
@@ -554,8 +552,8 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
|
|
|
554
552
|
});
|
|
555
553
|
const writeChunk = (chunk) => {
|
|
556
554
|
if (
|
|
557
|
-
// If readableOriginal doesn't implement readableOriginal.cancel() then it may still emit data after we close the stream. We therefore need to check whether
|
|
558
|
-
!
|
|
555
|
+
// If readableOriginal doesn't implement readableOriginal.cancel() then it may still emit data after we close the stream. We therefore need to check whether the steam is closed.
|
|
556
|
+
!isClosed) {
|
|
559
557
|
controllerProxy.enqueue(encodeForWebStream(chunk));
|
|
560
558
|
debugWithChunk('data written (Web Readable)', chunk);
|
|
561
559
|
}
|
|
@@ -2,7 +2,7 @@ export { renderPage } from './renderPage.js';
|
|
|
2
2
|
export { escapeInject, dangerouslySkipEscape } from './html/renderHtml.js';
|
|
3
3
|
export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './html/stream.js';
|
|
4
4
|
export { PROJECT_VERSION as version } from './utils.js';
|
|
5
|
-
export { getGlobalContextSync, getGlobalContextAsync } from './globalContext.js';
|
|
5
|
+
export { getGlobalContext, getGlobalContextSync, getGlobalContextAsync } from './globalContext.js';
|
|
6
6
|
export { createDevMiddleware } from '../runtime-dev/index.js';
|
|
7
7
|
export { injectAssets__public as _injectAssets } from './html/injectAssets/injectAssets__public.js';
|
|
8
8
|
export { createPageRenderer } from '../createPageRenderer.js';
|
|
@@ -2,7 +2,7 @@ export { renderPage } from './renderPage.js';
|
|
|
2
2
|
export { escapeInject, dangerouslySkipEscape } from './html/renderHtml.js';
|
|
3
3
|
export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './html/stream.js';
|
|
4
4
|
export { PROJECT_VERSION as version } from './utils.js';
|
|
5
|
-
export { getGlobalContextSync, getGlobalContextAsync } from './globalContext.js';
|
|
5
|
+
export { getGlobalContext, getGlobalContextSync, getGlobalContextAsync } from './globalContext.js';
|
|
6
6
|
export { createDevMiddleware } from '../runtime-dev/index.js';
|
|
7
7
|
// TODO/v1-release: remove
|
|
8
8
|
export { injectAssets__public as _injectAssets } from './html/injectAssets/injectAssets__public.js';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { renderPageAlreadyRouted };
|
|
2
2
|
export { prerenderPage };
|
|
3
|
-
export { prerender404Page };
|
|
4
3
|
export { getPageContextInitEnhanced };
|
|
5
4
|
export { createPageContext };
|
|
6
5
|
export type { PageContextAfterRender };
|
|
@@ -28,7 +27,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
28
27
|
_httpRequestId: number | null;
|
|
29
28
|
_usesClientRouter: boolean;
|
|
30
29
|
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
31
|
-
is404:
|
|
30
|
+
is404: boolean;
|
|
32
31
|
}): Promise<{
|
|
33
32
|
documentHtml: string;
|
|
34
33
|
pageContextSerialized: null;
|
|
@@ -54,9 +53,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
54
53
|
_globalContext: GlobalContextInternal;
|
|
55
54
|
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
56
55
|
globalContext: Pick<{
|
|
57
|
-
viteConfigRuntime:
|
|
58
|
-
_baseViteOriginal: null | string;
|
|
59
|
-
};
|
|
56
|
+
viteConfigRuntime: import("../../plugin/shared/getViteConfigRuntime.js").ViteConfigRuntime;
|
|
60
57
|
config: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigUserFriendly["config"];
|
|
61
58
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
62
59
|
} & import("../../shared/resolveBase.js").BaseUrlsResolved & ({
|
|
@@ -85,7 +82,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
85
82
|
isPrerendering: true;
|
|
86
83
|
usesClientRouter: boolean;
|
|
87
84
|
viteConfig: import("vite").ResolvedConfig;
|
|
88
|
-
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig">;
|
|
85
|
+
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig" | "viteConfigRuntime">;
|
|
89
86
|
_pageContextInit: {
|
|
90
87
|
urlOriginal: string;
|
|
91
88
|
headersOriginal?: unknown;
|
|
@@ -114,7 +111,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
114
111
|
_httpRequestId: number | null;
|
|
115
112
|
_usesClientRouter: boolean;
|
|
116
113
|
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
117
|
-
is404:
|
|
114
|
+
is404: boolean;
|
|
118
115
|
} & {
|
|
119
116
|
isClientSideNavigation: boolean;
|
|
120
117
|
_urlHandler: null;
|
|
@@ -144,9 +141,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
144
141
|
_globalContext: GlobalContextInternal;
|
|
145
142
|
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
146
143
|
globalContext: Pick<{
|
|
147
|
-
viteConfigRuntime:
|
|
148
|
-
_baseViteOriginal: null | string;
|
|
149
|
-
};
|
|
144
|
+
viteConfigRuntime: import("../../plugin/shared/getViteConfigRuntime.js").ViteConfigRuntime;
|
|
150
145
|
config: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigUserFriendly["config"];
|
|
151
146
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
152
147
|
} & import("../../shared/resolveBase.js").BaseUrlsResolved & ({
|
|
@@ -175,7 +170,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
175
170
|
isPrerendering: true;
|
|
176
171
|
usesClientRouter: boolean;
|
|
177
172
|
viteConfig: import("vite").ResolvedConfig;
|
|
178
|
-
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig">;
|
|
173
|
+
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig" | "viteConfigRuntime">;
|
|
179
174
|
_pageContextInit: {
|
|
180
175
|
urlOriginal: string;
|
|
181
176
|
headersOriginal?: unknown;
|
|
@@ -204,193 +199,12 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
204
199
|
_httpRequestId: number | null;
|
|
205
200
|
_usesClientRouter: boolean;
|
|
206
201
|
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
207
|
-
is404:
|
|
202
|
+
is404: boolean;
|
|
208
203
|
} & {
|
|
209
204
|
isClientSideNavigation: boolean;
|
|
210
205
|
_urlHandler: null;
|
|
211
206
|
};
|
|
212
207
|
}>;
|
|
213
|
-
declare function prerender404Page(pageContextInit_: Record<string, unknown> | null, globalContext: GlobalContextInternal): Promise<{
|
|
214
|
-
documentHtml: string;
|
|
215
|
-
pageContextSerialized: null;
|
|
216
|
-
pageContext: {
|
|
217
|
-
_isPageContextObject: boolean;
|
|
218
|
-
isClientSide: boolean;
|
|
219
|
-
isPrerendering: boolean;
|
|
220
|
-
} & Record<string, unknown> & {
|
|
221
|
-
urlOriginal: string;
|
|
222
|
-
headersOriginal?: unknown;
|
|
223
|
-
headers?: unknown;
|
|
224
|
-
} & {
|
|
225
|
-
_objectCreatedByVike: boolean;
|
|
226
|
-
_baseServer: string;
|
|
227
|
-
_baseAssets: string;
|
|
228
|
-
_includeAssetsImportedByServer: boolean;
|
|
229
|
-
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
230
|
-
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
231
|
-
_pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
232
|
-
_allPageIds: string[];
|
|
233
|
-
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
234
|
-
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
235
|
-
_globalContext: GlobalContextInternal;
|
|
236
|
-
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
237
|
-
globalContext: Pick<{
|
|
238
|
-
viteConfigRuntime: {
|
|
239
|
-
_baseViteOriginal: null | string;
|
|
240
|
-
};
|
|
241
|
-
config: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigUserFriendly["config"];
|
|
242
|
-
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
243
|
-
} & import("../../shared/resolveBase.js").BaseUrlsResolved & ({
|
|
244
|
-
pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
245
|
-
pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
246
|
-
pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
247
|
-
allPageIds: string[];
|
|
248
|
-
pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
249
|
-
onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
250
|
-
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
251
|
-
config: import("../../../types/index.js").ConfigResolved;
|
|
252
|
-
} & ({
|
|
253
|
-
isProduction: false;
|
|
254
|
-
isPrerendering: false;
|
|
255
|
-
viteConfig: import("vite").ResolvedConfig;
|
|
256
|
-
viteDevServer: import("vite").ViteDevServer;
|
|
257
|
-
assetsManifest: null;
|
|
258
|
-
} | ({
|
|
259
|
-
isProduction: true;
|
|
260
|
-
assetsManifest: import("../../shared/ViteManifest.js").ViteManifest;
|
|
261
|
-
viteDevServer: null;
|
|
262
|
-
} & ({
|
|
263
|
-
isPrerendering: false;
|
|
264
|
-
viteConfig: null;
|
|
265
|
-
} | {
|
|
266
|
-
isPrerendering: true;
|
|
267
|
-
usesClientRouter: boolean;
|
|
268
|
-
viteConfig: import("vite").ResolvedConfig;
|
|
269
|
-
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig">;
|
|
270
|
-
_pageContextInit: {
|
|
271
|
-
urlOriginal: string;
|
|
272
|
-
headersOriginal?: unknown;
|
|
273
|
-
headers?: unknown;
|
|
274
|
-
};
|
|
275
|
-
_urlRewrite: string | null;
|
|
276
|
-
_urlHandler: ((url: string) => string) | null;
|
|
277
|
-
isClientSideNavigation: boolean;
|
|
278
|
-
} & {
|
|
279
|
-
urlParsed: import("../utils.js").UrlPublic;
|
|
280
|
-
urlPathname: string;
|
|
281
|
-
url: string;
|
|
282
|
-
} & {
|
|
283
|
-
headers: Record<string, string> | null;
|
|
284
|
-
} & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
|
|
285
|
-
Page: unknown;
|
|
286
|
-
_isHtmlOnly: boolean;
|
|
287
|
-
_passToClient: string[];
|
|
288
|
-
_pageFilePathsLoaded: string[];
|
|
289
|
-
} & {
|
|
290
|
-
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
291
|
-
} & {
|
|
292
|
-
routeParams: Record<string, string>;
|
|
293
|
-
pageId: string;
|
|
294
|
-
_urlRewrite: null;
|
|
295
|
-
_httpRequestId: number | null;
|
|
296
|
-
_usesClientRouter: boolean;
|
|
297
|
-
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
298
|
-
is404: null | boolean;
|
|
299
|
-
} & {
|
|
300
|
-
isClientSideNavigation: boolean;
|
|
301
|
-
_urlHandler: null;
|
|
302
|
-
};
|
|
303
|
-
} | {
|
|
304
|
-
documentHtml: string;
|
|
305
|
-
pageContextSerialized: string;
|
|
306
|
-
pageContext: {
|
|
307
|
-
_isPageContextObject: boolean;
|
|
308
|
-
isClientSide: boolean;
|
|
309
|
-
isPrerendering: boolean;
|
|
310
|
-
} & Record<string, unknown> & {
|
|
311
|
-
urlOriginal: string;
|
|
312
|
-
headersOriginal?: unknown;
|
|
313
|
-
headers?: unknown;
|
|
314
|
-
} & {
|
|
315
|
-
_objectCreatedByVike: boolean;
|
|
316
|
-
_baseServer: string;
|
|
317
|
-
_baseAssets: string;
|
|
318
|
-
_includeAssetsImportedByServer: boolean;
|
|
319
|
-
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
320
|
-
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
321
|
-
_pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
322
|
-
_allPageIds: string[];
|
|
323
|
-
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
324
|
-
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
325
|
-
_globalContext: GlobalContextInternal;
|
|
326
|
-
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
327
|
-
globalContext: Pick<{
|
|
328
|
-
viteConfigRuntime: {
|
|
329
|
-
_baseViteOriginal: null | string;
|
|
330
|
-
};
|
|
331
|
-
config: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigUserFriendly["config"];
|
|
332
|
-
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
333
|
-
} & import("../../shared/resolveBase.js").BaseUrlsResolved & ({
|
|
334
|
-
pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
335
|
-
pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
336
|
-
pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
337
|
-
allPageIds: string[];
|
|
338
|
-
pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
339
|
-
onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
340
|
-
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
341
|
-
config: import("../../../types/index.js").ConfigResolved;
|
|
342
|
-
} & ({
|
|
343
|
-
isProduction: false;
|
|
344
|
-
isPrerendering: false;
|
|
345
|
-
viteConfig: import("vite").ResolvedConfig;
|
|
346
|
-
viteDevServer: import("vite").ViteDevServer;
|
|
347
|
-
assetsManifest: null;
|
|
348
|
-
} | ({
|
|
349
|
-
isProduction: true;
|
|
350
|
-
assetsManifest: import("../../shared/ViteManifest.js").ViteManifest;
|
|
351
|
-
viteDevServer: null;
|
|
352
|
-
} & ({
|
|
353
|
-
isPrerendering: false;
|
|
354
|
-
viteConfig: null;
|
|
355
|
-
} | {
|
|
356
|
-
isPrerendering: true;
|
|
357
|
-
usesClientRouter: boolean;
|
|
358
|
-
viteConfig: import("vite").ResolvedConfig;
|
|
359
|
-
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig">;
|
|
360
|
-
_pageContextInit: {
|
|
361
|
-
urlOriginal: string;
|
|
362
|
-
headersOriginal?: unknown;
|
|
363
|
-
headers?: unknown;
|
|
364
|
-
};
|
|
365
|
-
_urlRewrite: string | null;
|
|
366
|
-
_urlHandler: ((url: string) => string) | null;
|
|
367
|
-
isClientSideNavigation: boolean;
|
|
368
|
-
} & {
|
|
369
|
-
urlParsed: import("../utils.js").UrlPublic;
|
|
370
|
-
urlPathname: string;
|
|
371
|
-
url: string;
|
|
372
|
-
} & {
|
|
373
|
-
headers: Record<string, string> | null;
|
|
374
|
-
} & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
|
|
375
|
-
Page: unknown;
|
|
376
|
-
_isHtmlOnly: boolean;
|
|
377
|
-
_passToClient: string[];
|
|
378
|
-
_pageFilePathsLoaded: string[];
|
|
379
|
-
} & {
|
|
380
|
-
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
381
|
-
} & {
|
|
382
|
-
routeParams: Record<string, string>;
|
|
383
|
-
pageId: string;
|
|
384
|
-
_urlRewrite: null;
|
|
385
|
-
_httpRequestId: number | null;
|
|
386
|
-
_usesClientRouter: boolean;
|
|
387
|
-
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
388
|
-
is404: null | boolean;
|
|
389
|
-
} & {
|
|
390
|
-
isClientSideNavigation: boolean;
|
|
391
|
-
_urlHandler: null;
|
|
392
|
-
};
|
|
393
|
-
} | null>;
|
|
394
208
|
type PageContextInitEnhanced = Awaited<ReturnType<typeof getPageContextInitEnhanced>>;
|
|
395
209
|
declare function getPageContextInitEnhanced(pageContextInit: {
|
|
396
210
|
urlOriginal: string;
|
|
@@ -424,9 +238,7 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
424
238
|
_globalContext: GlobalContextInternal;
|
|
425
239
|
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
426
240
|
globalContext: Pick<{
|
|
427
|
-
viteConfigRuntime:
|
|
428
|
-
_baseViteOriginal: null | string;
|
|
429
|
-
};
|
|
241
|
+
viteConfigRuntime: import("../../plugin/shared/getViteConfigRuntime.js").ViteConfigRuntime;
|
|
430
242
|
config: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigUserFriendly["config"];
|
|
431
243
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
432
244
|
} & import("../../shared/resolveBase.js").BaseUrlsResolved & ({
|
|
@@ -455,7 +267,7 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
455
267
|
isPrerendering: true;
|
|
456
268
|
usesClientRouter: boolean;
|
|
457
269
|
viteConfig: import("vite").ResolvedConfig;
|
|
458
|
-
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig">;
|
|
270
|
+
})))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig" | "viteConfigRuntime">;
|
|
459
271
|
_pageContextInit: {
|
|
460
272
|
urlOriginal: string;
|
|
461
273
|
headersOriginal?: unknown;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { renderPageAlreadyRouted };
|
|
2
2
|
export { prerenderPage };
|
|
3
|
-
export { prerender404Page };
|
|
4
3
|
export { getPageContextInitEnhanced };
|
|
5
4
|
export { createPageContext };
|
|
6
5
|
import { getErrorPageId } from '../../../shared/error-page.js';
|
|
@@ -80,28 +79,6 @@ async function prerenderPage(pageContext) {
|
|
|
80
79
|
return { documentHtml, pageContextSerialized, pageContext };
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
|
-
async function prerender404Page(pageContextInit_, globalContext) {
|
|
84
|
-
const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
|
|
85
|
-
if (!errorPageId) {
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
// A URL is required for `viteDevServer.transformIndexHtml(url,html)`
|
|
89
|
-
const pageContextInit = { urlOriginal: '/fake-404-url' };
|
|
90
|
-
objectAssign(pageContextInit, pageContextInit_);
|
|
91
|
-
const pageContext = await getPageContextInitEnhanced(pageContextInit, globalContext, true);
|
|
92
|
-
objectAssign(pageContext, {
|
|
93
|
-
pageId: errorPageId,
|
|
94
|
-
_httpRequestId: null,
|
|
95
|
-
_urlRewrite: null,
|
|
96
|
-
is404: true,
|
|
97
|
-
routeParams: {},
|
|
98
|
-
// `prerender404Page()` is about generating `dist/client/404.html` for static hosts; there is no Client Routing.
|
|
99
|
-
_usesClientRouter: false,
|
|
100
|
-
_debugRouteMatches: []
|
|
101
|
-
});
|
|
102
|
-
objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
|
|
103
|
-
return prerenderPage(pageContext);
|
|
104
|
-
}
|
|
105
82
|
async function getPageContextInitEnhanced(pageContextInit, globalContext, isPrerendering, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
|
|
106
83
|
urlRewrite: null,
|
|
107
84
|
urlHandler: null,
|
|
@@ -8,7 +8,7 @@ import { setGlobalContext_isProduction } from '../runtime/globalContext.js';
|
|
|
8
8
|
* https://vike.dev/createDevMiddleware
|
|
9
9
|
*/
|
|
10
10
|
async function createDevMiddleware(options = {}) {
|
|
11
|
-
setGlobalContext_isProduction(false);
|
|
11
|
+
setGlobalContext_isProduction(false, true);
|
|
12
12
|
const optionsMod = {
|
|
13
13
|
...options,
|
|
14
14
|
viteConfig: {
|
|
@@ -10,4 +10,4 @@ type ConfigDefinedAt = `Config ${string} defined at ${string}`;
|
|
|
10
10
|
declare function getConfigDefinedAt<SentenceBegin extends 'Config' | 'config', ConfigName extends string>(sentenceBegin: SentenceBegin, configName: ConfigName, definedAtData: NonNullable<DefinedAtData>): `${SentenceBegin} ${ConfigName} defined at ${string}`;
|
|
11
11
|
declare function getConfigDefinedAtOptional<SentenceBegin extends 'Config' | 'config', ConfigName extends string>(sentenceBegin: SentenceBegin, configName: ConfigName, definedAtData: DefinedAtData): `${SentenceBegin} ${ConfigName} defined ${'internally' | `at ${string}`}`;
|
|
12
12
|
declare function getDefinedAtString(definedAtData: NonNullable<DefinedAtData>, configName: string): string;
|
|
13
|
-
declare function getDefinedByString(definedAt: DefinedBy, configName: string): `API call
|
|
13
|
+
declare function getDefinedByString(definedAt: DefinedBy, configName: string): `API call ${string}({ vikeConfig: { ${string} } })` | `CLI option --${string}` | `environment variable VIKE_CONFIG="{${string}}"`;
|
|
@@ -67,7 +67,7 @@ async function getPageContextFromHook(onBeforeRouteHook, pageContext) {
|
|
|
67
67
|
if (hasProp(hookReturn.pageContext, 'urlLogical')) {
|
|
68
68
|
assertUsageUrlPathnameAbsolute(
|
|
69
69
|
// We skip validation and type-cast instead of assertUsage() in order to save client-side KBs
|
|
70
|
-
hookReturn.pageContext.urlLogical, `${errPrefix} returned ${pc.cyan('{ pageContext: { urlLogical } }')}
|
|
70
|
+
hookReturn.pageContext.urlLogical, `${errPrefix} returned ${pc.cyan('{ pageContext: { urlLogical } }')} and ${pc.cyan('urlLogical')}`);
|
|
71
71
|
}
|
|
72
72
|
assertPageContextProvidedByUser(hookReturn.pageContext, {
|
|
73
73
|
hookFilePath: onBeforeRouteHook.hookFilePath,
|
|
@@ -30,4 +30,4 @@ type RouteMatch = {
|
|
|
30
30
|
routeParams: Record<string, string>;
|
|
31
31
|
};
|
|
32
32
|
type RouteMatches = 'CUSTOM_ROUTING' | RouteMatch[];
|
|
33
|
-
declare function route(pageContext: PageContextForRoute): Promise<PageContextFromRoute>;
|
|
33
|
+
declare function route(pageContext: PageContextForRoute, skipOnBeforeRouteHook?: true): Promise<PageContextFromRoute>;
|
|
@@ -13,23 +13,25 @@ import { resolveRouteFunction } from './resolveRouteFunction.js';
|
|
|
13
13
|
import { executeOnBeforeRouteHook } from './executeOnBeforeRouteHook.js';
|
|
14
14
|
import { debug } from './debug.js';
|
|
15
15
|
import pc from '@brillout/picocolors';
|
|
16
|
-
async function route(pageContext) {
|
|
16
|
+
async function route(pageContext, skipOnBeforeRouteHook) {
|
|
17
17
|
debug('Pages routes:', pageContext._pageRoutes);
|
|
18
18
|
assertPageContextUrl(pageContext);
|
|
19
19
|
const pageContextFromRoute = {};
|
|
20
20
|
// onBeforeRoute()
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (pageContextFromOnBeforeRouteHook
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
if (!skipOnBeforeRouteHook) {
|
|
22
|
+
const pageContextFromOnBeforeRouteHook = await executeOnBeforeRouteHook(pageContext);
|
|
23
|
+
if (pageContextFromOnBeforeRouteHook) {
|
|
24
|
+
if (pageContextFromOnBeforeRouteHook._routingProvidedByOnBeforeRouteHook) {
|
|
25
|
+
assert(pageContextFromOnBeforeRouteHook.pageId);
|
|
26
|
+
return pageContextFromOnBeforeRouteHook;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
objectAssign(pageContextFromRoute, pageContextFromOnBeforeRouteHook);
|
|
30
|
+
}
|
|
29
31
|
}
|
|
32
|
+
// We take into account pageContext.urlLogical set by onBeforeRoute()
|
|
33
|
+
objectAssign(pageContext, pageContextFromOnBeforeRouteHook);
|
|
30
34
|
}
|
|
31
|
-
// We take into account pageContext.urlLogical set by onBeforeRoute()
|
|
32
|
-
objectAssign(pageContext, pageContextFromOnBeforeRouteHook);
|
|
33
35
|
// Vike's routing
|
|
34
36
|
const allPageIds = pageContext._allPageIds;
|
|
35
37
|
assertUsage(allPageIds.length > 0, 'No page found. You must create at least one page.');
|
|
@@ -120,11 +120,9 @@ type PageContextBuiltInCommon<Data> = {
|
|
|
120
120
|
/** @experimental https://github.com/vikejs/vike/issues/1268 */
|
|
121
121
|
sources: Sources;
|
|
122
122
|
/**
|
|
123
|
-
*
|
|
123
|
+
* Runtime information about your app.
|
|
124
124
|
*
|
|
125
125
|
* https://vike.dev/getGlobalContext
|
|
126
|
-
*
|
|
127
|
-
* @experimental
|
|
128
126
|
*/
|
|
129
127
|
globalContext: GlobalContextPublic;
|
|
130
128
|
/** @deprecated */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.228-commit-1553dee";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.
|
|
2
|
+
export const PROJECT_VERSION = '0.4.228-commit-1553dee';
|