vike 0.4.218 → 0.4.220-commit-a9f46b8
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 +11 -11
- package/dist/cjs/node/api/build.js +22 -48
- package/dist/cjs/node/api/context.js +8 -6
- package/dist/cjs/node/api/index.js +17 -7
- package/dist/cjs/node/api/prepareViteApiCall.js +40 -13
- package/dist/cjs/node/cli/context.js +16 -0
- package/dist/cjs/node/cli/entry.js +21 -7
- package/dist/cjs/node/cli/utils.js +1 -0
- package/dist/cjs/node/plugin/index.js +5 -5
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +32 -20
- package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -10
- package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/cjs/node/plugin/plugins/commonConfig.js +41 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -23
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +171 -68
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
- package/dist/cjs/node/prerender/context.js +24 -0
- package/dist/cjs/node/prerender/runPrerender.js +146 -96
- package/dist/cjs/node/prerender/utils.js +2 -0
- package/dist/cjs/node/runtime/globalContext.js +109 -55
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/cjs/node/runtime/index-common.js +0 -15
- package/dist/cjs/node/runtime/onLoad.js +17 -3
- package/dist/cjs/node/runtime/page-files/setup.js +2 -4
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/cjs/node/runtime/renderPage.js +21 -22
- package/dist/cjs/node/runtime/utils.js +2 -0
- package/dist/cjs/node/runtime-dev/index.js +17 -7
- package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/cjs/shared/getPageFiles.js +3 -9
- package/dist/cjs/shared/hooks/getHook.js +3 -3
- package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
- package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
- package/dist/cjs/shared/utils.js +1 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +4 -3
- package/dist/cjs/utils/assertSetup.js +47 -16
- package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
- package/dist/cjs/utils/debug.js +11 -6
- package/dist/cjs/utils/getGlobalObject.js +1 -2
- package/dist/cjs/utils/isDev.js +2 -0
- package/dist/cjs/utils/makePublicCopy.js +32 -0
- package/dist/cjs/utils/objectReplace.js +9 -0
- package/dist/esm/__internal/index.d.ts +3 -5
- package/dist/esm/__internal/index.js +6 -8
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -1
- package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/entry.js +0 -1
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/history.js +23 -18
- package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/index.js +0 -1
- package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +3 -4
- package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
- package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -62
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
- package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
- package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
- package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/utils.js +1 -0
- package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/entry.js +0 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.js +5 -2
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
- package/dist/esm/client/shared/normalizeClientSideUrl.js +2 -3
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/build.d.ts +1 -6
- package/dist/esm/node/api/build.js +20 -26
- package/dist/esm/node/api/context.d.ts +4 -2
- package/dist/esm/node/api/context.js +8 -7
- package/dist/esm/node/api/prepareViteApiCall.d.ts +0 -1
- package/dist/esm/node/api/prepareViteApiCall.js +26 -9
- package/dist/esm/node/cli/context.d.ts +5 -0
- package/dist/esm/node/cli/context.js +14 -0
- package/dist/esm/node/cli/entry.js +4 -0
- package/dist/esm/node/cli/parseCli.d.ts +3 -1
- package/dist/esm/node/cli/utils.d.ts +1 -0
- package/dist/esm/node/cli/utils.js +1 -0
- package/dist/esm/node/plugin/index.d.ts +1 -1
- package/dist/esm/node/plugin/index.js +5 -5
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +32 -20
- package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/baseUrls.js +4 -11
- package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +10 -1
- package/dist/esm/node/plugin/plugins/commonConfig.js +42 -5
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -22
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +96 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +167 -64
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/esm/node/prerender/context.d.ts +9 -0
- package/dist/esm/node/prerender/context.js +22 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +42 -2
- package/dist/esm/node/prerender/runPrerender.js +130 -90
- package/dist/esm/node/prerender/utils.d.ts +2 -0
- package/dist/esm/node/prerender/utils.js +2 -0
- package/dist/esm/node/runtime/globalContext.d.ts +23 -7
- package/dist/esm/node/runtime/globalContext.js +109 -55
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/esm/node/runtime/index-common.d.ts +0 -1
- package/dist/esm/node/runtime/index-common.js +0 -15
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
- package/dist/esm/node/runtime/onLoad.js +16 -2
- package/dist/esm/node/runtime/page-files/setup.js +3 -3
- package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +31 -46
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/esm/node/runtime/renderPage.js +22 -23
- package/dist/esm/node/runtime/utils.d.ts +2 -0
- package/dist/esm/node/runtime/utils.js +2 -0
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +3 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/esm/shared/getPageFiles.d.ts +2 -5
- package/dist/esm/shared/getPageFiles.js +1 -4
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
- package/dist/esm/shared/page-configs/Config.d.ts +20 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +13 -6
- package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +26 -12
- package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
- package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +26 -6
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +1 -1
- package/dist/esm/shared/types.d.ts +1 -1
- package/dist/esm/shared/utils.d.ts +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.js +4 -3
- package/dist/esm/utils/assertSetup.js +47 -16
- package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
- package/dist/esm/utils/catchInfiniteLoop.js +32 -0
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +11 -6
- package/dist/esm/utils/getGlobalObject.js +1 -2
- package/dist/esm/utils/isDev.js +2 -0
- package/dist/esm/utils/makePublicCopy.d.ts +3 -0
- package/dist/esm/utils/makePublicCopy.js +30 -0
- package/dist/esm/utils/objectReplace.d.ts +1 -0
- package/dist/esm/utils/objectReplace.js +6 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +4 -13
- package/__internal/loadImportBuild.js +0 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
- package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
- package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
- package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
- package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
- package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
- package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
- package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
- package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
- /package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
- /package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
- /package/dist/esm/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
|
@@ -2,17 +2,11 @@ export { renderPageAlreadyRouted };
|
|
|
2
2
|
export { prerenderPage };
|
|
3
3
|
export { prerender404Page };
|
|
4
4
|
export { getPageContextInitEnhanced };
|
|
5
|
-
export { getRenderContext };
|
|
6
|
-
export type { RenderContext };
|
|
7
5
|
export type { PageContextAfterRender };
|
|
8
6
|
export type { PageContextInitEnhanced };
|
|
9
|
-
import { type PageFile } from '../../../shared/getPageFiles.js';
|
|
10
7
|
import { type PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
|
|
11
8
|
import { HttpResponse } from './createHttpResponse.js';
|
|
12
9
|
import { PageContext_loadUserFilesServerSide, type PageFiles } from './loadUserFilesServerSide.js';
|
|
13
|
-
import type { PageConfigRuntime, PageConfigGlobalRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
14
|
-
import { type PageRoutes } from '../../../shared/route/loadPageRoutes.js';
|
|
15
|
-
import type { Hook } from '../../../shared/hooks/getHook.js';
|
|
16
10
|
type PageContextAfterRender = {
|
|
17
11
|
httpResponse: HttpResponse;
|
|
18
12
|
errorWhileRendering: null | Error;
|
|
@@ -45,12 +39,12 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
45
39
|
_baseServer: string;
|
|
46
40
|
_baseAssets: string | null;
|
|
47
41
|
_includeAssetsImportedByServer: boolean;
|
|
48
|
-
_pageFilesAll: PageFile[];
|
|
49
|
-
_pageConfigs:
|
|
50
|
-
_pageConfigGlobal: PageConfigGlobalRuntime;
|
|
42
|
+
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
43
|
+
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
44
|
+
_pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
51
45
|
_allPageIds: string[];
|
|
52
|
-
_pageRoutes: PageRoutes;
|
|
53
|
-
_onBeforeRouteHook: Hook | null;
|
|
46
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
47
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
54
48
|
_pageContextInit: {
|
|
55
49
|
urlOriginal: string;
|
|
56
50
|
headersOriginal?: unknown;
|
|
@@ -65,7 +59,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
65
59
|
url: string;
|
|
66
60
|
} & {
|
|
67
61
|
headers: Record<string, string> | null;
|
|
68
|
-
} & import("../../../shared/getPageFiles.js").
|
|
62
|
+
} & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
|
|
69
63
|
Page: unknown;
|
|
70
64
|
_isHtmlOnly: boolean;
|
|
71
65
|
_passToClient: string[];
|
|
@@ -96,12 +90,12 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
96
90
|
_baseServer: string;
|
|
97
91
|
_baseAssets: string | null;
|
|
98
92
|
_includeAssetsImportedByServer: boolean;
|
|
99
|
-
_pageFilesAll: PageFile[];
|
|
100
|
-
_pageConfigs:
|
|
101
|
-
_pageConfigGlobal: PageConfigGlobalRuntime;
|
|
93
|
+
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
94
|
+
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
95
|
+
_pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
102
96
|
_allPageIds: string[];
|
|
103
|
-
_pageRoutes: PageRoutes;
|
|
104
|
-
_onBeforeRouteHook: Hook | null;
|
|
97
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
98
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
105
99
|
_pageContextInit: {
|
|
106
100
|
urlOriginal: string;
|
|
107
101
|
headersOriginal?: unknown;
|
|
@@ -116,7 +110,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
116
110
|
url: string;
|
|
117
111
|
} & {
|
|
118
112
|
headers: Record<string, string> | null;
|
|
119
|
-
} & import("../../../shared/getPageFiles.js").
|
|
113
|
+
} & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
|
|
120
114
|
Page: unknown;
|
|
121
115
|
_isHtmlOnly: boolean;
|
|
122
116
|
_passToClient: string[];
|
|
@@ -136,7 +130,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
136
130
|
_urlHandler: null;
|
|
137
131
|
};
|
|
138
132
|
}>;
|
|
139
|
-
declare function prerender404Page(
|
|
133
|
+
declare function prerender404Page(pageContextInit_: Record<string, unknown> | null): Promise<{
|
|
140
134
|
documentHtml: string;
|
|
141
135
|
pageContextSerialized: null;
|
|
142
136
|
pageContext: {
|
|
@@ -148,12 +142,12 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
148
142
|
_baseServer: string;
|
|
149
143
|
_baseAssets: string | null;
|
|
150
144
|
_includeAssetsImportedByServer: boolean;
|
|
151
|
-
_pageFilesAll: PageFile[];
|
|
152
|
-
_pageConfigs:
|
|
153
|
-
_pageConfigGlobal: PageConfigGlobalRuntime;
|
|
145
|
+
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
146
|
+
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
147
|
+
_pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
154
148
|
_allPageIds: string[];
|
|
155
|
-
_pageRoutes: PageRoutes;
|
|
156
|
-
_onBeforeRouteHook: Hook | null;
|
|
149
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
150
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
157
151
|
_pageContextInit: {
|
|
158
152
|
urlOriginal: string;
|
|
159
153
|
headersOriginal?: unknown;
|
|
@@ -168,7 +162,7 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
168
162
|
url: string;
|
|
169
163
|
} & {
|
|
170
164
|
headers: Record<string, string> | null;
|
|
171
|
-
} & import("../../../shared/getPageFiles.js").
|
|
165
|
+
} & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
|
|
172
166
|
Page: unknown;
|
|
173
167
|
_isHtmlOnly: boolean;
|
|
174
168
|
_passToClient: string[];
|
|
@@ -199,12 +193,12 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
199
193
|
_baseServer: string;
|
|
200
194
|
_baseAssets: string | null;
|
|
201
195
|
_includeAssetsImportedByServer: boolean;
|
|
202
|
-
_pageFilesAll: PageFile[];
|
|
203
|
-
_pageConfigs:
|
|
204
|
-
_pageConfigGlobal: PageConfigGlobalRuntime;
|
|
196
|
+
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
197
|
+
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
198
|
+
_pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
205
199
|
_allPageIds: string[];
|
|
206
|
-
_pageRoutes: PageRoutes;
|
|
207
|
-
_onBeforeRouteHook: Hook | null;
|
|
200
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
201
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
208
202
|
_pageContextInit: {
|
|
209
203
|
urlOriginal: string;
|
|
210
204
|
headersOriginal?: unknown;
|
|
@@ -219,7 +213,7 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
219
213
|
url: string;
|
|
220
214
|
} & {
|
|
221
215
|
headers: Record<string, string> | null;
|
|
222
|
-
} & import("../../../shared/getPageFiles.js").
|
|
216
|
+
} & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
|
|
223
217
|
Page: unknown;
|
|
224
218
|
_isHtmlOnly: boolean;
|
|
225
219
|
_passToClient: string[];
|
|
@@ -244,7 +238,7 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
244
238
|
urlOriginal: string;
|
|
245
239
|
headersOriginal?: unknown;
|
|
246
240
|
headers?: unknown;
|
|
247
|
-
},
|
|
241
|
+
}, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
|
|
248
242
|
ssr?: {
|
|
249
243
|
urlRewrite: null | string;
|
|
250
244
|
urlHandler: null | ((url: string) => string);
|
|
@@ -259,12 +253,12 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
259
253
|
_baseServer: string;
|
|
260
254
|
_baseAssets: string | null;
|
|
261
255
|
_includeAssetsImportedByServer: boolean;
|
|
262
|
-
_pageFilesAll: PageFile[];
|
|
263
|
-
_pageConfigs:
|
|
264
|
-
_pageConfigGlobal: PageConfigGlobalRuntime;
|
|
256
|
+
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
257
|
+
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
258
|
+
_pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
265
259
|
_allPageIds: string[];
|
|
266
|
-
_pageRoutes: PageRoutes;
|
|
267
|
-
_onBeforeRouteHook: Hook | null;
|
|
260
|
+
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
261
|
+
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
268
262
|
_pageContextInit: {
|
|
269
263
|
urlOriginal: string;
|
|
270
264
|
headersOriginal?: unknown;
|
|
@@ -280,12 +274,3 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
280
274
|
} & {
|
|
281
275
|
headers: Record<string, string> | null;
|
|
282
276
|
};
|
|
283
|
-
type RenderContext = {
|
|
284
|
-
pageFilesAll: PageFile[];
|
|
285
|
-
pageConfigs: PageConfigRuntime[];
|
|
286
|
-
pageConfigGlobal: PageConfigGlobalRuntime;
|
|
287
|
-
allPageIds: string[];
|
|
288
|
-
pageRoutes: PageRoutes;
|
|
289
|
-
onBeforeRouteHook: Hook | null;
|
|
290
|
-
};
|
|
291
|
-
declare function getRenderContext(): Promise<RenderContext>;
|
|
@@ -2,10 +2,8 @@ export { renderPageAlreadyRouted };
|
|
|
2
2
|
export { prerenderPage };
|
|
3
3
|
export { prerender404Page };
|
|
4
4
|
export { getPageContextInitEnhanced };
|
|
5
|
-
export { getRenderContext };
|
|
6
5
|
import { getErrorPageId } from '../../../shared/error-page.js';
|
|
7
6
|
import { getHtmlString } from '../html/renderHtml.js';
|
|
8
|
-
import { getPageFilesAll } from '../../../shared/getPageFiles.js';
|
|
9
7
|
import { assert, assertUsage, assertWarning, hasProp, normalizeHeaders, objectAssign } from '../utils.js';
|
|
10
8
|
import { serializePageContextClientSide } from '../html/serializePageContextClientSide.js';
|
|
11
9
|
import { getPageContextUrlComputed } from '../../../shared/getPageContextUrlComputed.js';
|
|
@@ -18,10 +16,8 @@ import { logRuntimeError } from './loggerRuntime.js';
|
|
|
18
16
|
import { isNewError } from './isNewError.js';
|
|
19
17
|
import { preparePageContextForUserConsumptionServerSide } from './preparePageContextForUserConsumptionServerSide.js';
|
|
20
18
|
import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
|
|
21
|
-
import { loadPageRoutes } from '../../../shared/route/loadPageRoutes.js';
|
|
22
19
|
import pc from '@brillout/picocolors';
|
|
23
20
|
import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
|
|
24
|
-
import { assertV1Design } from '../../shared/assertV1Design.js';
|
|
25
21
|
async function renderPageAlreadyRouted(pageContext) {
|
|
26
22
|
// pageContext.pageId can either be the:
|
|
27
23
|
// - ID of the page matching the routing, or the
|
|
@@ -84,8 +80,9 @@ async function prerenderPage(pageContext) {
|
|
|
84
80
|
return { documentHtml, pageContextSerialized, pageContext };
|
|
85
81
|
}
|
|
86
82
|
}
|
|
87
|
-
async function prerender404Page(
|
|
88
|
-
const
|
|
83
|
+
async function prerender404Page(pageContextInit_) {
|
|
84
|
+
const globalContext = getGlobalContext();
|
|
85
|
+
const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
|
|
89
86
|
if (!errorPageId) {
|
|
90
87
|
return null;
|
|
91
88
|
}
|
|
@@ -104,13 +101,13 @@ async function prerender404Page(renderContext, pageContextInit_) {
|
|
|
104
101
|
};
|
|
105
102
|
objectAssign(pageContextInit, pageContextInit_);
|
|
106
103
|
{
|
|
107
|
-
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit
|
|
104
|
+
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit);
|
|
108
105
|
objectAssign(pageContext, pageContextInitEnhanced);
|
|
109
106
|
}
|
|
110
107
|
objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
|
|
111
108
|
return prerenderPage(pageContext);
|
|
112
109
|
}
|
|
113
|
-
function getPageContextInitEnhanced(pageContextInit,
|
|
110
|
+
function getPageContextInitEnhanced(pageContextInit, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
|
|
114
111
|
urlRewrite: null,
|
|
115
112
|
urlHandler: null,
|
|
116
113
|
isClientSideNavigation: false
|
|
@@ -126,12 +123,12 @@ function getPageContextInitEnhanced(pageContextInit, renderContext, { ssr: { url
|
|
|
126
123
|
_baseAssets: globalContext.baseAssets,
|
|
127
124
|
_includeAssetsImportedByServer: globalContext.includeAssetsImportedByServer,
|
|
128
125
|
// TODO: use GloablContext instead
|
|
129
|
-
_pageFilesAll:
|
|
130
|
-
_pageConfigs:
|
|
131
|
-
_pageConfigGlobal:
|
|
132
|
-
_allPageIds:
|
|
133
|
-
_pageRoutes:
|
|
134
|
-
_onBeforeRouteHook:
|
|
126
|
+
_pageFilesAll: globalContext.pageFilesAll,
|
|
127
|
+
_pageConfigs: globalContext.pageConfigs,
|
|
128
|
+
_pageConfigGlobal: globalContext.pageConfigGlobal,
|
|
129
|
+
_allPageIds: globalContext.allPageIds,
|
|
130
|
+
_pageRoutes: globalContext.pageRoutes,
|
|
131
|
+
_onBeforeRouteHook: globalContext.onBeforeRouteHook,
|
|
135
132
|
_pageContextInit: pageContextInit,
|
|
136
133
|
_urlRewrite: urlRewrite,
|
|
137
134
|
_urlHandler: urlHandler,
|
|
@@ -159,22 +156,3 @@ function getPageContextInitEnhanced(pageContextInit, renderContext, { ssr: { url
|
|
|
159
156
|
}
|
|
160
157
|
return pageContextInitEnhanced;
|
|
161
158
|
}
|
|
162
|
-
// TODO: remove getRenderContext() in favor of getGlobalObject() + reloadGlobalContext()
|
|
163
|
-
// TODO: impl GlobalNodeContext + GlobalClientContext + GloablContext, and use GlobalContext instead of RenderContext
|
|
164
|
-
async function getRenderContext() {
|
|
165
|
-
const globalContext = getGlobalContext();
|
|
166
|
-
const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal } = await getPageFilesAll(false, globalContext.isProduction);
|
|
167
|
-
const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds);
|
|
168
|
-
assertV1Design(
|
|
169
|
-
// pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
|
|
170
|
-
pageConfigs.length > 0, pageFilesAll);
|
|
171
|
-
const renderContext = {
|
|
172
|
-
pageFilesAll: pageFilesAll,
|
|
173
|
-
pageConfigs,
|
|
174
|
-
pageConfigGlobal,
|
|
175
|
-
allPageIds: allPageIds,
|
|
176
|
-
pageRoutes,
|
|
177
|
-
onBeforeRouteHook
|
|
178
|
-
};
|
|
179
|
-
return renderContext;
|
|
180
|
-
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { resolveRedirects };
|
|
2
2
|
export { resolveRouteStringRedirect };
|
|
3
|
-
declare function resolveRedirects(
|
|
3
|
+
declare function resolveRedirects(redirectsAll: Record<string, string>[], urlPathname: string): null | string;
|
|
4
4
|
declare function resolveRouteStringRedirect(urlSource: string, urlTarget: string, urlPathname: string): null | string;
|
|
@@ -9,7 +9,8 @@ import pc from '@brillout/picocolors';
|
|
|
9
9
|
assertIsNotBrowser(); // Don't bloat the client
|
|
10
10
|
// TODO/next-major-release: update
|
|
11
11
|
const configSrc = '[vite.config.js > vike({ redirects })]';
|
|
12
|
-
function resolveRedirects(
|
|
12
|
+
function resolveRedirects(redirectsAll, urlPathname) {
|
|
13
|
+
const redirects = merge(redirectsAll);
|
|
13
14
|
for (const [urlSource, urlTarget] of Object.entries(redirects)) {
|
|
14
15
|
const urlResolved = resolveRouteStringRedirect(urlSource, urlTarget, urlPathname);
|
|
15
16
|
if (urlResolved)
|
|
@@ -40,3 +41,10 @@ function assertParams(urlSource, urlTarget) {
|
|
|
40
41
|
}
|
|
41
42
|
});
|
|
42
43
|
}
|
|
44
|
+
function merge(objs) {
|
|
45
|
+
const obj = {};
|
|
46
|
+
objs.forEach((e) => {
|
|
47
|
+
Object.assign(obj, e);
|
|
48
|
+
});
|
|
49
|
+
return obj;
|
|
50
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { renderPage };
|
|
2
2
|
export { renderPage_addWrapper };
|
|
3
|
-
import {
|
|
3
|
+
import { getPageContextInitEnhanced, renderPageAlreadyRouted } from './renderPage/renderPageAlreadyRouted.js';
|
|
4
4
|
import { route } from '../../shared/route/index.js';
|
|
5
5
|
import { assert, hasProp, objectAssign, isUrl, parseUrl, onSetupRuntime, assertWarning, getGlobalObject, checkType, assertUsage, normalizeUrlPathname, removeBaseServer, modifyUrlPathname, prependBase, removeUrlOrigin, setUrlOrigin, createUrlFromComponents, isUri, getUrlPretty } from './utils.js';
|
|
6
6
|
import { assertNoInfiniteAbortLoop, getPageContextFromAllRewrites, isAbortError, logAbortErrorHandled } from '../../shared/route/abort.js';
|
|
@@ -60,10 +60,8 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
// Prepare context
|
|
63
|
-
let renderContext;
|
|
64
63
|
try {
|
|
65
64
|
await initGlobalContext_renderPage();
|
|
66
|
-
renderContext = await getRenderContext();
|
|
67
65
|
}
|
|
68
66
|
catch (err) {
|
|
69
67
|
// Errors are expected since assertUsage() is used in both initGlobalContext_renderPage() and getRenderContext().
|
|
@@ -77,7 +75,7 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
|
|
|
77
75
|
return handleInvalidConfig(isConfigInvalid.err);
|
|
78
76
|
}
|
|
79
77
|
else {
|
|
80
|
-
// From now on,
|
|
78
|
+
// From now on, gloablContext contains all the configuration data; getVikeConfig() isn't called anymore for this request
|
|
81
79
|
}
|
|
82
80
|
// Check Base URL
|
|
83
81
|
assertBaseUrl(pageContextInit);
|
|
@@ -93,9 +91,9 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
|
|
|
93
91
|
if (pageContextHttpResponse)
|
|
94
92
|
return pageContextHttpResponse;
|
|
95
93
|
}
|
|
96
|
-
return await renderPageAlreadyPrepared(pageContextInit, httpRequestId,
|
|
94
|
+
return await renderPageAlreadyPrepared(pageContextInit, httpRequestId, []);
|
|
97
95
|
}
|
|
98
|
-
async function renderPageAlreadyPrepared(pageContextInit, httpRequestId,
|
|
96
|
+
async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageContextsFromRewrite) {
|
|
99
97
|
assertNoInfiniteAbortLoop(pageContextsFromRewrite.length,
|
|
100
98
|
// There doesn't seem to be a way to count the number of HTTP redirects (vike don't have access to the HTTP request headers/cookies)
|
|
101
99
|
// https://stackoverflow.com/questions/9683007/detect-infinite-http-redirect-loop-on-server-side
|
|
@@ -107,7 +105,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
|
|
|
107
105
|
objectAssign(pageContextNominalPageInit, pageContextFromAllRewrites);
|
|
108
106
|
}
|
|
109
107
|
{
|
|
110
|
-
const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit,
|
|
108
|
+
const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, pageContextNominalPageInit._urlRewrite, httpRequestId);
|
|
111
109
|
objectAssign(pageContextNominalPageInit, pageContextInitEnhanced);
|
|
112
110
|
}
|
|
113
111
|
let errNominalPage;
|
|
@@ -139,10 +137,10 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
|
|
|
139
137
|
assert(pageContextNominalPageSuccess === undefined);
|
|
140
138
|
assert(pageContextNominalPageInit);
|
|
141
139
|
assert(hasProp(pageContextNominalPageInit, 'urlOriginal', 'string'));
|
|
142
|
-
const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPageInit,
|
|
140
|
+
const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPageInit, httpRequestId);
|
|
143
141
|
// Handle `throw redirect()` and `throw render()` while rendering nominal page
|
|
144
142
|
if (isAbortError(errNominalPage)) {
|
|
145
|
-
const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId,
|
|
143
|
+
const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
|
|
146
144
|
if (handled.pageContextReturn) {
|
|
147
145
|
// - throw redirect()
|
|
148
146
|
// - throw render(url)
|
|
@@ -155,7 +153,8 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
|
|
|
155
153
|
Object.assign(pageContextErrorPageInit, handled.pageContextAbort);
|
|
156
154
|
}
|
|
157
155
|
{
|
|
158
|
-
const
|
|
156
|
+
const globalContext = getGlobalContext();
|
|
157
|
+
const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
|
|
159
158
|
if (!errorPageId) {
|
|
160
159
|
objectAssign(pageContextErrorPageInit, { pageId: null });
|
|
161
160
|
return handleErrorWithoutErrorPage(pageContextErrorPageInit);
|
|
@@ -171,7 +170,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
|
|
|
171
170
|
catch (errErrorPage) {
|
|
172
171
|
// Handle `throw redirect()` and `throw render()` while rendering error page
|
|
173
172
|
if (isAbortError(errErrorPage)) {
|
|
174
|
-
const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId,
|
|
173
|
+
const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
|
|
175
174
|
// throw render(abortStatusCode)
|
|
176
175
|
if (!handled.pageContextReturn) {
|
|
177
176
|
const pageContextAbort = errErrorPage._pageContextAbort;
|
|
@@ -287,8 +286,8 @@ async function renderPageNominal(pageContext) {
|
|
|
287
286
|
assert(pageContext === pageContextAfterRender);
|
|
288
287
|
return pageContextAfterRender;
|
|
289
288
|
}
|
|
290
|
-
async function getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPagePartial,
|
|
291
|
-
const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit,
|
|
289
|
+
async function getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPagePartial, httpRequestId) {
|
|
290
|
+
const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, null, httpRequestId);
|
|
292
291
|
assert(errNominalPage);
|
|
293
292
|
const pageContext = {};
|
|
294
293
|
objectAssign(pageContext, pageContextInitEnhanced);
|
|
@@ -303,9 +302,9 @@ async function getPageContextErrorPageInit(pageContextInit, errNominalPage, page
|
|
|
303
302
|
assert(pageContext.errorWhileRendering);
|
|
304
303
|
return pageContext;
|
|
305
304
|
}
|
|
306
|
-
function getPageContextInitEnhancedSSR(pageContextInit,
|
|
305
|
+
function getPageContextInitEnhancedSSR(pageContextInit, urlRewrite, httpRequestId) {
|
|
307
306
|
const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
|
|
308
|
-
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit,
|
|
307
|
+
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit, {
|
|
309
308
|
ssr: {
|
|
310
309
|
urlRewrite,
|
|
311
310
|
urlHandler: _urlHandler,
|
|
@@ -354,12 +353,12 @@ function normalizeUrl(pageContextInit, httpRequestId) {
|
|
|
354
353
|
return pageContextHttpResponse;
|
|
355
354
|
}
|
|
356
355
|
function getPermanentRedirect(pageContextInit, httpRequestId) {
|
|
357
|
-
const
|
|
358
|
-
const urlWithoutBase = removeBaseServer(pageContextInit.urlOriginal, baseServer);
|
|
356
|
+
const globalContext = getGlobalContext();
|
|
357
|
+
const urlWithoutBase = removeBaseServer(pageContextInit.urlOriginal, globalContext.baseServer);
|
|
359
358
|
let origin = null;
|
|
360
359
|
let urlTargetExternal = null;
|
|
361
360
|
let urlTarget = modifyUrlPathname(urlWithoutBase, (urlPathname) => {
|
|
362
|
-
const urlTarget = resolveRedirects(redirects, urlPathname);
|
|
361
|
+
const urlTarget = resolveRedirects(globalContext.vikeConfig.global.config.redirects ?? [], urlPathname);
|
|
363
362
|
if (urlTarget === null)
|
|
364
363
|
return null;
|
|
365
364
|
if (!isUrl(urlTarget)) {
|
|
@@ -387,7 +386,7 @@ function getPermanentRedirect(pageContextInit, httpRequestId) {
|
|
|
387
386
|
if (normalize(urlTarget) === normalize(urlWithoutBase))
|
|
388
387
|
return null;
|
|
389
388
|
if (!originChanged)
|
|
390
|
-
urlTarget = prependBase(urlTarget, baseServer);
|
|
389
|
+
urlTarget = prependBase(urlTarget, globalContext.baseServer);
|
|
391
390
|
assert(urlTarget !== pageContextInit.urlOriginal);
|
|
392
391
|
}
|
|
393
392
|
logRuntimeInfo?.(`Permanent redirection defined by config.redirects (https://vike.dev/redirects)`, httpRequestId, 'info');
|
|
@@ -401,13 +400,14 @@ function normalize(url) {
|
|
|
401
400
|
}
|
|
402
401
|
async function handleAbortError(errAbort, pageContextsFromRewrite, pageContextInit,
|
|
403
402
|
// handleAbortError() creates a new pageContext object and we don't merge pageContextNominalPageInit to it: we only use some pageContextNominalPageInit information.
|
|
404
|
-
pageContextNominalPageInit, httpRequestId,
|
|
403
|
+
pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
|
|
405
404
|
logAbortErrorHandled(errAbort, getGlobalContext().isProduction, pageContextNominalPageInit);
|
|
406
405
|
const pageContextAbort = errAbort._pageContextAbort;
|
|
407
406
|
let pageContextSerialized;
|
|
408
407
|
if (pageContextNominalPageInit.isClientSideNavigation) {
|
|
409
408
|
if (pageContextAbort.abortStatusCode) {
|
|
410
|
-
const
|
|
409
|
+
const globalContext = getGlobalContext();
|
|
410
|
+
const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
|
|
411
411
|
const abortCall = pageContextAbort._abortCall;
|
|
412
412
|
assert(abortCall);
|
|
413
413
|
assertUsage(errorPageId, `You called ${pc.cyan(abortCall)} but you didn't define an error page, make sure to define one https://vike.dev/error-page`);
|
|
@@ -415,7 +415,6 @@ pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageIn
|
|
|
415
415
|
objectAssign(pageContext, { pageId: errorPageId });
|
|
416
416
|
objectAssign(pageContext, pageContextAbort);
|
|
417
417
|
objectAssign(pageContext, pageContextErrorPageInit);
|
|
418
|
-
objectAssign(pageContext, renderContext);
|
|
419
418
|
objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
|
|
420
419
|
// We include pageContextInit: we don't only serialize pageContextAbort because the error page may need to access pageContextInit
|
|
421
420
|
pageContextSerialized = serializePageContextClientSide(pageContext);
|
|
@@ -428,7 +427,7 @@ pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageIn
|
|
|
428
427
|
return { pageContextReturn };
|
|
429
428
|
}
|
|
430
429
|
if (pageContextAbort._urlRewrite) {
|
|
431
|
-
const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, httpRequestId,
|
|
430
|
+
const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, httpRequestId, [
|
|
432
431
|
...pageContextsFromRewrite,
|
|
433
432
|
pageContextAbort
|
|
434
433
|
]);
|
|
@@ -15,6 +15,7 @@ export * from '../../utils/projectInfo.js';
|
|
|
15
15
|
export * from '../../utils/isArray.js';
|
|
16
16
|
export * from '../../utils/isObject.js';
|
|
17
17
|
export * from '../../utils/objectAssign.js';
|
|
18
|
+
export * from '../../utils/objectReplace.js';
|
|
18
19
|
export * from '../../utils/PromiseType.js';
|
|
19
20
|
export * from '../../utils/compareString.js';
|
|
20
21
|
export * from '../../utils/isObjectWithKeys.js';
|
|
@@ -55,3 +56,4 @@ export * from '../../utils/isVikeReactApp.js';
|
|
|
55
56
|
export * from '../../utils/getPropAccessNotation.js';
|
|
56
57
|
export * from '../../utils/PROJECT_VERSION.js';
|
|
57
58
|
export * from '../../utils/genPromise.js';
|
|
59
|
+
export * from '../../utils/makePublicCopy.js';
|
|
@@ -19,6 +19,7 @@ export * from '../../utils/projectInfo.js';
|
|
|
19
19
|
export * from '../../utils/isArray.js';
|
|
20
20
|
export * from '../../utils/isObject.js';
|
|
21
21
|
export * from '../../utils/objectAssign.js';
|
|
22
|
+
export * from '../../utils/objectReplace.js';
|
|
22
23
|
export * from '../../utils/PromiseType.js';
|
|
23
24
|
export * from '../../utils/compareString.js';
|
|
24
25
|
export * from '../../utils/isObjectWithKeys.js';
|
|
@@ -59,3 +60,4 @@ export * from '../../utils/isVikeReactApp.js';
|
|
|
59
60
|
export * from '../../utils/getPropAccessNotation.js';
|
|
60
61
|
export * from '../../utils/PROJECT_VERSION.js';
|
|
61
62
|
export * from '../../utils/genPromise.js';
|
|
63
|
+
export * from '../../utils/makePublicCopy.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { assertRuntimeManifest };
|
|
2
|
-
import { assert,
|
|
2
|
+
import { assert, checkType, hasProp, isBaseAssets, isBaseServer, isObject } from './utils.js';
|
|
3
3
|
function assertRuntimeManifest(obj) {
|
|
4
4
|
assert(obj);
|
|
5
5
|
assert(isObject(obj));
|
|
@@ -8,8 +8,6 @@ function assertRuntimeManifest(obj) {
|
|
|
8
8
|
assert(isBaseServer(obj.baseServer));
|
|
9
9
|
assert(isBaseAssets(obj.baseAssets));
|
|
10
10
|
assert(hasProp(obj, 'includeAssetsImportedByServer', 'boolean'));
|
|
11
|
-
assert(hasProp(obj, 'redirects', 'object'));
|
|
12
|
-
castType(obj);
|
|
13
11
|
assert(hasProp(obj, 'trailingSlash', 'boolean'));
|
|
14
12
|
assert(hasProp(obj, 'disableUrlNormalization', 'boolean'));
|
|
15
13
|
checkType(obj);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { analyzeClientSide };
|
|
2
|
-
import { getConfigValueRuntime } from '../page-configs/
|
|
2
|
+
import { getConfigValueRuntime } from '../page-configs/getConfigValueRuntime.js';
|
|
3
3
|
import { analyzePageClientSide } from './analyzePageClientSide.js';
|
|
4
4
|
function analyzeClientSide(pageConfig, pageFilesAll, pageId) {
|
|
5
5
|
// V1 design
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
export { getPageFilesAll };
|
|
1
2
|
export { setPageFiles };
|
|
2
3
|
export { setPageFilesAsync };
|
|
3
|
-
export { getPageFilesAll };
|
|
4
4
|
import type { PageFile } from './getPageFileObject.js';
|
|
5
5
|
import type { PageConfigRuntime, PageConfigGlobalRuntime } from '../page-configs/PageConfig.js';
|
|
6
|
+
import { type ConfigUserFriendly } from '../page-configs/getPageConfigUserFriendly.js';
|
|
6
7
|
declare function setPageFiles(pageFilesExports: unknown): void;
|
|
7
8
|
declare function setPageFilesAsync(getPageFilesExports: () => Promise<unknown>): void;
|
|
8
9
|
declare function getPageFilesAll(isClientSide: boolean, isProduction?: boolean): Promise<{
|
|
@@ -10,4 +11,5 @@ declare function getPageFilesAll(isClientSide: boolean, isProduction?: boolean):
|
|
|
10
11
|
allPageIds: string[];
|
|
11
12
|
pageConfigs: PageConfigRuntime[];
|
|
12
13
|
pageConfigGlobal: PageConfigGlobalRuntime;
|
|
14
|
+
globalConfig: ConfigUserFriendly;
|
|
13
15
|
}>;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
+
export { getPageFilesAll };
|
|
1
2
|
export { setPageFiles };
|
|
2
3
|
export { setPageFilesAsync };
|
|
3
|
-
export { getPageFilesAll };
|
|
4
4
|
import { assert, unique } from '../utils.js';
|
|
5
5
|
import { parseGlobResults } from './parseGlobResults.js';
|
|
6
6
|
import { getGlobalObject } from '../../utils/getGlobalObject.js';
|
|
7
|
+
import { getPageConfigUserFriendlyNew } from '../page-configs/getPageConfigUserFriendly.js';
|
|
7
8
|
const globalObject = getGlobalObject('setPageFiles.ts', {});
|
|
8
|
-
// TODO:v1-design-release: rename setPageFiles() getPageFilesAll() parseGlobResult()
|
|
9
9
|
function setPageFiles(pageFilesExports) {
|
|
10
10
|
const { pageFiles, pageConfigs, pageConfigGlobal } = parseGlobResults(pageFilesExports);
|
|
11
11
|
globalObject.pageFilesAll = pageFiles;
|
|
12
12
|
globalObject.pageConfigs = pageConfigs;
|
|
13
13
|
globalObject.pageConfigGlobal = pageConfigGlobal;
|
|
14
|
+
// TODO/now: re-use this call, instead of calling it twice
|
|
15
|
+
globalObject.globalConfig = getPageConfigUserFriendlyNew(pageConfigGlobal);
|
|
14
16
|
}
|
|
15
17
|
function setPageFilesAsync(getPageFilesExports) {
|
|
16
18
|
globalObject.pageFilesGetter = async () => {
|
|
@@ -23,18 +25,18 @@ async function getPageFilesAll(isClientSide, isProduction) {
|
|
|
23
25
|
assert(isProduction === undefined);
|
|
24
26
|
}
|
|
25
27
|
else {
|
|
26
|
-
assert(globalObject.pageFilesGetter);
|
|
27
28
|
assert(typeof isProduction === 'boolean');
|
|
28
29
|
if (!globalObject.pageFilesAll ||
|
|
29
30
|
// We reload all glob imports in dev to make auto-reload work
|
|
30
31
|
!isProduction) {
|
|
32
|
+
assert(globalObject.pageFilesGetter);
|
|
31
33
|
await globalObject.pageFilesGetter();
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
|
-
const { pageFilesAll, pageConfigs, pageConfigGlobal } = globalObject;
|
|
35
|
-
assert(pageFilesAll && pageConfigs && pageConfigGlobal);
|
|
36
|
+
const { pageFilesAll, pageConfigs, pageConfigGlobal, globalConfig } = globalObject;
|
|
37
|
+
assert(pageFilesAll && pageConfigs && pageConfigGlobal && globalConfig);
|
|
36
38
|
const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
|
|
37
|
-
return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal };
|
|
39
|
+
return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, globalConfig };
|
|
38
40
|
}
|
|
39
41
|
function getAllPageIds(allPageFiles, pageConfigs) {
|
|
40
42
|
const fileIds = allPageFiles.filter(({ isDefaultPageFile }) => !isDefaultPageFile).map(({ pageId }) => pageId);
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export type { PageFile } from './getPageFiles/getPageFileObject.js';
|
|
2
|
-
export type { ExportsAll,
|
|
3
|
-
export { getPageFilesAll } from './getPageFiles/setPageFiles.js';
|
|
4
|
-
export { setPageFiles } from './getPageFiles/setPageFiles.js';
|
|
5
|
-
export { setPageFilesAsync } from './getPageFiles/setPageFiles.js';
|
|
2
|
+
export type { ExportsAll, PageConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
|
|
6
3
|
export { getPageFilesClientSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
7
4
|
export { getPageFilesServerSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
8
|
-
export {
|
|
5
|
+
export { getPageConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export { getPageFilesAll } from './getPageFiles/setPageFiles.js';
|
|
2
|
-
export { setPageFiles } from './getPageFiles/setPageFiles.js';
|
|
3
|
-
export { setPageFilesAsync } from './getPageFiles/setPageFiles.js';
|
|
4
1
|
export { getPageFilesClientSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
5
2
|
export { getPageFilesServerSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
6
|
-
export {
|
|
3
|
+
export { getPageConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
|
|
@@ -9,7 +9,7 @@ export type { HookLoc };
|
|
|
9
9
|
export type { HookTimeout };
|
|
10
10
|
export type { HooksTimeoutProvidedByUser };
|
|
11
11
|
export { getHookTimeoutDefault };
|
|
12
|
-
import type {
|
|
12
|
+
import type { PageConfigUserFriendly } from '../getPageFiles.js';
|
|
13
13
|
import type { HookName, HookNamePage, HookNameGlobal } from '../page-configs/Config.js';
|
|
14
14
|
import type { PageConfigGlobalRuntime, PageConfigRuntime } from '../page-configs/PageConfig.js';
|
|
15
15
|
type Hook = HookLoc & {
|
|
@@ -26,10 +26,10 @@ type HookTimeout = {
|
|
|
26
26
|
warning: number | false;
|
|
27
27
|
};
|
|
28
28
|
type HooksTimeoutProvidedByUser = false | Partial<Record<HookName, false | Partial<HookTimeout>>>;
|
|
29
|
-
declare function getHook(pageContext:
|
|
29
|
+
declare function getHook(pageContext: PageConfigUserFriendly, hookName: HookName): null | Hook;
|
|
30
30
|
declare function getHookFromPageConfig(pageConfig: PageConfigRuntime, hookName: HookNamePage): null | Hook;
|
|
31
31
|
declare function getHookFromPageConfigGlobal(pageConfigGlobal: PageConfigGlobalRuntime, hookName: HookNameGlobal): null | Hook;
|
|
32
|
-
declare function assertHook<TPageContext extends
|
|
32
|
+
declare function assertHook<TPageContext extends PageConfigUserFriendly, THookName extends PropertyKey & HookName>(pageContext: TPageContext, hookName: THookName): asserts pageContext is TPageContext & {
|
|
33
33
|
exports: Record<THookName, Function | undefined>;
|
|
34
34
|
};
|
|
35
35
|
declare function getHookTimeoutDefault(hookName: HookName): HookTimeout;
|
|
@@ -8,7 +8,7 @@ export { getHook_setIsPrerenderering };
|
|
|
8
8
|
export { getHookTimeoutDefault };
|
|
9
9
|
import { getGlobalObject } from '../../utils/getGlobalObject.js';
|
|
10
10
|
import { getHookFilePathToShowToUser } from '../page-configs/helpers.js';
|
|
11
|
-
import { getConfigValueRuntime } from '../page-configs/
|
|
11
|
+
import { getConfigValueRuntime } from '../page-configs/getConfigValueRuntime.js';
|
|
12
12
|
import { assert, assertUsage, checkType, isCallable, isObject } from '../utils.js';
|
|
13
13
|
import pc from '@brillout/picocolors';
|
|
14
14
|
const globalObject = getGlobalObject('getHook.ts', {});
|