vike 0.4.235 → 0.4.236
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 +29 -12
- 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 +34 -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/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 +3 -3
- 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/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 +14 -14
- package/dist/esm/node/runtime/globalContext.js +31 -14
- 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 +35 -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/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 +3 -3
- package/dist/esm/utils/debugGlob.js +1 -1
- package/dist/esm/utils/parseNpmPackage.js +1 -1
- package/package.json +2 -5
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// TO-DO/soon/same-api: use public API internally?
|
|
2
|
+
// TO-DO/soon/flat-pageContext: rename definedAt => definedBy
|
|
3
3
|
export { resolveVikeConfigPublicGlobal };
|
|
4
4
|
export { resolveVikeConfigPublicPageEager };
|
|
5
5
|
export { resolveVikeConfigPublicPageLazy };
|
|
@@ -47,10 +47,10 @@ function resolveVikeConfigPublicPageLazy(pageFiles, // V0.4 design
|
|
|
47
47
|
pageConfig, // V1 design
|
|
48
48
|
pageConfigGlobal) {
|
|
49
49
|
const config = {};
|
|
50
|
-
const configEntries = {}; //
|
|
51
|
-
const exportsAll = {}; //
|
|
50
|
+
const configEntries = {}; // TO-DO/next-major-release: remove
|
|
51
|
+
const exportsAll = {}; // TO-DO/next-major-release: remove
|
|
52
52
|
// V0.4 design
|
|
53
|
-
//
|
|
53
|
+
// TO-DO/next-major-release: remove
|
|
54
54
|
pageFiles.forEach((pageFile) => {
|
|
55
55
|
const exportValues = getExportValues(pageFile);
|
|
56
56
|
exportValues.forEach(({ exportName, exportValue, isFromDefaultExport }) => {
|
|
@@ -60,7 +60,7 @@ pageConfigGlobal) {
|
|
|
60
60
|
exportValue,
|
|
61
61
|
exportSource: `${pageFile.filePath} > ${isFromDefaultExport ? `\`export default { ${exportName} }\`` : `\`export { ${exportName} }\``}`,
|
|
62
62
|
filePath: pageFile.filePath,
|
|
63
|
-
_filePath: pageFile.filePath, //
|
|
63
|
+
_filePath: pageFile.filePath, // TO-DO/next-major-release: remove
|
|
64
64
|
_fileType: pageFile.fileType,
|
|
65
65
|
_isFromDefaultExport: isFromDefaultExport,
|
|
66
66
|
});
|
|
@@ -105,18 +105,18 @@ pageConfigGlobal) {
|
|
|
105
105
|
});
|
|
106
106
|
assert(!('default' in exports));
|
|
107
107
|
assert(!('default' in exportsAll));
|
|
108
|
-
const
|
|
108
|
+
const configPublicPageLazy = {
|
|
109
109
|
config: config,
|
|
110
110
|
from,
|
|
111
111
|
source,
|
|
112
112
|
sources,
|
|
113
|
-
//
|
|
113
|
+
// TO-DO/soon/flat-pageContext: deprecate every prop below
|
|
114
114
|
configEntries,
|
|
115
115
|
exports,
|
|
116
116
|
exportsAll,
|
|
117
117
|
};
|
|
118
|
-
//
|
|
119
|
-
objectDefineProperty(
|
|
118
|
+
// TO-DO/next-major-release: remove
|
|
119
|
+
objectDefineProperty(configPublicPageLazy, 'pageExports', {
|
|
120
120
|
get: () => {
|
|
121
121
|
// We only show the warning in Node.js because when using Client Routing Vue integration uses `Object.assign(pageContextReactive, pageContext)` which will wrongully trigger the warning. There is no cross-browser way to catch whether the property accessor was initiated by an `Object.assign()` call.
|
|
122
122
|
if (!isBrowser()) {
|
|
@@ -130,7 +130,7 @@ pageConfigGlobal) {
|
|
|
130
130
|
enumerable: false,
|
|
131
131
|
configurable: true,
|
|
132
132
|
});
|
|
133
|
-
return
|
|
133
|
+
return configPublicPageLazy;
|
|
134
134
|
}
|
|
135
135
|
// V1 design
|
|
136
136
|
function resolveVikeConfigPublic_V1Design(pageConfig) {
|
|
@@ -158,7 +158,7 @@ function resolveVikeConfigPublic_V1Design(pageConfig) {
|
|
|
158
158
|
configDefinedAt,
|
|
159
159
|
configDefinedByFile: configValueFilePathToShowToUser,
|
|
160
160
|
});
|
|
161
|
-
//
|
|
161
|
+
// TO-DO/next-major-release: remove
|
|
162
162
|
const exportName = configName;
|
|
163
163
|
exportsAll[exportName] = exportsAll[exportName] ?? [];
|
|
164
164
|
exportsAll[exportName].push({
|
|
@@ -173,7 +173,7 @@ function logJsonSerializeError(err, configName, definedAtData) {
|
|
|
173
173
|
//*/
|
|
174
174
|
const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(definedAtData);
|
|
175
175
|
assert(configValueFilePathToShowToUser);
|
|
176
|
-
assertUsage(false, `${pc.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined
|
|
176
|
+
assertUsage(false, `${pc.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined using a separate file ${pc.bold(`+${configName}.js`)}, see https://vike.dev/error/runtime-in-config`);
|
|
177
177
|
}
|
|
178
178
|
function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
|
|
179
179
|
const fromComputed = Object.entries(pageConfig.configValuesComputed ?? {}).map(([configName, valueInfo]) => {
|
|
@@ -9,7 +9,7 @@ function preparePageContextForPublicUsage(pageContext) {
|
|
|
9
9
|
assert(!pageContext.globalContext); // pageContext.globalContext should only be available to users — Vike itself should use pageContext._globalContext instead
|
|
10
10
|
assert(pageContext._isOriginalObject); // ensure we preserve the original object reference
|
|
11
11
|
addIs404ToPageProps(pageContext);
|
|
12
|
-
//
|
|
12
|
+
// TO-DO/next-major-release: remove
|
|
13
13
|
if (!('_pageId' in pageContext)) {
|
|
14
14
|
Object.defineProperty(pageContext, '_pageId', {
|
|
15
15
|
get() {
|
|
@@ -27,7 +27,7 @@ function preparePageContextForPublicUsage(pageContext) {
|
|
|
27
27
|
const globalContextPublic = prepareGlobalContextForPublicUsage(pageContext._globalContext);
|
|
28
28
|
const pageContextPublic = getProxyForPublicUsage(pageContext, 'pageContext',
|
|
29
29
|
// We must skip it in the client-side because of the reactivity mechanism of UI frameworks like Solid.
|
|
30
|
-
// -
|
|
30
|
+
// - TO-DO/soon/proxy: double check whether that's true
|
|
31
31
|
true, (prop) => {
|
|
32
32
|
if (prop === 'globalContext') {
|
|
33
33
|
return globalContextPublic;
|
|
@@ -65,11 +65,11 @@ function assertPropertyGetters(pageContext) {
|
|
|
65
65
|
;
|
|
66
66
|
[
|
|
67
67
|
'urlPathname',
|
|
68
|
-
//
|
|
68
|
+
// TO-DO/next-major-release: remove
|
|
69
69
|
'urlParsed',
|
|
70
|
-
//
|
|
70
|
+
// TO-DO/next-major-release: remove
|
|
71
71
|
'url',
|
|
72
|
-
//
|
|
72
|
+
// TO-DO/next-major-release: remove
|
|
73
73
|
'pageExports',
|
|
74
74
|
].forEach((prop) => {
|
|
75
75
|
if (pageContext.prop)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Unit tests at ./deduceRouteStringFromFilesystemPath.spec.ts
|
|
2
2
|
import { assert, higherFirst, slice } from './utils.js';
|
|
3
3
|
export { deduceRouteStringFromFilesystemPath };
|
|
4
|
-
//
|
|
4
|
+
// TO-DO/next-major-release: remove this and whole filesystemRoot mechanism
|
|
5
5
|
function deduceRouteStringFromFilesystemPath(pageId, filesystemRoots) {
|
|
6
6
|
// Handle Filesystem Routing Root
|
|
7
7
|
const filesystemRootsMatch = filesystemRoots
|
|
@@ -6,7 +6,7 @@ const errIntro = 'The guard() hook defined by';
|
|
|
6
6
|
async function execHookGuard(pageContext, prepareForPublicUsage) {
|
|
7
7
|
let hook;
|
|
8
8
|
if (pageContext._globalContext._pageFilesAll.length > 0) {
|
|
9
|
-
//
|
|
9
|
+
// TO-DO/next-major-release: remove
|
|
10
10
|
// V0.4 design
|
|
11
11
|
assert(pageContext._globalContext._pageConfigs.length === 0);
|
|
12
12
|
hook = findPageGuard(pageContext.pageId, pageContext._globalContext._pageFilesAll);
|
|
@@ -36,7 +36,7 @@ async function execHookOnBeforeRoute(pageContext) {
|
|
|
36
36
|
async function getPageContextFromHook(onBeforeRouteHook, pageContext) {
|
|
37
37
|
let { hookReturn } = execHookDirectSync(onBeforeRouteHook, pageContext, preparePageContextForPublicUsage);
|
|
38
38
|
assertSyncRouting(hookReturn, `The onBeforeRoute() hook ${onBeforeRouteHook.hookFilePath}`);
|
|
39
|
-
//
|
|
39
|
+
// TO-DO/next-major-release: make execHookOnBeforeRoute() and route() sync
|
|
40
40
|
hookReturn = await hookReturn;
|
|
41
41
|
const errPrefix = `The onBeforeRoute() hook defined by ${onBeforeRouteHook.hookFilePath}`;
|
|
42
42
|
assertUsage(hookReturn === null ||
|
|
@@ -12,7 +12,7 @@ import { resolveRouteFunction } from './resolveRouteFunction.js';
|
|
|
12
12
|
import { execHookOnBeforeRoute } from './execHookOnBeforeRoute.js';
|
|
13
13
|
import { debug } from './debug.js';
|
|
14
14
|
import pc from '@brillout/picocolors';
|
|
15
|
-
//
|
|
15
|
+
// TO-DO/next-major-release: make it sync
|
|
16
16
|
async function route(pageContext, skipOnBeforeRouteHook) {
|
|
17
17
|
debug('Pages routes:', pageContext._globalContext._pageRoutes);
|
|
18
18
|
const pageContextFromRoute = {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { loadPageRoutes };
|
|
2
|
+
export { loadPageRoutesSync };
|
|
2
3
|
export type { PageRoutes };
|
|
3
4
|
export type { RouteType };
|
|
4
5
|
import type { PageFile } from '../getPageFiles.js';
|
|
@@ -28,3 +29,7 @@ declare function loadPageRoutes(pageFilesAll: PageFile[], pageConfigs: PageConfi
|
|
|
28
29
|
pageRoutes: PageRoutes;
|
|
29
30
|
onBeforeRouteHook: null | Hook;
|
|
30
31
|
}>;
|
|
32
|
+
declare function loadPageRoutesSync(pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[], pageConfigGlobal: PageConfigGlobalRuntime, allPageIds: string[]): {
|
|
33
|
+
pageRoutes: PageRoutes;
|
|
34
|
+
onBeforeRouteHook: null | Hook;
|
|
35
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { loadPageRoutes };
|
|
2
|
+
export { loadPageRoutesSync };
|
|
2
3
|
import { isErrorPageId } from '../error-page.js';
|
|
3
4
|
import { assert, assertUsage, hasProp, slice } from './utils.js';
|
|
4
5
|
import { deduceRouteStringFromFilesystemPath } from './deduceRouteStringFromFilesystemPath.js';
|
|
@@ -10,8 +11,13 @@ import { getHookFromPageConfigGlobal, getHookTimeoutDefault } from '../hooks/get
|
|
|
10
11
|
async function loadPageRoutes(
|
|
11
12
|
// Remove all arguments and use GlobalContextServerInternal instead?
|
|
12
13
|
pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds) {
|
|
13
|
-
//
|
|
14
|
+
// TO-DO/next-major-release: remove this line, remove this function, rename loadPageRoutesSync() to loadPageRoutes()
|
|
14
15
|
await Promise.all(pageFilesAll.filter((p) => p.fileType === '.page.route').map((p) => p.loadFile?.()));
|
|
16
|
+
return loadPageRoutesSync(pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds);
|
|
17
|
+
}
|
|
18
|
+
function loadPageRoutesSync(
|
|
19
|
+
// Remove all arguments and use GlobalContextServerInternal instead?
|
|
20
|
+
pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds) {
|
|
15
21
|
const { onBeforeRouteHook, filesystemRoots } = getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal);
|
|
16
22
|
const pageRoutes = getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds);
|
|
17
23
|
return { pageRoutes, onBeforeRouteHook };
|
|
@@ -49,7 +55,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
|
|
|
49
55
|
const { filePathToShowToUser } = definedAtData;
|
|
50
56
|
assert(filePathToShowToUser);
|
|
51
57
|
assert(isCallable(route));
|
|
52
|
-
//
|
|
58
|
+
// TO-DO/next-major-release: remove
|
|
53
59
|
if (getConfigValueRuntime(pageConfig, 'iKnowThePerformanceRisksOfAsyncRouteFunctions', 'boolean'))
|
|
54
60
|
warnDeprecatedAllowKey();
|
|
55
61
|
pageRoute = {
|
|
@@ -82,7 +88,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
|
|
|
82
88
|
});
|
|
83
89
|
}
|
|
84
90
|
// Old design
|
|
85
|
-
//
|
|
91
|
+
// TO-DO/next-major-release: remove
|
|
86
92
|
if (pageConfigs.length === 0) {
|
|
87
93
|
assert(filesystemRoots);
|
|
88
94
|
const comesFromV1PageConfig = false;
|
|
@@ -149,7 +155,7 @@ function getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal) {
|
|
|
149
155
|
return { onBeforeRouteHook: hook, filesystemRoots: null };
|
|
150
156
|
}
|
|
151
157
|
// Old design
|
|
152
|
-
//
|
|
158
|
+
// TO-DO/next-major-release: remove
|
|
153
159
|
let onBeforeRouteHook = null;
|
|
154
160
|
const filesystemRoots = [];
|
|
155
161
|
pageFilesAll
|
|
@@ -13,7 +13,7 @@ async function resolveRouteFunction(routeFunction, pageContext, routeFunctionFil
|
|
|
13
13
|
hookName: 'route',
|
|
14
14
|
}, pageContext, preparePageContextForPublicUsage);
|
|
15
15
|
assertSyncRouting(result, `The Route Function ${routeFunctionFilePath}`);
|
|
16
|
-
//
|
|
16
|
+
// TO-DO/next-major-release: make resolveRouteFunction() and route() sync
|
|
17
17
|
//* We disallow asynchronous routing, because we need to check whether a link is a Vike link in a synchronous fashion before calling ev.preventDefault() in the 'click' event listener
|
|
18
18
|
result = await result;
|
|
19
19
|
//*/
|
|
@@ -49,11 +49,11 @@ async function resolveRouteFunction(routeFunction, pageContext, routeFunctionFil
|
|
|
49
49
|
routeParams,
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
//
|
|
52
|
+
// TO-DO/next-major-release: remove, and make routing synchronous (enabling Vike to synchronously check whether a link is a Vike link before even calling ev.preventDefault())
|
|
53
53
|
function assertSyncRouting(res, errPrefix) {
|
|
54
54
|
assertWarning(!isPromise(res), `${errPrefix} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`, { onlyOnce: true });
|
|
55
55
|
}
|
|
56
|
-
//
|
|
56
|
+
// TO-DO/next-major-release: remove
|
|
57
57
|
function warnDeprecatedAllowKey() {
|
|
58
58
|
const allowKey = pc.cyan('iKnowThePerformanceRisksOfAsyncRouteFunctions');
|
|
59
59
|
assertWarning(false, `${allowKey} is deprecated and will be removed in the next major release`, { onlyOnce: true });
|
|
@@ -8,7 +8,7 @@ import { assertWarning, isBrowser, escapeRegex } from '../utils.js';
|
|
|
8
8
|
import { assert, assertUsage } from './utils.js';
|
|
9
9
|
import pc from '@brillout/picocolors';
|
|
10
10
|
const PARAM_TOKEN_NEW = '@';
|
|
11
|
-
//
|
|
11
|
+
// TO-DO/next-major-release: remove
|
|
12
12
|
const PARAM_TOKEN_OLD = ':';
|
|
13
13
|
function assertRouteString(routeString, errPrefix = 'Invalid') {
|
|
14
14
|
let errPrefix2 = `${errPrefix} Route String ${highlight(routeString)}`;
|
|
@@ -44,6 +44,7 @@ import type { Vike, VikePackages } from './VikeNamespace.js';
|
|
|
44
44
|
import type { HooksTimeoutProvidedByUser } from '../shared/hooks/getHook.js';
|
|
45
45
|
import type { GlobalContext, PageContextClient, PageContextServer } from './PageContext.js';
|
|
46
46
|
import type { InlineConfig } from 'vite';
|
|
47
|
+
import type { PassToClient } from '../node/runtime/html/serializeContext.js';
|
|
47
48
|
type HookNameOld = HookName | HookNameOldDesign;
|
|
48
49
|
type HookName = HookNamePage | HookNameGlobal;
|
|
49
50
|
type HookNamePage = 'onHydrationEnd' | 'onBeforePrerenderStart' | 'onBeforeRender' | 'onPageTransitionStart' | 'onPageTransitionEnd' | 'onRenderHtml' | 'onRenderClient' | 'guard' | 'data' | 'onData' | 'route';
|
|
@@ -362,7 +363,7 @@ type ConfigBuiltIn = {
|
|
|
362
363
|
*
|
|
363
364
|
* https://vike.dev/passToClient
|
|
364
365
|
*/
|
|
365
|
-
passToClient?:
|
|
366
|
+
passToClient?: PassToClient | ImportString;
|
|
366
367
|
/** Hook called when page is rendered on the client-side.
|
|
367
368
|
*
|
|
368
369
|
* https://vike.dev/onRenderClient
|
|
@@ -508,6 +509,12 @@ type ConfigBuiltIn = {
|
|
|
508
509
|
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
|
|
509
510
|
*/
|
|
510
511
|
cacheControl?: string;
|
|
512
|
+
/**
|
|
513
|
+
* Add HTTP headers to the HTTP response.
|
|
514
|
+
*
|
|
515
|
+
* https://vike.dev/headers#response
|
|
516
|
+
*/
|
|
517
|
+
headersResponse?: HeadersInit;
|
|
511
518
|
/**
|
|
512
519
|
* Make development/preview server available over LAN and public addresses.
|
|
513
520
|
*
|
|
@@ -561,6 +568,7 @@ type ConfigBuiltInResolved = {
|
|
|
561
568
|
redirects?: Record<string, string>[];
|
|
562
569
|
prerender?: Exclude<Config['prerender'], ImportString | undefined>[];
|
|
563
570
|
middleware?: Function[];
|
|
571
|
+
headersResponse?: HeadersInit[];
|
|
564
572
|
};
|
|
565
573
|
type ConfigMeta = Record<string, ConfigDefinition>;
|
|
566
574
|
type ImportString = `import:${string}`;
|
|
@@ -81,7 +81,7 @@ type PageContextBuiltInCommon<Data> = {
|
|
|
81
81
|
*/
|
|
82
82
|
urlOriginal: string;
|
|
83
83
|
/**
|
|
84
|
-
* The HTTP
|
|
84
|
+
* The HTTP request headers.
|
|
85
85
|
*
|
|
86
86
|
* As a string object normalized by Vike.
|
|
87
87
|
*
|
|
@@ -90,7 +90,7 @@ type PageContextBuiltInCommon<Data> = {
|
|
|
90
90
|
*/
|
|
91
91
|
headers: Record<string, string> | null;
|
|
92
92
|
/**
|
|
93
|
-
* The HTTP
|
|
93
|
+
* The HTTP request headers.
|
|
94
94
|
*
|
|
95
95
|
* The original object provided by the server.
|
|
96
96
|
*
|
|
@@ -98,6 +98,12 @@ type PageContextBuiltInCommon<Data> = {
|
|
|
98
98
|
* https://vike.dev/pageContext#headersOriginal
|
|
99
99
|
*/
|
|
100
100
|
headersOriginal?: unknown;
|
|
101
|
+
/**
|
|
102
|
+
* The HTTP response headers.
|
|
103
|
+
*
|
|
104
|
+
* https://vike.dev/headers#response
|
|
105
|
+
*/
|
|
106
|
+
headersResponse: Headers;
|
|
101
107
|
/** If an error occurs, whether the error is a `404 Page Not Found`.
|
|
102
108
|
*
|
|
103
109
|
* https://vike.dev/error-page
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.236";
|
|
@@ -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.236';
|
|
@@ -30,7 +30,7 @@ function onSetupRuntime() {
|
|
|
30
30
|
return;
|
|
31
31
|
assertNodeEnvIsNotUndefinedString();
|
|
32
32
|
if (!setup.viteDevServer && setup.isViteDev === undefined) {
|
|
33
|
-
//
|
|
33
|
+
// TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
|
|
34
34
|
assertWarning(!isNodeEnvDev(), `The ${getEnvDescription()}, which is contradictory because the environment seems to be a production environment (Vite isn't loaded), see https://vike.dev/NODE_ENV`, { onlyOnce: true });
|
|
35
35
|
assertUsage(!setup.vikeVitePlugin, `Loading Vike's Vite plugin (the ${pc.cyan('vike/plugin')} module) is prohibited in production.`);
|
|
36
36
|
// This assert() one of the main goal of this file: it ensures assertIsNotProductionRuntime()
|
|
@@ -38,7 +38,7 @@ function onSetupRuntime() {
|
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
40
|
if (!setup.isPreview && !setup.vitePreviewServer && !setup.isPrerendering) {
|
|
41
|
-
//
|
|
41
|
+
// TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
|
|
42
42
|
assertWarning(isNodeEnvDev(), `The ${getEnvDescription()}, but Vite is loaded which is prohibited in production, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
|
|
43
43
|
}
|
|
44
44
|
assert(setup.vikeVitePlugin);
|
|
@@ -108,7 +108,7 @@ function markSetup_isPreview() {
|
|
|
108
108
|
function assertUsageNodeEnvIsNotDev(operation) {
|
|
109
109
|
if (!isNodeEnvDev())
|
|
110
110
|
return;
|
|
111
|
-
//
|
|
111
|
+
// TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
|
|
112
112
|
assertWarning(false, `The ${getEnvDescription()} which is forbidden upon ${operation}, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
|
|
113
113
|
}
|
|
114
114
|
function getEnvDescription() {
|
|
@@ -52,7 +52,7 @@ function isPathAliasRecommended(alias) {
|
|
|
52
52
|
// - In principle, we could allow path aliases that don't start with special character as long as they can be distinguished from npm package names.
|
|
53
53
|
// - But we still enforce path aliases to start with a special character because it's a much simpler rule to follow.
|
|
54
54
|
if (alias.startsWith('@/'))
|
|
55
|
-
return true; // Needed by contra.com
|
|
55
|
+
return true; // Needed by contra.com and https://github.com/vikejs/vike/issues/1567#issuecomment-3076374243
|
|
56
56
|
const firstLetter = alias[0];
|
|
57
57
|
assert(firstLetter);
|
|
58
58
|
if (firstLetter === '@' || /[0-9a-z]/.test(firstLetter.toLowerCase()))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.236",
|
|
4
4
|
"repository": "https://github.com/vikejs/vike",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": {
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
},
|
|
121
121
|
"dependencies": {
|
|
122
122
|
"@brillout/import": "^0.2.6",
|
|
123
|
-
"@brillout/json-serializer": "^0.5.
|
|
123
|
+
"@brillout/json-serializer": "^0.5.16",
|
|
124
124
|
"@brillout/picocolors": "^1.0.26",
|
|
125
125
|
"@brillout/require-shim": "^0.1.2",
|
|
126
126
|
"@brillout/vite-plugin-server-entry": "^0.7.8",
|
|
@@ -245,13 +245,10 @@
|
|
|
245
245
|
"./universal-middleware.js"
|
|
246
246
|
],
|
|
247
247
|
"devDependencies": {
|
|
248
|
-
"@biomejs/biome": "^1.9.4",
|
|
249
248
|
"@brillout/release-me": "^0.4.2",
|
|
250
249
|
"@types/estree": "^1.0.5",
|
|
251
|
-
"@types/jest": "^29.5.11",
|
|
252
250
|
"@types/node": "^20.10.5",
|
|
253
251
|
"@types/picomatch": "^3.0.2",
|
|
254
|
-
"@types/resolve": "^1.20.6",
|
|
255
252
|
"@types/semver": "^7.5.8",
|
|
256
253
|
"@types/source-map-support": "^0.5.10",
|
|
257
254
|
"react-streaming": "^0.4.2",
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { getCacheControl };
|
|
2
|
-
import type { PageConfigRuntime } from '../../../../types/PageConfig.js';
|
|
3
|
-
import type { HttpResponse } from '../createHttpResponse.js';
|
|
4
|
-
type StatusCode = HttpResponse['statusCode'];
|
|
5
|
-
declare function getCacheControl(pageId: string | null, pageConfigs: PageConfigRuntime[], statusCode: StatusCode): string;
|