vike 0.4.235 → 0.4.236-commit-85d361d
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 +1 -1
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +0 -1
- package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
- package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
- package/dist/cjs/node/cli/index.js +1 -1
- package/dist/cjs/node/createPageRenderer.js +1 -1
- package/dist/cjs/node/importBuild.js +1 -1
- package/dist/cjs/node/prerender/context.js +1 -1
- package/dist/cjs/node/prerender/index.js +1 -1
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +2 -2
- package/dist/cjs/node/prerender/runPrerender.js +9 -13
- package/dist/cjs/node/runtime/globalContext.js +32 -13
- package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
- package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
- package/dist/cjs/node/runtime/html/serializeContext.js +73 -15
- package/dist/cjs/node/runtime/index-deprecated.js +1 -1
- package/dist/cjs/node/runtime/index.js +1 -1
- package/dist/cjs/node/runtime/page-files/setup.js +1 -1
- package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +9 -6
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
- package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
- package/dist/cjs/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +9 -9
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +4 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +35 -16
- package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
- package/dist/cjs/node/runtime/renderPage.js +4 -6
- package/dist/cjs/node/vite/onLoad.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginCommon.js +8 -4
- package/dist/cjs/node/vite/plugins/pluginDev.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginFileEnv.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +1 -1
- package/dist/cjs/node/vite/shared/addSsrMiddleware.js +1 -1
- package/dist/cjs/node/vite/shared/loggerNotProd.js +10 -6
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
- package/dist/cjs/shared/RenderErrorPage.js +1 -1
- package/dist/cjs/shared/abort.js +1 -1
- package/dist/cjs/shared/createGlobalContextShared.js +20 -7
- package/dist/cjs/shared/createPageContextShared.js +1 -2
- package/dist/cjs/shared/determinePageIdOld.js +1 -1
- package/dist/cjs/shared/error-page.js +3 -3
- package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
- package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
- package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
- package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
- package/dist/cjs/shared/getProxyForPublicUsage.js +1 -1
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
- package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
- package/dist/cjs/shared/route/abort.js +1 -1
- package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
- package/dist/cjs/shared/route/execHookGuard.js +1 -1
- package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
- package/dist/cjs/shared/route/index.js +1 -1
- package/dist/cjs/shared/route/loadPageRoutes.js +10 -4
- package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
- package/dist/cjs/shared/route/resolveRouteString.js +1 -1
- package/dist/cjs/shared/route/routing.js +1 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +8 -8
- package/dist/cjs/utils/debugGlob.js +1 -1
- package/dist/cjs/utils/parseNpmPackage.js +1 -1
- package/dist/esm/__internal/index.d.ts +1 -1
- package/dist/esm/__internal/index.js +1 -1
- package/dist/esm/client/node.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +8 -0
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
- package/dist/esm/client/runtime-client-routing/index.js +1 -1
- package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
- package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
- package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +2 -0
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
- package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
- package/dist/esm/client/runtime-server-routing/index.js +1 -1
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +5 -4
- package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -1
- package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
- package/dist/esm/node/api/prepareViteApiCall.js +1 -1
- package/dist/esm/node/cli/index.js +1 -1
- package/dist/esm/node/createPageRenderer.js +1 -1
- package/dist/esm/node/importBuild.js +1 -1
- package/dist/esm/node/prerender/context.js +1 -1
- package/dist/esm/node/prerender/index.js +1 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
- package/dist/esm/node/prerender/runPrerender.d.ts +2 -1
- package/dist/esm/node/prerender/runPrerender.js +9 -13
- package/dist/esm/node/runtime/globalContext.d.ts +15 -15
- package/dist/esm/node/runtime/globalContext.js +34 -15
- package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
- package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
- package/dist/esm/node/runtime/html/serializeContext.d.ts +7 -1
- package/dist/esm/node/runtime/html/serializeContext.js +73 -15
- package/dist/esm/node/runtime/index-deprecated.js +1 -1
- package/dist/esm/node/runtime/index.js +1 -1
- package/dist/esm/node/runtime/page-files/setup.js +1 -1
- package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +9 -6
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
- package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
- package/dist/esm/node/runtime/renderPage/getCacheControl.d.ts +5 -0
- package/dist/esm/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +8 -9
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +8 -4
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +36 -17
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +4 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
- package/dist/esm/node/runtime/renderPage.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage.js +4 -6
- package/dist/esm/node/vite/index.js +1 -1
- package/dist/esm/node/vite/onLoad.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
- package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
- package/dist/esm/node/vite/plugins/pluginCommon.js +8 -4
- package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
- package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +1 -1
- package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
- package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
- package/dist/esm/shared/RenderErrorPage.js +1 -1
- package/dist/esm/shared/abort.js +1 -1
- package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
- package/dist/esm/shared/createGlobalContextShared.js +20 -7
- package/dist/esm/shared/createPageContextShared.d.ts +2 -3
- package/dist/esm/shared/createPageContextShared.js +1 -2
- package/dist/esm/shared/determinePageIdOld.js +1 -1
- package/dist/esm/shared/error-page.js +3 -3
- package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
- package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
- package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
- package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
- package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
- package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
- package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
- package/dist/esm/shared/route/abort.js +1 -1
- package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
- package/dist/esm/shared/route/execHookGuard.js +1 -1
- package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
- package/dist/esm/shared/route/index.js +1 -1
- package/dist/esm/shared/route/loadPageRoutes.d.ts +5 -0
- package/dist/esm/shared/route/loadPageRoutes.js +10 -4
- package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
- package/dist/esm/shared/route/resolveRouteString.js +1 -1
- package/dist/esm/shared/route/routing.js +1 -1
- package/dist/esm/types/Config.d.ts +9 -1
- package/dist/esm/types/PageContext.d.ts +8 -2
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assertSetup.js +8 -8
- package/dist/esm/utils/debugGlob.js +1 -1
- package/dist/esm/utils/parseNpmPackage.js +1 -1
- package/package.json +3 -6
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
|
@@ -12,7 +12,7 @@ const assertSetup_js_1 = require("../utils/assertSetup.js");
|
|
|
12
12
|
/**
|
|
13
13
|
* Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel} to compute some rewrite rules and extract { isr } configs.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
15
|
+
* TO-DO/eventually: remove
|
|
16
16
|
*/
|
|
17
17
|
async function getPagesAndRoutes() {
|
|
18
18
|
(0, assertSetup_js_1.setNodeEnvProduction)();
|
|
@@ -46,7 +46,6 @@ function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGl
|
|
|
46
46
|
return globalContext;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
// The type is never used: it's the type of the server-side getGlobalContext() that is used.
|
|
50
49
|
async function getGlobalContext() {
|
|
51
50
|
const globalContext = await globalObject.globalContextPromise;
|
|
52
51
|
return globalContext;
|
|
@@ -5,14 +5,14 @@ exports.preparePageContextForPublicUsageClientMinimal = preparePageContextForPub
|
|
|
5
5
|
const utils_js_1 = require("../runtime-server-routing/utils.js");
|
|
6
6
|
const preparePageContextForPublicUsage_js_1 = require("../../shared/preparePageContextForPublicUsage.js");
|
|
7
7
|
function preparePageContextForPublicUsageClientShared(pageContext) {
|
|
8
|
-
//
|
|
8
|
+
// TO-DO/soon/proxy: use proxy
|
|
9
9
|
const Page = pageContext.config?.Page ||
|
|
10
|
-
//
|
|
10
|
+
// TO-DO/next-major-release: remove
|
|
11
11
|
pageContext.exports?.Page;
|
|
12
12
|
(0, utils_js_1.objectAssign)(pageContext, { Page });
|
|
13
|
-
//
|
|
13
|
+
// TO-DO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
|
|
14
14
|
(0, preparePageContextForPublicUsage_js_1.assertPropertyGetters)(pageContext);
|
|
15
|
-
//
|
|
15
|
+
// TO-DO/next-major-release: remove
|
|
16
16
|
// - Requires https://github.com/vikejs/vike-vue/issues/198
|
|
17
17
|
// - Last time I tried to remove it (https://github.com/vikejs/vike/commit/705fd23598d9d69bf46a52c8550216cd7117ce71) the tests were failing as expected: only the Vue integrations that used shallowReactive() failed.
|
|
18
18
|
supportVueReactiviy(pageContext);
|
|
@@ -122,7 +122,7 @@ async function getViteInfo(viteConfigFromUserApiOptions, operation) {
|
|
|
122
122
|
const root = normalizeViteRoot(viteConfigResolved.root ?? process.cwd());
|
|
123
123
|
globalObject.root = root;
|
|
124
124
|
// - Find options `vike(options)` set in vite.config.js
|
|
125
|
-
// -
|
|
125
|
+
// - TO-DO/next-major-release: remove
|
|
126
126
|
// - Add Vike's Vite plugin if missing
|
|
127
127
|
let vikeVitePluginOptions;
|
|
128
128
|
const found = findVikeVitePlugin(viteConfigResolved);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//
|
|
2
|
+
// TO-DO/next-major-release: remove
|
|
3
3
|
console.warn("[vike][Warning] importBuild.js is not needed anymore; it has no effect. Remove `import 'dist/server/importBuild.js'` to remove this warning. More infos at https://vike.dev/importBuild.js");
|
|
@@ -14,7 +14,7 @@ function isPrerenderAutoRunEnabled(vikeConfig) {
|
|
|
14
14
|
!globalObject.isDisabled &&
|
|
15
15
|
vikeConfig.config.disableAutoFullBuild !== 'prerender');
|
|
16
16
|
}
|
|
17
|
-
//
|
|
17
|
+
// TO-DO/next-major-release: remove
|
|
18
18
|
function temp_disablePrerenderAutoRun() {
|
|
19
19
|
globalObject.isDisabled = true;
|
|
20
20
|
}
|
|
@@ -24,7 +24,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
|
|
|
24
24
|
defaultLocalValue = true;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
//
|
|
27
|
+
// TO-DO/next-major-release: remove
|
|
28
28
|
// Backwards compatibility for `vike({prerender:true})` in vite.config.js
|
|
29
29
|
{
|
|
30
30
|
const valuesWithDefinedAt = vikeConfig._from.configsCumulative.prerender?.values ?? [];
|
|
@@ -39,7 +39,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
|
|
|
39
39
|
isPrerenderingEnabled: vikeConfig._pageConfigs.length > 0 &&
|
|
40
40
|
vikeConfig._pageConfigs.some((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue),
|
|
41
41
|
});
|
|
42
|
-
//
|
|
42
|
+
// TO-DO/next-major-release: remove
|
|
43
43
|
if (vikeConfig._pageConfigs.length === 0 && defaultLocalValue)
|
|
44
44
|
prerenderConfigGlobal.isPrerenderingEnabled = true;
|
|
45
45
|
return prerenderConfigGlobal;
|
|
@@ -87,7 +87,7 @@ async function runPrerender(options = {}, trigger) {
|
|
|
87
87
|
const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
|
|
88
88
|
if (!isPrerenderingEnabled) {
|
|
89
89
|
(0, utils_js_1.assert)(trigger !== 'auto-run');
|
|
90
|
-
/*
|
|
90
|
+
/* TO-DO/next-major-release: use this assertUsage() again.
|
|
91
91
|
* - Make sure https://github.com/magne4000/vite-plugin-vercel/pull/156 is merged before using this assertUsage() again. (Otherwise vite-plugin-vercel will trigger this assertUsage() call.)
|
|
92
92
|
* - Done: PR is merged as of June 20205
|
|
93
93
|
assertUsage(
|
|
@@ -169,7 +169,7 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
|
|
|
169
169
|
}
|
|
170
170
|
});
|
|
171
171
|
// Old design
|
|
172
|
-
//
|
|
172
|
+
// TO-DO/next-major-release: remove
|
|
173
173
|
await Promise.all(globalContext._pageFilesAll
|
|
174
174
|
.filter((p) => {
|
|
175
175
|
assertExportNames(p);
|
|
@@ -332,7 +332,7 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
|
|
|
332
332
|
urlOriginal,
|
|
333
333
|
...prerenderContext._pageContextInit,
|
|
334
334
|
};
|
|
335
|
-
const pageContext =
|
|
335
|
+
const pageContext = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
|
|
336
336
|
isPrerendering: true,
|
|
337
337
|
});
|
|
338
338
|
(0, utils_js_1.assert)(pageContext.isPrerendering === true);
|
|
@@ -423,7 +423,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
423
423
|
}
|
|
424
424
|
}
|
|
425
425
|
// Old design
|
|
426
|
-
//
|
|
426
|
+
// TO-DO/next-major-release: remove
|
|
427
427
|
if (globalContext._pageConfigs.length === 0) {
|
|
428
428
|
const hookTimeout = (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerender');
|
|
429
429
|
const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
|
|
@@ -463,7 +463,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
463
463
|
(0, utils_js_1.assertUsage)((0, utils_js_1.isCallable)(hookFn), `${msgPrefix} should be a function.`);
|
|
464
464
|
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
465
465
|
Object.defineProperty(pageContext, 'url', {
|
|
466
|
-
//
|
|
466
|
+
// TO-DO/next-major-release: remove warning
|
|
467
467
|
get() {
|
|
468
468
|
(0, utils_js_1.assertWarning)(false, msgPrefix +
|
|
469
469
|
' uses pageContext.url but it should use pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { showStackTrace: true, onlyOnce: true });
|
|
@@ -493,7 +493,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
493
493
|
}
|
|
494
494
|
const errPrefix = `The ${hookName}() hook exported by ${hookFilePath}`;
|
|
495
495
|
const rightUsage = `${errPrefix} should return ${picocolors_1.default.cyan('null')}, ${picocolors_1.default.cyan('undefined')}, or ${picocolors_1.default.cyan('{ prerenderContext: { pageContexts } }')}`;
|
|
496
|
-
//
|
|
496
|
+
// TO-DO/next-major-release: remove
|
|
497
497
|
if ((0, utils_js_1.hasProp)(result, 'globalContext')) {
|
|
498
498
|
(0, utils_js_1.assertUsage)((0, utils_js_1.isObjectWithKeys)(result, ['globalContext']) &&
|
|
499
499
|
(0, utils_js_1.hasProp)(result, 'globalContext', 'object') &&
|
|
@@ -510,7 +510,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
510
510
|
(0, utils_js_1.hasProp)(result.prerenderContext, 'pageContexts', 'array'), rightUsage);
|
|
511
511
|
prerenderContext.pageContexts = result.prerenderContext.pageContexts;
|
|
512
512
|
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
513
|
-
//
|
|
513
|
+
// TO-DO/next-major-release: remove
|
|
514
514
|
if (pageContext.url && !(0, utils_js_1.isPropertyGetter)(pageContext, 'url')) {
|
|
515
515
|
(0, utils_js_1.assertWarning)(false, msgPrefix +
|
|
516
516
|
' provided pageContext.url but it should provide pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { onlyOnce: true });
|
|
@@ -571,10 +571,6 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
|
|
|
571
571
|
async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
|
|
572
572
|
const isV1 = globalContext._pageConfigs.length > 0;
|
|
573
573
|
const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
|
|
574
|
-
/* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
|
|
575
|
-
const optOutName = isV1 ? 'prerender' : 'doNotPrerender'
|
|
576
|
-
const msgAddendum = `Explicitly opt-out by setting the config ${optOutName} to ${isV1 ? 'false' : 'true'} or use the option prerender.partial`
|
|
577
|
-
*/
|
|
578
574
|
globalContext._allPageIds
|
|
579
575
|
.filter((pageId) => !prerenderedPageContexts[pageId])
|
|
580
576
|
.filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
@@ -677,7 +673,7 @@ function normalizeOnPrerenderHookResult(prerenderResult, prerenderHookFile, hook
|
|
|
677
673
|
return prerenderElement;
|
|
678
674
|
}
|
|
679
675
|
}
|
|
680
|
-
//
|
|
676
|
+
// TO-DO/next-major-release: remove
|
|
681
677
|
function checkOutdatedOptions(options) {
|
|
682
678
|
(0, utils_js_1.assertUsage)(options.root === undefined, 'Option `prerender({ root })` deprecated: set `prerender({ viteConfig: { root }})` instead.', { showStackTrace: true });
|
|
683
679
|
(0, utils_js_1.assertUsage)(options.configFile === undefined, 'Option `prerender({ configFile })` deprecated: set `prerender({ viteConfig: { configFile }})` instead.', { showStackTrace: true });
|
|
@@ -722,7 +718,7 @@ function assertIsNotAbort(err, urlOriginal) {
|
|
|
722
718
|
(0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${picocolors_1.default.cyan(abortCaller)} isn't supported for pre-rendered pages`);
|
|
723
719
|
}
|
|
724
720
|
function preparePrerenderContextForPublicUsage(prerenderContext) {
|
|
725
|
-
//
|
|
721
|
+
// TO-DO/next-major-release: remove
|
|
726
722
|
if (!('prerenderPageContexts' in prerenderContext)) {
|
|
727
723
|
Object.defineProperty(prerenderContext, 'prerenderPageContexts', {
|
|
728
724
|
get() {
|
|
@@ -42,7 +42,7 @@ const loggerRuntime_js_1 = require("./loggerRuntime.js");
|
|
|
42
42
|
const getVikeConfigError_js_1 = require("../shared/getVikeConfigError.js");
|
|
43
43
|
const isNewError_js_1 = require("./renderPage/isNewError.js");
|
|
44
44
|
const debug = (0, utils_js_1.createDebugger)('vike:globalContext');
|
|
45
|
-
const globalObject = (0, utils_js_1.getGlobalObject)('runtime/globalContext.ts',
|
|
45
|
+
const globalObject = (0, utils_js_1.getGlobalObject)('runtime/globalContext.ts', getInitialGlobalObject());
|
|
46
46
|
// Trick to break down TypeScript circular dependency
|
|
47
47
|
// https://chat.deepseek.com/a/chat/s/d7e9f90a-c7f3-4108-9cd5-4ad6caed3539
|
|
48
48
|
const globalObjectTyped = globalObject;
|
|
@@ -103,17 +103,19 @@ async function getGlobalContextAsync(isProduction) {
|
|
|
103
103
|
* Get runtime information about your app.
|
|
104
104
|
*
|
|
105
105
|
* https://vike.dev/getGlobalContext
|
|
106
|
-
*
|
|
107
|
-
* @deprecated
|
|
108
106
|
*/
|
|
109
107
|
function getGlobalContextSync() {
|
|
110
108
|
debug('getGlobalContextSync()');
|
|
111
109
|
const { globalContext } = globalObjectTyped;
|
|
112
110
|
(0, utils_js_1.assertUsage)(globalContext, createGlobalContextShared_js_1.getGlobalContextSyncErrMsg);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
111
|
+
const isProd = globalContext._isProduction;
|
|
112
|
+
(0, utils_js_1.assert)(typeof isProd === 'boolean');
|
|
113
|
+
(0, utils_js_1.assertWarning)(isProd,
|
|
114
|
+
// - We discourage users from using it in development because `pageContext.globalContext` is safer: I ain't sure but there could be race conditions when using `getGlobalContextSync()` inside React/Vue components upon HMR.
|
|
115
|
+
// - I don't see any issues with getGlobalContextSync() in production.
|
|
116
|
+
// - getGlobalContextSync() is used in production by vike-vercel
|
|
117
|
+
// - https://discord.com/channels/@me/942519153502339072/1389546794676916344 (PM between Rom and Joël)
|
|
118
|
+
"getGlobalContextSync() shouldn't be used in development, see https://vike.dev/getGlobalContext", { onlyOnce: true });
|
|
117
119
|
return getGlobalContextForPublicUsage();
|
|
118
120
|
}
|
|
119
121
|
function getGlobalContextForPublicUsage() {
|
|
@@ -152,7 +154,9 @@ function setGlobalContext_isPrerendering() {
|
|
|
152
154
|
globalObject.isPrerendering = true;
|
|
153
155
|
setIsProduction(true);
|
|
154
156
|
}
|
|
155
|
-
function setGlobalContext_isProduction(isProduction, tolerateContraditction) {
|
|
157
|
+
function setGlobalContext_isProduction(isProduction, tolerateContraditction = false) {
|
|
158
|
+
if (debug.isActivated)
|
|
159
|
+
debug('setGlobalContext_isProduction()', { isProduction, tolerateContraditction });
|
|
156
160
|
if (globalObject.isProduction === undefined) {
|
|
157
161
|
setIsProduction(isProduction);
|
|
158
162
|
}
|
|
@@ -234,6 +238,7 @@ function assertViteManifest(manifest) {
|
|
|
234
238
|
async function loadBuildEntry(outDir) {
|
|
235
239
|
debug('loadBuildEntry()');
|
|
236
240
|
if (globalObject.globalContext) {
|
|
241
|
+
debug('loadBuildEntry() - already done');
|
|
237
242
|
return;
|
|
238
243
|
}
|
|
239
244
|
if (!globalObject.buildEntry) {
|
|
@@ -259,6 +264,8 @@ async function loadBuildEntry(outDir) {
|
|
|
259
264
|
globalObject.buildInfo = buildEntry.buildInfo;
|
|
260
265
|
await setGlobalContext(buildEntry.virtualFileExports);
|
|
261
266
|
}
|
|
267
|
+
// This is the production entry, see:
|
|
268
|
+
// https://github.com/vikejs/vike/blob/798e5465dc3e3e6723b38b601a50350c0a006fb8/packages/vike/node/vite/plugins/pluginBuild/pluginBuildEntry.ts#L47
|
|
262
269
|
async function setGlobalContext_buildEntry(buildEntry) {
|
|
263
270
|
debug('setGlobalContext_buildEntry()');
|
|
264
271
|
setIsProduction(true);
|
|
@@ -268,6 +275,7 @@ async function setGlobalContext_buildEntry(buildEntry) {
|
|
|
268
275
|
(0, utils_js_1.assert)(globalObject.buildEntry); // ensure no infinite loop
|
|
269
276
|
await loadBuildEntry();
|
|
270
277
|
assertGlobalContextIsDefined();
|
|
278
|
+
debug('setGlobalContext_buildEntry() - done');
|
|
271
279
|
}
|
|
272
280
|
function assertBuildEntry(buildEntry) {
|
|
273
281
|
(0, utils_js_1.assert)((0, utils_js_1.isObject)(buildEntry));
|
|
@@ -364,18 +372,29 @@ async function updateUserFiles() {
|
|
|
364
372
|
return onSuccess();
|
|
365
373
|
}
|
|
366
374
|
async function setGlobalContext(virtualFileExports) {
|
|
375
|
+
debug('setGlobalContext()');
|
|
367
376
|
(0, utils_js_1.assert)(!(0, getVikeConfigError_js_1.getVikeConfigErrorBuild)());
|
|
368
|
-
const globalContext = await (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExports, globalObject,
|
|
377
|
+
const globalContext = await (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExports, globalObject, addGlobalContextAsync, addGlobalContextSync);
|
|
369
378
|
(0, assertV1Design_js_1.assertV1Design)(
|
|
370
379
|
// pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
|
|
371
380
|
globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
|
|
372
381
|
assertGlobalContextIsDefined();
|
|
373
382
|
(0, utils_js_1.onSetupRuntime)();
|
|
383
|
+
debug('setGlobalContext() - done');
|
|
374
384
|
// Never actually used, only used for TypeScript `ReturnType<typeof setGlobalContext>`
|
|
375
385
|
return globalContext;
|
|
376
386
|
}
|
|
377
|
-
async function
|
|
387
|
+
async function addGlobalContextAsync(globalContext) {
|
|
388
|
+
debug('addGlobalContextAsync()');
|
|
378
389
|
const { pageRoutes, onBeforeRouteHook } = await (0, loadPageRoutes_js_1.loadPageRoutes)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
|
|
390
|
+
return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
|
|
391
|
+
}
|
|
392
|
+
function addGlobalContextSync(globalContext) {
|
|
393
|
+
debug('addGlobalContextSync()');
|
|
394
|
+
const { pageRoutes, onBeforeRouteHook } = (0, loadPageRoutes_js_1.loadPageRoutesSync)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
|
|
395
|
+
return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
|
|
396
|
+
}
|
|
397
|
+
function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
|
|
379
398
|
const globalContextBase = {
|
|
380
399
|
isClientSide: false,
|
|
381
400
|
_pageRoutes: pageRoutes,
|
|
@@ -434,10 +453,10 @@ async function addGlobalContext(globalContext) {
|
|
|
434
453
|
}
|
|
435
454
|
function clearGlobalContext() {
|
|
436
455
|
debug('clearGlobalContext()');
|
|
437
|
-
(0, utils_js_1.objectReplace)(globalObject,
|
|
456
|
+
(0, utils_js_1.objectReplace)(globalObject, getInitialGlobalObject(), ['buildEntryPrevious']);
|
|
438
457
|
}
|
|
439
|
-
function
|
|
440
|
-
debug('
|
|
458
|
+
function getInitialGlobalObject() {
|
|
459
|
+
debug('getInitialGlobalObject()');
|
|
441
460
|
const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = (0, utils_js_1.genPromise)();
|
|
442
461
|
return {
|
|
443
462
|
viteDevServerPromise,
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.injectAssets__public = injectAssets__public;
|
|
4
4
|
const utils_js_1 = require("../../utils.js");
|
|
5
5
|
const injectAssets_js_1 = require("../injectAssets.js");
|
|
6
|
-
//
|
|
6
|
+
// TO-DO/next-major-release: remove
|
|
7
7
|
async function injectAssets__public(htmlString, pageContext) {
|
|
8
8
|
(0, utils_js_1.assertWarning)(false, '`_injectAssets()` is deprecated and will be removed.', { onlyOnce: true, showStackTrace: true });
|
|
9
9
|
(0, utils_js_1.assertUsage)(typeof htmlString === 'string', '[injectAssets(htmlString, pageContext)]: Argument `htmlString` should be a string.', { showStackTrace: true });
|
|
@@ -150,6 +150,8 @@ function getTagClosing(tag) {
|
|
|
150
150
|
return tagClosing;
|
|
151
151
|
}
|
|
152
152
|
function injectAtPlaceholder(htmlFragment, htmlString, isFirst) {
|
|
153
|
+
// TO-DO/eventually: soft deprecate in favor of https://github.com/vikejs/vike/issues/695
|
|
154
|
+
// Used by BurdaForward https://github.com/vikejs/vike/discussions/2528#discussioncomment-13637156
|
|
153
155
|
const placeholder = isFirst ? '__VITE_PLUGIN_SSR__ASSETS_FIRST__' : '__VITE_PLUGIN__SSR_ASSETS_LAST__';
|
|
154
156
|
const parts = htmlString.split(placeholder);
|
|
155
157
|
if (parts.length === 1)
|
|
@@ -32,20 +32,41 @@ const passToClientBuiltInPageContext = [
|
|
|
32
32
|
const pageToClientBuiltInPageContextError = ['pageProps', 'is404', isServerSideError_js_1.isServerSideError];
|
|
33
33
|
function getPageContextClientSerialized(pageContext) {
|
|
34
34
|
const passToClientPageContext = getPassToClientPageContext(pageContext);
|
|
35
|
-
const
|
|
36
|
-
|
|
35
|
+
const getObj = (passToClientEntry) => {
|
|
36
|
+
if (passToClientEntry.once)
|
|
37
|
+
return undefined; // pass it to client-side globalContext
|
|
38
|
+
return { obj: pageContext, objName: 'pageContext' };
|
|
39
|
+
};
|
|
40
|
+
const res = applyPassToClient(passToClientPageContext, getObj);
|
|
41
|
+
const pageContextClient = res.objClient;
|
|
42
|
+
const pageContextClientProps = res.objClientProps;
|
|
43
|
+
if (pageContextClientProps.some((prop) => (0, propKeys_js_1.getPropVal)(pageContext._pageContextInit, prop))) {
|
|
37
44
|
pageContextClient[pageContextInitIsPassedToClient_js_1.pageContextInitIsPassedToClient] = true;
|
|
38
45
|
}
|
|
39
|
-
const pageContextClientSerialized = serializeObject(pageContextClient,
|
|
46
|
+
const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext, getObj);
|
|
40
47
|
return pageContextClientSerialized;
|
|
41
48
|
}
|
|
42
49
|
function getGlobalContextClientSerialized(pageContext) {
|
|
43
50
|
const passToClient = pageContext._passToClient;
|
|
44
|
-
const
|
|
45
|
-
const
|
|
51
|
+
const globalContext = pageContext._globalContext;
|
|
52
|
+
const getObj = ({ prop, once }) => {
|
|
53
|
+
if (once && (0, propKeys_js_1.getPropVal)(pageContext, prop)) {
|
|
54
|
+
(0, utils_js_1.assert)(typeof pageContext.isClientSideNavigation === 'boolean');
|
|
55
|
+
if (!pageContext.isClientSideNavigation) {
|
|
56
|
+
return { obj: pageContext, objName: 'pageContext' }; // pass it to client-side globalContext
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return undefined; // already passed to client-side
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return { obj: globalContext, objName: 'globalContext' };
|
|
63
|
+
};
|
|
64
|
+
const res = applyPassToClient(passToClient, getObj);
|
|
65
|
+
const globalContextClient = res.objClient;
|
|
66
|
+
const globalContextClientSerialized = serializeObject(globalContextClient, passToClient, getObj);
|
|
46
67
|
return globalContextClientSerialized;
|
|
47
68
|
}
|
|
48
|
-
function serializeObject(obj,
|
|
69
|
+
function serializeObject(obj, passToClient, getObj) {
|
|
49
70
|
let serialized;
|
|
50
71
|
try {
|
|
51
72
|
serialized = serializeValue(obj);
|
|
@@ -54,11 +75,15 @@ function serializeObject(obj, objName, passToClient) {
|
|
|
54
75
|
const h = (s) => picocolors_1.default.cyan(s);
|
|
55
76
|
let hasWarned = false;
|
|
56
77
|
const propsNonSerializable = [];
|
|
57
|
-
passToClient.forEach((
|
|
78
|
+
passToClient.forEach((entry) => {
|
|
79
|
+
const entryNormalized = normalizePassToClientEntry(entry);
|
|
80
|
+
const { prop } = entryNormalized;
|
|
58
81
|
const res = (0, propKeys_js_1.getPropVal)(obj, prop);
|
|
59
82
|
if (!res)
|
|
60
83
|
return;
|
|
61
84
|
const { value } = res;
|
|
85
|
+
const { objName } = getObj(entryNormalized) ?? {};
|
|
86
|
+
(0, utils_js_1.assert)(objName);
|
|
62
87
|
const varName = `${objName}${(0, propKeys_js_1.getPropKeys)(prop).map(utils_js_1.getPropAccessNotation).join('')}`;
|
|
63
88
|
try {
|
|
64
89
|
serializeValue(value, varName);
|
|
@@ -108,7 +133,20 @@ function serializeObject(obj, objName, passToClient) {
|
|
|
108
133
|
return serialized;
|
|
109
134
|
}
|
|
110
135
|
function serializeValue(value, varName) {
|
|
111
|
-
return (0, stringify_1.stringify)(value, {
|
|
136
|
+
return (0, stringify_1.stringify)(value, {
|
|
137
|
+
forbidReactElements: true,
|
|
138
|
+
valueName: varName,
|
|
139
|
+
// Prevent Google from crawling URLs in JSON:
|
|
140
|
+
// - https://github.com/vikejs/vike/discussions/2541#discussioncomment-13660198
|
|
141
|
+
// - https://github.com/vikejs/vike/discussions/2277
|
|
142
|
+
// - https://github.com/vikejs/vike/pull/2542
|
|
143
|
+
replacer(_key, value) {
|
|
144
|
+
if (typeof value === 'string' && value.startsWith('/')) {
|
|
145
|
+
// No need to use a reviver: https://github.com/brillout/json-serializer/blob/70fc8ed3741306391b51655b05df24e6963d1fdb/test/main.spec.ts#L74-L80
|
|
146
|
+
return { replacement: (value = '!' + value) };
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
});
|
|
112
150
|
}
|
|
113
151
|
function getPassToClientPageContext(pageContext) {
|
|
114
152
|
let passToClient = [...pageContext._passToClient, ...passToClientBuiltInPageContext];
|
|
@@ -144,7 +182,7 @@ function getPageContextClientSerializedAbort(pageContext) {
|
|
|
144
182
|
(0, utils_js_1.assert)(unknownProps.length === 0);
|
|
145
183
|
}
|
|
146
184
|
else {
|
|
147
|
-
//
|
|
185
|
+
// TO-DO/next-major-release: remove
|
|
148
186
|
(0, utils_js_1.assertWarning)(unknownProps.length === 0, [
|
|
149
187
|
"The following pageContext values won't be available on the client-side:",
|
|
150
188
|
unknownProps.map((p) => ` pageContext[${JSON.stringify(p)}]`),
|
|
@@ -155,16 +193,36 @@ function getPageContextClientSerializedAbort(pageContext) {
|
|
|
155
193
|
}
|
|
156
194
|
return serializeValue(pageContext);
|
|
157
195
|
}
|
|
158
|
-
function applyPassToClient(passToClient,
|
|
159
|
-
const
|
|
160
|
-
|
|
196
|
+
function applyPassToClient(passToClient, getObj) {
|
|
197
|
+
const objClient = {};
|
|
198
|
+
const objClientProps = [];
|
|
199
|
+
passToClient.forEach((entry) => {
|
|
200
|
+
const entryNormalized = normalizePassToClientEntry(entry);
|
|
201
|
+
const { prop } = entryNormalized;
|
|
202
|
+
const { obj } = getObj(entryNormalized) ?? {};
|
|
203
|
+
if (!obj)
|
|
204
|
+
return;
|
|
161
205
|
// Get value from pageContext
|
|
162
|
-
const res = (0, propKeys_js_1.getPropVal)(
|
|
206
|
+
const res = (0, propKeys_js_1.getPropVal)(obj, prop);
|
|
163
207
|
if (!res)
|
|
164
208
|
return;
|
|
165
209
|
const { value } = res;
|
|
166
210
|
// Set value to pageContextClient
|
|
167
|
-
(0, propKeys_js_1.setPropVal)(
|
|
211
|
+
(0, propKeys_js_1.setPropVal)(objClient, prop, value);
|
|
212
|
+
objClientProps.push(prop);
|
|
168
213
|
});
|
|
169
|
-
return
|
|
214
|
+
return { objClient, objClientProps };
|
|
215
|
+
}
|
|
216
|
+
function normalizePassToClientEntry(entry) {
|
|
217
|
+
let once;
|
|
218
|
+
let prop;
|
|
219
|
+
if (typeof entry === 'string') {
|
|
220
|
+
prop = entry;
|
|
221
|
+
once = false;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
prop = entry.prop;
|
|
225
|
+
once = entry.once ?? false;
|
|
226
|
+
}
|
|
227
|
+
return { prop, once };
|
|
170
228
|
}
|
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
// TO-DO/
|
|
20
|
+
// TO-DO/eventually: point package.json#exports['./server'] to this file.
|
|
21
21
|
// - Write migration guide, see comment below.
|
|
22
22
|
__exportStar(require("./index.js"), exports);
|
|
23
23
|
const utils_js_1 = require("./utils.js");
|
|
@@ -39,7 +39,7 @@ Object.defineProperty(exports, "getGlobalContextSync", { enumerable: true, get:
|
|
|
39
39
|
Object.defineProperty(exports, "getGlobalContextAsync", { enumerable: true, get: function () { return globalContext_js_1.getGlobalContextAsync; } });
|
|
40
40
|
var index_js_1 = require("../runtime-dev/index.js");
|
|
41
41
|
Object.defineProperty(exports, "createDevMiddleware", { enumerable: true, get: function () { return index_js_1.createDevMiddleware; } });
|
|
42
|
-
//
|
|
42
|
+
// TO-DO/next-major-release: remove
|
|
43
43
|
// Deprecated exports
|
|
44
44
|
__exportStar(require("../../types/index-dreprecated.js"), exports);
|
|
45
45
|
var injectAssets__public_js_1 = require("./html/injectAssets/injectAssets__public.js");
|
|
@@ -15,7 +15,7 @@ function assertArguments(...args) {
|
|
|
15
15
|
showStackTrace: true,
|
|
16
16
|
});
|
|
17
17
|
(0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(pageContextInit), `${prefix} called with ${picocolors_1.default.code(`typeof pageContextInit === ${JSON.stringify(typeof pageContextInit)}`)} but ${picocolors_1.default.code('pageContextInit')} should be an object.`, { showStackTrace: true });
|
|
18
|
-
//
|
|
18
|
+
// TO-DO/next-major-release: remove
|
|
19
19
|
if ('url' in pageContextInit) {
|
|
20
20
|
(0, utils_js_1.assertWarning)(false, '`pageContextInit.url` has been renamed to `pageContextInit.urlOriginal`: replace `renderPage({ url })` with `renderPage({ urlOriginal })`. (See https://vike.dev/migration/0.4.23 for more information.)', { showStackTrace: true, onlyOnce: true });
|
|
21
21
|
pageContextInit.urlOriginal = pageContextInit.url;
|
|
@@ -11,8 +11,8 @@ const utils_js_1 = require("../utils.js");
|
|
|
11
11
|
const error_page_js_1 = require("../../../shared/error-page.js");
|
|
12
12
|
const getHttpResponseBody_js_1 = require("./getHttpResponseBody.js");
|
|
13
13
|
const getEarlyHints_js_1 = require("./getEarlyHints.js");
|
|
14
|
-
const getCacheControl_js_1 = require("./createHttpResponse/getCacheControl.js");
|
|
15
14
|
const assertNoInfiniteHttpRedirect_js_1 = require("./createHttpResponse/assertNoInfiniteHttpRedirect.js");
|
|
15
|
+
const getCacheControl_js_1 = require("./getCacheControl.js");
|
|
16
16
|
async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
|
|
17
17
|
let statusCode = pageContext.abortStatusCode;
|
|
18
18
|
if (!statusCode) {
|
|
@@ -31,10 +31,13 @@ async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
|
|
|
31
31
|
}
|
|
32
32
|
const earlyHints = (0, getEarlyHints_js_1.getEarlyHints)(await pageContext.__getPageAssets());
|
|
33
33
|
const headers = [];
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
headers.push([
|
|
37
|
-
}
|
|
34
|
+
const headersResponse = pageContext.headersResponse || new Headers();
|
|
35
|
+
headersResponse.forEach((value, key) => {
|
|
36
|
+
headers.push([key, value]);
|
|
37
|
+
});
|
|
38
|
+
// An 5xx error page shouldn't be cached (it should be temporary)
|
|
39
|
+
if (statusCode >= 500)
|
|
40
|
+
headersResponse.set('Cache-Control', getCacheControl_js_1.cacheControlDisable);
|
|
38
41
|
return createHttpResponse(statusCode, 'text/html;charset=utf-8', headers, htmlRender, earlyHints, renderHook);
|
|
39
42
|
}
|
|
40
43
|
function createHttpResponse404(errMsg404) {
|
|
@@ -104,7 +107,7 @@ function createHttpResponse(statusCode, contentType, headers, htmlRender, earlyH
|
|
|
104
107
|
return {
|
|
105
108
|
statusCode,
|
|
106
109
|
headers,
|
|
107
|
-
//
|
|
110
|
+
// TO-DO/next-major-release: remove
|
|
108
111
|
get contentType() {
|
|
109
112
|
(0, utils_js_1.assertWarning)(false, 'pageContext.httpResponse.contentType is deprecated and will be removed in the next major release. Use pageContext.httpResponse.headers instead, see https://vike.dev/migration/0.4.134', { onlyOnce: true });
|
|
110
113
|
return contentType;
|
|
@@ -5,7 +5,7 @@ exports.createPageContextServerSideWithoutGlobalContext = createPageContextServe
|
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
6
|
const getPageContextUrlComputed_js_1 = require("../../../shared/getPageContextUrlComputed.js");
|
|
7
7
|
const createPageContextShared_js_1 = require("../../../shared/createPageContextShared.js");
|
|
8
|
-
|
|
8
|
+
function createPageContextServerSide(pageContextInit, globalContext, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
|
|
9
9
|
urlHandler: null,
|
|
10
10
|
isClientSideNavigation: false,
|
|
11
11
|
}, }) {
|
|
@@ -13,7 +13,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, { isP
|
|
|
13
13
|
const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
|
|
14
14
|
(0, utils_js_1.objectAssign)(pageContextCreated, {
|
|
15
15
|
_globalContext: globalContext,
|
|
16
|
-
_pageFilesAll: globalContext._pageFilesAll, //
|
|
16
|
+
_pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
|
|
17
17
|
// We use pageContext._baseServer and pageContext._baseAssets instead of pageContext._globalContext.baseServer and pageContext._globalContext.baseAssets because the Base URLs can (eventually one day if needed) be made non-global
|
|
18
18
|
_baseServer: globalContext.baseServer,
|
|
19
19
|
_baseAssets: globalContext.baseAssets,
|
|
@@ -35,7 +35,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, { isP
|
|
|
35
35
|
}
|
|
36
36
|
else if (pageContextInit.headers) {
|
|
37
37
|
headers = pageContextInit.headers;
|
|
38
|
-
//
|
|
38
|
+
// TO-DO/next-major-release: remove
|
|
39
39
|
(0, utils_js_1.assertWarning)(false, 'Setting pageContextInit.headers is deprecated: set pageContextInit.headersOriginal instead, see https://vike.dev/headers', { onlyOnce: true });
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
@@ -43,7 +43,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, { isP
|
|
|
43
43
|
}
|
|
44
44
|
(0, utils_js_1.objectAssign)(pageContextCreated, { headers });
|
|
45
45
|
}
|
|
46
|
-
const pageContextAugmented =
|
|
46
|
+
const pageContextAugmented = (0, createPageContextShared_js_1.createPageContextShared)(pageContextCreated, globalContext._vikeConfigPublicGlobal);
|
|
47
47
|
(0, utils_js_1.augmentType)(pageContextCreated, pageContextAugmented);
|
|
48
48
|
return pageContextCreated;
|
|
49
49
|
}
|
|
@@ -8,7 +8,7 @@ async function execHookDataAndOnBeforeRender(pageContext) {
|
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
10
|
const hooks = await (0, execHookServer_js_1.execHookServer)('data', pageContext);
|
|
11
|
-
const dataHook = hooks[0]; // TO-DO/soon: support cumulative
|
|
11
|
+
const dataHook = hooks[0]; // TO-DO/soon/cumulative-hooks: support cumulative
|
|
12
12
|
if (dataHook) {
|
|
13
13
|
// Note: hookReturn can be anything (e.g. an object) and is to be assigned to pageContext.data
|
|
14
14
|
const pageContextFromHook = {
|
|
@@ -21,7 +21,7 @@ async function execHookDataAndOnBeforeRender(pageContext) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
const res = await (0, execHookServer_js_1.execHookServer)('onBeforeRender', pageContext);
|
|
24
|
-
const onBeforeRenderHook = res[0]; // TO-DO/soon: support cumulative
|
|
24
|
+
const onBeforeRenderHook = res[0]; // TO-DO/soon/cumulative-hooks: support cumulative
|
|
25
25
|
if (onBeforeRenderHook) {
|
|
26
26
|
const { hookReturn } = onBeforeRenderHook;
|
|
27
27
|
(0, assertOnBeforeRenderHookReturn_js_1.assertOnBeforeRenderHookReturn)(hookReturn, onBeforeRenderHook.hookFilePath);
|