vike 0.4.171-commit-75e1588 → 0.4.171-commit-6e37128
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/plugin/plugins/buildConfig.js +3 -4
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +30 -74
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +4 -42
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +9 -49
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
- package/dist/cjs/node/prerender/runPrerender.js +33 -13
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +9 -7
- package/dist/cjs/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +1 -1
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +7 -7
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +6 -5
- package/dist/cjs/node/shared/assertV1Design.js +3 -4
- package/dist/cjs/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +2 -2
- package/dist/cjs/shared/hooks/getHook.js +2 -2
- package/dist/cjs/shared/page-configs/getConfigValue.js +14 -17
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +70 -0
- package/dist/cjs/shared/page-configs/loadConfigValues.js +3 -12
- package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +1 -2
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +110 -16
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +198 -0
- package/dist/cjs/shared/route/index.js +2 -2
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
- package/dist/cjs/shared/route/resolveRouteFunction.js +2 -2
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/changeEnumerable.js +9 -0
- package/dist/cjs/utils/hasProp.js +5 -7
- package/dist/cjs/utils/objectAssign.js +1 -1
- package/dist/cjs/utils/objectDefineProperty.js +8 -0
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +6 -4
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -3
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +14 -10
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +4 -4
- package/dist/esm/client/shared/loadUserFilesClientSide.js +4 -4
- package/dist/esm/node/plugin/plugins/buildConfig.js +3 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +30 -74
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +4 -42
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +9 -49
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
- package/dist/esm/node/prerender/runPrerender.js +35 -15
- package/dist/esm/node/prerender/utils.d.ts +1 -0
- package/dist/esm/node/prerender/utils.js +1 -0
- package/dist/esm/node/runtime/renderPage/analyzePage.js +9 -7
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -2
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +7 -7
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -9
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +27 -50
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +6 -5
- package/dist/esm/node/shared/assertV1Design.d.ts +2 -2
- package/dist/esm/node/shared/assertV1Design.js +3 -4
- package/dist/esm/shared/{addUrlComputedProps.d.ts → getPageContextUrlComputed.d.ts} +23 -21
- package/dist/esm/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/esm/shared/hooks/getHook.d.ts +2 -2
- package/dist/esm/shared/hooks/getHook.js +3 -3
- package/dist/esm/shared/page-configs/PageConfig.d.ts +10 -4
- package/dist/esm/shared/page-configs/getConfigValue.d.ts +12 -12
- package/dist/esm/shared/page-configs/getConfigValue.js +13 -16
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.d.ts +9 -0
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +67 -0
- package/dist/esm/shared/page-configs/loadConfigValues.js +3 -12
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +15 -19
- package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.js +1 -2
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +4 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +109 -15
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +5 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +192 -0
- package/dist/esm/shared/route/index.d.ts +3 -3
- package/dist/esm/shared/route/index.js +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +3 -3
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
- package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
- package/dist/esm/shared/types.d.ts +4 -4
- package/dist/esm/shared/utils.d.ts +2 -0
- package/dist/esm/shared/utils.js +2 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/changeEnumerable.d.ts +2 -0
- package/dist/esm/utils/changeEnumerable.js +5 -0
- package/dist/esm/utils/hasProp.d.ts +4 -13
- package/dist/esm/utils/hasProp.js +5 -7
- package/dist/esm/utils/objectAssign.js +1 -1
- package/dist/esm/utils/objectDefineProperty.d.ts +4 -0
- package/dist/esm/utils/objectDefineProperty.js +4 -0
- package/dist/esm/utils/projectInfo.d.ts +2 -2
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -101
- package/dist/cjs/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -14
- package/dist/cjs/node/shared/getClientEntry.js +0 -12
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +0 -85
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -24
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +0 -49
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.d.ts +0 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -95
- package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.d.ts +0 -5
- package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -11
- package/dist/esm/node/shared/getClientEntry.d.ts +0 -3
- package/dist/esm/node/shared/getClientEntry.js +0 -9
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.d.ts +0 -4
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +0 -82
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.d.ts +0 -4
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -21
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.d.ts +0 -6
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +0 -46
|
@@ -5,7 +5,7 @@ export { runPrerender_forceExit };
|
|
|
5
5
|
import '../runtime/page-files/setup.js';
|
|
6
6
|
import path from 'path';
|
|
7
7
|
import { route } from '../../shared/route/index.js';
|
|
8
|
-
import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable, getOutDirs, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, handleNodeEnv_prerender, pLimit, assertPathFilesystemAbsolute, isArray } from './utils.js';
|
|
8
|
+
import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable, getOutDirs, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, handleNodeEnv_prerender, pLimit, assertPathFilesystemAbsolute, isArray, changeEnumerable } from './utils.js';
|
|
9
9
|
import { prerenderPage, prerender404Page, getRenderContext, getPageContextInitEnhanced } from '../runtime/renderPage/renderPageAlreadyRouted.js';
|
|
10
10
|
import pc from '@brillout/picocolors';
|
|
11
11
|
import { cpus } from 'os';
|
|
@@ -16,10 +16,10 @@ import { getPageFilesServerSide } from '../../shared/getPageFiles.js';
|
|
|
16
16
|
import { getPageContextRequestUrl } from '../../shared/getPageContextRequestUrl.js';
|
|
17
17
|
import { getUrlFromRouteString } from '../../shared/route/resolveRouteString.js';
|
|
18
18
|
import { getConfigValueFilePathToShowToUser } from '../../shared/page-configs/helpers.js';
|
|
19
|
-
import {
|
|
19
|
+
import { getConfigValueRuntime } from '../../shared/page-configs/getConfigValue.js';
|
|
20
20
|
import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
|
|
21
21
|
import { isErrorPage } from '../../shared/error-page.js';
|
|
22
|
-
import {
|
|
22
|
+
import { getPageContextUrlComputed } from '../../shared/getPageContextUrlComputed.js';
|
|
23
23
|
import { isAbortError } from '../../shared/route/abort.js';
|
|
24
24
|
import { loadUserFilesServerSide } from '../runtime/renderPage/loadUserFilesServerSide.js';
|
|
25
25
|
import { getHookFromPageConfig, getHookFromPageConfigGlobal, getHookTimeoutDefault, setIsPrerenderering } from '../../shared/hooks/getHook.js';
|
|
@@ -27,6 +27,7 @@ import { noRouteMatch } from '../../shared/route/noRouteMatch.js';
|
|
|
27
27
|
import { getVikeConfig } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
|
|
28
28
|
import { logErrorHint } from '../runtime/renderPage/logErrorHint.js';
|
|
29
29
|
import { executeHook, isUserHookError } from '../../shared/hooks/executeHook.js';
|
|
30
|
+
import { getConfigValueBuildTime } from '../../shared/page-configs/getConfigValueBuildTime.js';
|
|
30
31
|
async function runPrerenderFromAPI(options = {}) {
|
|
31
32
|
await runPrerender(options, 'prerender()');
|
|
32
33
|
// - 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.
|
|
@@ -114,7 +115,7 @@ async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerend
|
|
|
114
115
|
// V1 design
|
|
115
116
|
pageConfigs.forEach((pageConfig) => {
|
|
116
117
|
const configName = 'prerender';
|
|
117
|
-
const configValue =
|
|
118
|
+
const configValue = getConfigValueBuildTime(pageConfig, configName, 'boolean');
|
|
118
119
|
if (configValue?.value === false) {
|
|
119
120
|
const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(configValue.definedAtData);
|
|
120
121
|
assert(configValueFilePathToShowToUser);
|
|
@@ -240,9 +241,9 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, renderContext,
|
|
|
240
241
|
prerenderContext.pageContexts.push(pageContextNew);
|
|
241
242
|
if (pageContext) {
|
|
242
243
|
objectAssign(pageContextNew, {
|
|
243
|
-
_pageContextAlreadyProvidedByOnPrerenderHook: true
|
|
244
|
-
...pageContext
|
|
244
|
+
_pageContextAlreadyProvidedByOnPrerenderHook: true
|
|
245
245
|
});
|
|
246
|
+
objectAssign(pageContextNew, pageContext);
|
|
246
247
|
}
|
|
247
248
|
});
|
|
248
249
|
})));
|
|
@@ -300,14 +301,11 @@ function createPageContext(urlOriginal, renderContext, prerenderContext) {
|
|
|
300
301
|
_prerenderContext: prerenderContext
|
|
301
302
|
};
|
|
302
303
|
const pageContextInit = {
|
|
303
|
-
urlOriginal
|
|
304
|
-
...prerenderContext.pageContextInit
|
|
304
|
+
urlOriginal
|
|
305
305
|
};
|
|
306
|
+
objectAssign(pageContextInit, prerenderContext.pageContextInit);
|
|
306
307
|
{
|
|
307
|
-
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit, renderContext
|
|
308
|
-
// We set `enumerable` to `false` to avoid computed URL properties from being iterated & copied in a onPrerenderStart() hook, e.g. /examples/i18n/
|
|
309
|
-
urlComputedPropsNonEnumerable: true
|
|
310
|
-
});
|
|
308
|
+
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit, renderContext);
|
|
311
309
|
objectAssign(pageContext, pageContextInitEnhanced);
|
|
312
310
|
}
|
|
313
311
|
return pageContext;
|
|
@@ -382,6 +380,8 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
|
|
|
382
380
|
pageContext._urlOriginalBeforeHook = pageContext.urlOriginal;
|
|
383
381
|
});
|
|
384
382
|
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
383
|
+
// Set `enumerable` to `false` to avoid computed URL properties from being iterated & copied in onPrerenderStart() hook, e.g. /examples/i18n/
|
|
384
|
+
const { restoreEnumerable, addPageContextComputedUrl } = makePageContextComputedUrlNonEnumerable(prerenderContext.pageContexts);
|
|
385
385
|
let result = await executeHook(() => hookFn({
|
|
386
386
|
pageContexts: prerenderContext.pageContexts,
|
|
387
387
|
// TODO/v1-release: remove warning
|
|
@@ -393,6 +393,7 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
|
|
|
393
393
|
return prerenderContext.pageContexts;
|
|
394
394
|
}
|
|
395
395
|
}), onPrerenderStartHook, null);
|
|
396
|
+
restoreEnumerable();
|
|
396
397
|
if (result === null || result === undefined) {
|
|
397
398
|
return;
|
|
398
399
|
}
|
|
@@ -430,9 +431,8 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
|
|
|
430
431
|
hookName
|
|
431
432
|
};
|
|
432
433
|
}
|
|
433
|
-
// Restore as URL computed props are lost when user makes a pageContext copy
|
|
434
|
-
addUrlComputedProps(pageContext);
|
|
435
434
|
});
|
|
435
|
+
addPageContextComputedUrl(prerenderContext.pageContexts);
|
|
436
436
|
}
|
|
437
437
|
async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete) {
|
|
438
438
|
const globalContext = getGlobalContext();
|
|
@@ -474,7 +474,7 @@ async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete)
|
|
|
474
474
|
if (pageContext._pageConfigs.length > 0) {
|
|
475
475
|
const pageConfig = pageContext._pageConfigs.find((p) => p.pageId === pageId);
|
|
476
476
|
assert(pageConfig);
|
|
477
|
-
usesClientRouter =
|
|
477
|
+
usesClientRouter = getConfigValueRuntime(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
478
478
|
}
|
|
479
479
|
else {
|
|
480
480
|
usesClientRouter = globalContext.pluginManifest.usesClientRouter;
|
|
@@ -714,3 +714,23 @@ function assertIsNotAbort(err, urlOr404) {
|
|
|
714
714
|
assert(abortCall);
|
|
715
715
|
assertUsage(false, `${pc.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOr404} but ${pc.cyan(abortCaller)} isn't supported for pre-rendered pages`);
|
|
716
716
|
}
|
|
717
|
+
function makePageContextComputedUrlNonEnumerable(pageContexts) {
|
|
718
|
+
change(false);
|
|
719
|
+
return { restoreEnumerable, addPageContextComputedUrl };
|
|
720
|
+
function restoreEnumerable() {
|
|
721
|
+
change(true);
|
|
722
|
+
}
|
|
723
|
+
function addPageContextComputedUrl(pageContexts) {
|
|
724
|
+
// Add URL computed props to the user-generated pageContext copies
|
|
725
|
+
pageContexts.forEach((pageContext) => {
|
|
726
|
+
const pageContextUrlComputed = getPageContextUrlComputed(pageContext);
|
|
727
|
+
objectAssign(pageContext, pageContextUrlComputed);
|
|
728
|
+
});
|
|
729
|
+
}
|
|
730
|
+
function change(enumerable) {
|
|
731
|
+
pageContexts.forEach((pageContext) => {
|
|
732
|
+
changeEnumerable(pageContext, 'urlPathname', enumerable);
|
|
733
|
+
changeEnumerable(pageContext, 'urlParsed', enumerable);
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
}
|
|
@@ -4,12 +4,16 @@ import { analyzePageClientSide } from '../../../shared/getPageFiles/analyzePageC
|
|
|
4
4
|
import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
|
|
5
5
|
import { analyzeClientSide } from '../../../shared/getPageFiles/analyzeClientSide.js';
|
|
6
6
|
import { getGlobalContext } from '../globalContext.js';
|
|
7
|
-
import {
|
|
7
|
+
import { getConfigValueRuntime } from '../../../shared/page-configs/getConfigValue.js';
|
|
8
8
|
function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
9
9
|
if (pageConfig) {
|
|
10
10
|
const { isClientSideRenderable, isClientRouting } = analyzeClientSide(pageConfig, pageFilesAll, pageId);
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const clientEntries = [];
|
|
12
|
+
const clientFilePath = getConfigValueRuntime(pageConfig, 'client', 'string')?.value ?? null;
|
|
13
|
+
if (clientFilePath)
|
|
14
|
+
clientEntries.push(clientFilePath);
|
|
15
|
+
if (isClientSideRenderable)
|
|
16
|
+
clientEntries.push(getVikeClientEntry(isClientRouting));
|
|
13
17
|
const clientDependencies = [];
|
|
14
18
|
clientDependencies.push({
|
|
15
19
|
id: getVirtualFileIdPageConfigValuesAll(pageConfig.pageId, true),
|
|
@@ -41,15 +45,13 @@ function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
|
41
45
|
}
|
|
42
46
|
})
|
|
43
47
|
*/
|
|
44
|
-
|
|
45
|
-
if (clientEntry) {
|
|
48
|
+
clientEntries.forEach((clientEntry) => {
|
|
46
49
|
clientDependencies.push({
|
|
47
50
|
id: clientEntry,
|
|
48
51
|
onlyAssets: false,
|
|
49
52
|
eagerlyImported: false
|
|
50
53
|
});
|
|
51
|
-
|
|
52
|
-
}
|
|
54
|
+
});
|
|
53
55
|
return {
|
|
54
56
|
isHtmlOnly: !isClientSideRenderable,
|
|
55
57
|
isClientRouting,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { getCacheControl };
|
|
2
2
|
import { getPageConfig } from '../../../../shared/page-configs/helpers.js';
|
|
3
|
-
import {
|
|
3
|
+
import { getConfigValueRuntime } from '../../../../shared/page-configs/getConfigValue.js';
|
|
4
4
|
const defaultValue = 'no-store, max-age=0';
|
|
5
5
|
function getCacheControl(pageId, pageConfigs) {
|
|
6
6
|
// TODO/v1-release: remove
|
|
7
7
|
if (pageConfigs.length === 0)
|
|
8
8
|
return defaultValue;
|
|
9
9
|
const pageConfig = getPageConfig(pageId, pageConfigs);
|
|
10
|
-
const configValue =
|
|
10
|
+
const configValue = getConfigValueRuntime(pageConfig, 'cacheControl', 'string');
|
|
11
11
|
const value = configValue?.value;
|
|
12
12
|
if (value)
|
|
13
13
|
return value;
|
|
@@ -63,13 +63,13 @@ function getRenderHook(pageContext) {
|
|
|
63
63
|
assertUsage(false, [
|
|
64
64
|
`No ${hookName}() hook found, see https://vike.dev/${hookName}`
|
|
65
65
|
/*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
66
|
+
'See https://vike.dev/render-modes for more information.',
|
|
67
|
+
[
|
|
68
|
+
// 'Loaded config files (none of them define the onRenderHtml() hook):',
|
|
69
|
+
'Loaded server-side page files (none of them `export { render }`):',
|
|
70
|
+
...pageContext._pageFilePathsLoaded.map((f, i) => ` (${i + 1}): ${f}`)
|
|
71
|
+
].join('\n')
|
|
72
|
+
*/
|
|
73
73
|
].join(' '));
|
|
74
74
|
}
|
|
75
75
|
return hookFound;
|
|
@@ -14,19 +14,11 @@ type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContex
|
|
|
14
14
|
type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
|
|
15
15
|
declare function loadUserFilesServerSide(pageContext: {
|
|
16
16
|
_pageId: string;
|
|
17
|
-
} & PageContext_loadUserFilesServerSide): Promise<{
|
|
17
|
+
} & PageContext_loadUserFilesServerSide): Promise<import("../../../shared/getPageFiles.js").PageContextExports & {
|
|
18
18
|
Page: unknown;
|
|
19
19
|
_isHtmlOnly: boolean;
|
|
20
20
|
_passToClient: string[];
|
|
21
21
|
_pageFilePathsLoaded: string[];
|
|
22
|
-
source: import("../../../shared/getPageFiles/getExports.js").Source;
|
|
23
|
-
sources: import("../../../shared/getPageFiles/getExports.js").Sources;
|
|
24
|
-
from: import("../../../shared/getPageFiles/getExports.js").From;
|
|
25
|
-
config: Record<string, unknown>;
|
|
26
|
-
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
27
|
-
exports: Record<string, unknown>;
|
|
28
|
-
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
29
|
-
pageExports: Record<string, unknown>;
|
|
30
22
|
} & {
|
|
31
23
|
__getPageAssets: () => Promise<PageAsset[]>;
|
|
32
24
|
}>;
|
|
@@ -10,7 +10,7 @@ import { getGlobalContext } from '../globalContext.js';
|
|
|
10
10
|
import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
|
|
11
11
|
async function loadUserFilesServerSide(pageContext) {
|
|
12
12
|
const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext._pageId); // Make pageConfig globally available as pageContext._pageConfig?
|
|
13
|
-
const [{ pageFilesLoaded,
|
|
13
|
+
const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
|
|
14
14
|
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext._pageId, !getGlobalContext().isProduction),
|
|
15
15
|
analyzePageClientSideInit(pageContext._pageFilesAll, pageContext._pageId, { sharedPageFilesAlreadyLoaded: true })
|
|
16
16
|
]);
|
|
@@ -35,8 +35,8 @@ async function loadUserFilesServerSide(pageContext) {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
const pageContextAddendum = {};
|
|
38
|
+
objectAssign(pageContextAddendum, pageContextExports);
|
|
38
39
|
objectAssign(pageContextAddendum, {
|
|
39
|
-
...pageContextExports,
|
|
40
40
|
Page: pageContextExports.exports.Page,
|
|
41
41
|
_isHtmlOnly: isHtmlOnly,
|
|
42
42
|
_passToClient: passToClient,
|
|
@@ -101,8 +101,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
|
|
|
101
101
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
102
102
|
const pageContextExports = getPageContextExports(pageFilesServerSide, pageConfigLoaded);
|
|
103
103
|
return {
|
|
104
|
-
|
|
105
|
-
pageFilesLoaded: pageFilesServerSide
|
|
106
|
-
pageConfigLoaded
|
|
104
|
+
pageContextExports,
|
|
105
|
+
pageFilesLoaded: pageFilesServerSide
|
|
107
106
|
};
|
|
108
107
|
}
|
package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { preparePageContextForUserConsumptionServerSide };
|
|
2
2
|
export type { PageContextForUserConsumptionServerSide };
|
|
3
|
-
import {
|
|
3
|
+
import { PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
|
|
4
4
|
import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
5
5
|
import type { PageContextExports } from '../../../shared/getPageFiles/getExports.js';
|
|
6
6
|
import { PageContextBuiltInServerInternal } from '../../../shared/types.js';
|
|
@@ -9,7 +9,7 @@ type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal
|
|
|
9
9
|
/** @deprecated */
|
|
10
10
|
url: string;
|
|
11
11
|
urlPathname: string;
|
|
12
|
-
urlParsed:
|
|
12
|
+
urlParsed: PageContextUrlInternal['urlParsed'];
|
|
13
13
|
routeParams: Record<string, string>;
|
|
14
14
|
Page: unknown;
|
|
15
15
|
_pageId: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { preparePageContextForUserConsumptionServerSide };
|
|
2
2
|
import { assert, isPlainObject, isObject } from '../utils.js';
|
|
3
3
|
import { sortPageContext } from '../../../shared/sortPageContext.js';
|
|
4
|
-
import {
|
|
4
|
+
import { assertPageContextUrl } from '../../../shared/getPageContextUrlComputed.js';
|
|
5
5
|
import { addIs404ToPageProps } from '../../../shared/addIs404ToPageProps.js';
|
|
6
6
|
function preparePageContextForUserConsumptionServerSide(pageContext) {
|
|
7
|
-
|
|
7
|
+
assertPageContextUrl(pageContext);
|
|
8
8
|
assert(isPlainObject(pageContext.routeParams));
|
|
9
9
|
assert('Page' in pageContext);
|
|
10
10
|
assert(isObject(pageContext.pageExports));
|
|
@@ -7,7 +7,7 @@ export type { RenderContext };
|
|
|
7
7
|
export type { PageContextAfterRender };
|
|
8
8
|
export type { PageContextInitEnhanced };
|
|
9
9
|
import { type PageFile } from '../../../shared/getPageFiles.js';
|
|
10
|
-
import { type
|
|
10
|
+
import { type PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
|
|
11
11
|
import { HttpResponse } from './createHttpResponseObject.js';
|
|
12
12
|
import { PageContext_loadUserFilesServerSide, type PageFiles } from './loadUserFilesServerSide.js';
|
|
13
13
|
import type { PageConfigRuntime, PageConfigGlobalRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
@@ -24,7 +24,7 @@ declare function renderPageAlreadyRouted<PageContext extends {
|
|
|
24
24
|
routeParams: Record<string, string>;
|
|
25
25
|
errorWhileRendering: null | Error;
|
|
26
26
|
_httpRequestId: number;
|
|
27
|
-
} & PageContextInitEnhanced &
|
|
27
|
+
} & PageContextInitEnhanced & PageContextUrlInternal & PageContext_loadUserFilesServerSide>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
|
|
28
28
|
declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles & {
|
|
29
29
|
routeParams: Record<string, string>;
|
|
30
30
|
_pageId: string;
|
|
@@ -59,23 +59,17 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
59
59
|
_urlRewrite: string | null;
|
|
60
60
|
_urlHandler: ((url: string) => string) | null;
|
|
61
61
|
isClientSideNavigation: boolean;
|
|
62
|
-
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
63
|
-
_urlRewrite: string | null;
|
|
64
62
|
} & {
|
|
65
|
-
|
|
63
|
+
urlParsed: import("../../../shared/getPageContextUrlComputed.js").Url;
|
|
64
|
+
urlPathname: string;
|
|
65
|
+
url: string;
|
|
66
66
|
} & {
|
|
67
|
+
headers: Record<string, string> | null;
|
|
68
|
+
} & import("../../../shared/getPageFiles.js").PageContextExports & {
|
|
67
69
|
Page: unknown;
|
|
68
70
|
_isHtmlOnly: boolean;
|
|
69
71
|
_passToClient: string[];
|
|
70
72
|
_pageFilePathsLoaded: string[];
|
|
71
|
-
source: import("../../../shared/getPageFiles/getExports.js").Source;
|
|
72
|
-
sources: import("../../../shared/getPageFiles/getExports.js").Sources;
|
|
73
|
-
from: import("../../../shared/getPageFiles/getExports.js").From;
|
|
74
|
-
config: Record<string, unknown>;
|
|
75
|
-
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
76
|
-
exports: Record<string, unknown>;
|
|
77
|
-
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
78
|
-
pageExports: Record<string, unknown>;
|
|
79
73
|
} & {
|
|
80
74
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
81
75
|
} & {
|
|
@@ -116,23 +110,17 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
116
110
|
_urlRewrite: string | null;
|
|
117
111
|
_urlHandler: ((url: string) => string) | null;
|
|
118
112
|
isClientSideNavigation: boolean;
|
|
119
|
-
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
120
|
-
_urlRewrite: string | null;
|
|
121
113
|
} & {
|
|
122
|
-
|
|
114
|
+
urlParsed: import("../../../shared/getPageContextUrlComputed.js").Url;
|
|
115
|
+
urlPathname: string;
|
|
116
|
+
url: string;
|
|
123
117
|
} & {
|
|
118
|
+
headers: Record<string, string> | null;
|
|
119
|
+
} & import("../../../shared/getPageFiles.js").PageContextExports & {
|
|
124
120
|
Page: unknown;
|
|
125
121
|
_isHtmlOnly: boolean;
|
|
126
122
|
_passToClient: string[];
|
|
127
123
|
_pageFilePathsLoaded: string[];
|
|
128
|
-
source: import("../../../shared/getPageFiles/getExports.js").Source;
|
|
129
|
-
sources: import("../../../shared/getPageFiles/getExports.js").Sources;
|
|
130
|
-
from: import("../../../shared/getPageFiles/getExports.js").From;
|
|
131
|
-
config: Record<string, unknown>;
|
|
132
|
-
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
133
|
-
exports: Record<string, unknown>;
|
|
134
|
-
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
135
|
-
pageExports: Record<string, unknown>;
|
|
136
124
|
} & {
|
|
137
125
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
138
126
|
} & {
|
|
@@ -174,23 +162,17 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
174
162
|
_urlRewrite: string | null;
|
|
175
163
|
_urlHandler: ((url: string) => string) | null;
|
|
176
164
|
isClientSideNavigation: boolean;
|
|
177
|
-
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
178
|
-
_urlRewrite: string | null;
|
|
179
165
|
} & {
|
|
180
|
-
|
|
166
|
+
urlParsed: import("../../../shared/getPageContextUrlComputed.js").Url;
|
|
167
|
+
urlPathname: string;
|
|
168
|
+
url: string;
|
|
181
169
|
} & {
|
|
170
|
+
headers: Record<string, string> | null;
|
|
171
|
+
} & import("../../../shared/getPageFiles.js").PageContextExports & {
|
|
182
172
|
Page: unknown;
|
|
183
173
|
_isHtmlOnly: boolean;
|
|
184
174
|
_passToClient: string[];
|
|
185
175
|
_pageFilePathsLoaded: string[];
|
|
186
|
-
source: import("../../../shared/getPageFiles/getExports.js").Source;
|
|
187
|
-
sources: import("../../../shared/getPageFiles/getExports.js").Sources;
|
|
188
|
-
from: import("../../../shared/getPageFiles/getExports.js").From;
|
|
189
|
-
config: Record<string, unknown>;
|
|
190
|
-
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
191
|
-
exports: Record<string, unknown>;
|
|
192
|
-
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
193
|
-
pageExports: Record<string, unknown>;
|
|
194
176
|
} & {
|
|
195
177
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
196
178
|
} & {
|
|
@@ -231,23 +213,17 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
231
213
|
_urlRewrite: string | null;
|
|
232
214
|
_urlHandler: ((url: string) => string) | null;
|
|
233
215
|
isClientSideNavigation: boolean;
|
|
234
|
-
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
235
|
-
_urlRewrite: string | null;
|
|
236
216
|
} & {
|
|
237
|
-
|
|
217
|
+
urlParsed: import("../../../shared/getPageContextUrlComputed.js").Url;
|
|
218
|
+
urlPathname: string;
|
|
219
|
+
url: string;
|
|
238
220
|
} & {
|
|
221
|
+
headers: Record<string, string> | null;
|
|
222
|
+
} & import("../../../shared/getPageFiles.js").PageContextExports & {
|
|
239
223
|
Page: unknown;
|
|
240
224
|
_isHtmlOnly: boolean;
|
|
241
225
|
_passToClient: string[];
|
|
242
226
|
_pageFilePathsLoaded: string[];
|
|
243
|
-
source: import("../../../shared/getPageFiles/getExports.js").Source;
|
|
244
|
-
sources: import("../../../shared/getPageFiles/getExports.js").Sources;
|
|
245
|
-
from: import("../../../shared/getPageFiles/getExports.js").From;
|
|
246
|
-
config: Record<string, unknown>;
|
|
247
|
-
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
248
|
-
exports: Record<string, unknown>;
|
|
249
|
-
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
250
|
-
pageExports: Record<string, unknown>;
|
|
251
227
|
} & {
|
|
252
228
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
253
229
|
} & {
|
|
@@ -268,8 +244,7 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
268
244
|
urlOriginal: string;
|
|
269
245
|
headersOriginal?: unknown;
|
|
270
246
|
headers?: unknown;
|
|
271
|
-
}, renderContext: RenderContext, {
|
|
272
|
-
urlComputedPropsNonEnumerable?: boolean;
|
|
247
|
+
}, renderContext: RenderContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
|
|
273
248
|
ssr?: {
|
|
274
249
|
urlRewrite: null | string;
|
|
275
250
|
urlHandler: null | ((url: string) => string);
|
|
@@ -298,8 +273,10 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
298
273
|
_urlRewrite: string | null;
|
|
299
274
|
_urlHandler: ((url: string) => string) | null;
|
|
300
275
|
isClientSideNavigation: boolean;
|
|
301
|
-
} &
|
|
302
|
-
|
|
276
|
+
} & {
|
|
277
|
+
urlParsed: import("../../../shared/getPageContextUrlComputed.js").Url;
|
|
278
|
+
urlPathname: string;
|
|
279
|
+
url: string;
|
|
303
280
|
} & {
|
|
304
281
|
headers: Record<string, string> | null;
|
|
305
282
|
};
|
|
@@ -8,7 +8,7 @@ import { getHtmlString } from '../html/renderHtml.js';
|
|
|
8
8
|
import { getPageFilesAll } from '../../../shared/getPageFiles.js';
|
|
9
9
|
import { assert, assertUsage, assertWarning, hasProp, normalizeHeaders, objectAssign } from '../utils.js';
|
|
10
10
|
import { serializePageContextClientSide } from '../html/serializePageContextClientSide.js';
|
|
11
|
-
import {
|
|
11
|
+
import { getPageContextUrlComputed } from '../../../shared/getPageContextUrlComputed.js';
|
|
12
12
|
import { getGlobalContext } from '../globalContext.js';
|
|
13
13
|
import { createHttpResponseObject, createHttpResponsePageContextJson } from './createHttpResponseObject.js';
|
|
14
14
|
import { loadUserFilesServerSide } from './loadUserFilesServerSide.js';
|
|
@@ -21,7 +21,6 @@ import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
|
|
|
21
21
|
import { loadPageRoutes } from '../../../shared/route/loadPageRoutes.js';
|
|
22
22
|
import pc from '@brillout/picocolors';
|
|
23
23
|
import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
|
|
24
|
-
import { assertV1Design } from '../../shared/assertV1Design.js';
|
|
25
24
|
async function renderPageAlreadyRouted(pageContext) {
|
|
26
25
|
// pageContext._pageId can either be the:
|
|
27
26
|
// - ID of the page matching the routing, or the
|
|
@@ -116,7 +115,7 @@ async function prerender404Page(renderContext, pageContextInit_) {
|
|
|
116
115
|
objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
|
|
117
116
|
return prerenderPage(pageContext);
|
|
118
117
|
}
|
|
119
|
-
function getPageContextInitEnhanced(pageContextInit, renderContext, {
|
|
118
|
+
function getPageContextInitEnhanced(pageContextInit, renderContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
|
|
120
119
|
urlRewrite: null,
|
|
121
120
|
urlHandler: null,
|
|
122
121
|
isClientSideNavigation: false
|
|
@@ -144,7 +143,8 @@ function getPageContextInitEnhanced(pageContextInit, renderContext, { urlCompute
|
|
|
144
143
|
isClientSideNavigation
|
|
145
144
|
});
|
|
146
145
|
// pageContext.urlParsed
|
|
147
|
-
|
|
146
|
+
const pageContextUrlComputed = getPageContextUrlComputed(pageContextInitEnhanced);
|
|
147
|
+
objectAssign(pageContextInitEnhanced, pageContextUrlComputed);
|
|
148
148
|
// pageContext.headers
|
|
149
149
|
{
|
|
150
150
|
let headers;
|
|
@@ -170,7 +170,8 @@ async function getRenderContext() {
|
|
|
170
170
|
const globalContext = getGlobalContext();
|
|
171
171
|
const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal } = await getPageFilesAll(false, globalContext.isProduction);
|
|
172
172
|
const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds);
|
|
173
|
-
assertV1Design(
|
|
173
|
+
// We assume assertV1Design() was already called at build-time
|
|
174
|
+
assert(pageFilesAll.length === 0 || pageConfigs.length === 0);
|
|
174
175
|
const renderContext = {
|
|
175
176
|
pageFilesAll: pageFilesAll,
|
|
176
177
|
pageConfigs,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { assertV1Design };
|
|
2
2
|
import { PageFile } from '../../shared/getPageFiles.js';
|
|
3
|
-
import type { PageConfigBuildTime
|
|
4
|
-
declare function assertV1Design(isOldDesign: boolean, pageConfigs:
|
|
3
|
+
import type { PageConfigBuildTime } from '../../shared/page-configs/PageConfig.js';
|
|
4
|
+
declare function assertV1Design(isOldDesign: boolean, pageConfigs: PageConfigBuildTime[], pageFilesAll?: PageFile[]): void;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { assertV1Design };
|
|
2
|
-
import { getConfigValueFilePathToShowToUser } from '../../shared/page-configs/helpers.js';
|
|
3
2
|
import { assert, assertUsage, assertWarning, isNotNullish, unique } from './utils.js';
|
|
4
3
|
function assertV1Design(isOldDesign, pageConfigs, pageFilesAll) {
|
|
5
4
|
const isV1Design = pageConfigs.length > 0;
|
|
@@ -9,10 +8,10 @@ function assertV1Design(isOldDesign, pageConfigs, pageFilesAll) {
|
|
|
9
8
|
assert(pageFilesAll.length > 0);
|
|
10
9
|
const indent = '- ';
|
|
11
10
|
const filesV1 = unique(pageConfigs
|
|
12
|
-
.map((p) => Object.values(p.
|
|
13
|
-
.map((c) =>
|
|
11
|
+
.map((p) => Object.values(p.configValueSources).map((sources) => sources
|
|
12
|
+
.map((c) => c.definedAtFilePath.filePathAbsoluteUserRootDir)
|
|
14
13
|
.filter(isNotNullish)
|
|
15
|
-
.map((filePathToShowToUser) => indent + filePathToShowToUser))
|
|
14
|
+
.map((filePathToShowToUser) => indent + filePathToShowToUser)))
|
|
16
15
|
.flat(2));
|
|
17
16
|
const filesOld = pageFilesAll.map((p) => indent + p.filePath);
|
|
18
17
|
lines.push(...['V1 design files:', ...filesV1, 'Old design files:', ...filesOld]);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export type {
|
|
4
|
-
export type {
|
|
5
|
-
export type {
|
|
6
|
-
export type {
|
|
1
|
+
export { getPageContextUrlComputed };
|
|
2
|
+
export { assertPageContextUrl };
|
|
3
|
+
export type { PageContextUrlInternal };
|
|
4
|
+
export type { PageContextUrlClient };
|
|
5
|
+
export type { PageContextUrlServer };
|
|
6
|
+
export type { PageContextUrlSource };
|
|
7
7
|
export type { Url };
|
|
8
8
|
type Url = {
|
|
9
9
|
/** The URL origin, e.g. `https://example.com` of `https://example.com/product/42?details=yes#reviews` */
|
|
@@ -27,23 +27,24 @@ type Url = {
|
|
|
27
27
|
/** @deprecated */
|
|
28
28
|
searchString: null | string;
|
|
29
29
|
};
|
|
30
|
-
type
|
|
30
|
+
type PageContextUrlComputed = {
|
|
31
|
+
/** Parsed information about the current URL */
|
|
32
|
+
urlParsed: Url;
|
|
33
|
+
/** The URL pathname, e.g. `/product/42` of `https://example.com/product/42?details=yes#reviews` */
|
|
34
|
+
urlPathname: string;
|
|
31
35
|
/** @deprecated */
|
|
32
36
|
url: string;
|
|
37
|
+
};
|
|
38
|
+
type PageContextUrl = {
|
|
33
39
|
/** The URL of the HTTP request */
|
|
34
40
|
urlOriginal: string;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/** Parsed information about the current URL */
|
|
38
|
-
urlParsed: Url;
|
|
39
|
-
};
|
|
40
|
-
/** For Vike internal use */
|
|
41
|
-
type PageContextUrlComputedPropsInternal = PageContextUrlComputedPropsClient & {
|
|
41
|
+
} & PageContextUrlComputed;
|
|
42
|
+
type PageContextUrlInternal = PageContextUrl & {
|
|
42
43
|
_urlRewrite: string | null;
|
|
43
44
|
};
|
|
44
|
-
type
|
|
45
|
-
type
|
|
46
|
-
urlParsed: Omit<
|
|
45
|
+
type PageContextUrlClient = PageContextUrl;
|
|
46
|
+
type PageContextUrlServer = PageContextUrl & {
|
|
47
|
+
urlParsed: Omit<PageContextUrl['urlParsed'], HashProps> & {
|
|
47
48
|
/** Only available on the client-side */
|
|
48
49
|
hash: '';
|
|
49
50
|
/** Only available on the client-side */
|
|
@@ -52,14 +53,15 @@ type PageContextUrlComputedPropsServer = PageContextUrlComputedPropsClient & {
|
|
|
52
53
|
hashOriginal: null;
|
|
53
54
|
};
|
|
54
55
|
};
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
type HashProps = 'hash' | 'hashString' | 'hashOriginal';
|
|
57
|
+
declare function getPageContextUrlComputed(pageContext: PageContextUrlSource): PageContextUrlComputed;
|
|
58
|
+
type PageContextUrlSource = {
|
|
57
59
|
urlOriginal: string;
|
|
58
60
|
urlLogical?: string;
|
|
59
61
|
_urlRewrite: string | null;
|
|
60
62
|
_baseServer: string;
|
|
61
63
|
_urlHandler: null | ((url: string) => string);
|
|
62
64
|
};
|
|
63
|
-
declare function
|
|
65
|
+
declare function assertPageContextUrl(pageContext: {
|
|
64
66
|
urlOriginal: string;
|
|
65
|
-
} &
|
|
67
|
+
} & PageContextUrlClient): void;
|