vike 0.4.229-commit-58f7ed0 → 0.4.229-commit-5da80bf
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/client/server-routing-runtime/utils.js +1 -0
- package/dist/cjs/client/shared/{preparePageContextForUserConsumptionClientSide.js → preparePageContextForPublicUsageClientShared.js} +15 -19
- package/dist/cjs/node/api/build.js +1 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -6
- package/dist/cjs/node/plugin/shared/loggerNotProd.js +2 -2
- package/dist/cjs/node/prerender/runPrerender.js +42 -38
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +13 -27
- package/dist/cjs/node/runtime/html/serializeContext.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +0 -1
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +6 -9
- package/dist/cjs/node/runtime/renderPage/execHookServer.js +11 -0
- package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
- package/dist/cjs/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
- package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +10 -0
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
- package/dist/cjs/node/runtime/renderPage.js +9 -7
- package/dist/cjs/node/runtime/utils.js +1 -1
- package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -1
- package/dist/cjs/shared/addIs404ToPageProps.js +0 -7
- package/dist/cjs/shared/createGlobalContextShared.js +37 -8
- package/dist/cjs/shared/createPageContextShared.js +16 -11
- package/dist/cjs/shared/getPageContext.js +3 -3
- package/dist/cjs/shared/getPageContextUrlComputed.js +2 -36
- package/dist/cjs/shared/getProxyForPublicUsage.js +106 -0
- package/dist/cjs/shared/hooks/execHook.js +164 -0
- package/dist/cjs/shared/hooks/getHook.js +23 -4
- package/dist/cjs/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +54 -47
- package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +10 -0
- package/dist/cjs/shared/preparePageContextForPublicUsage.js +75 -0
- package/dist/cjs/shared/route/abort.js +2 -2
- package/dist/cjs/shared/route/executeGuardHook.js +4 -9
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +4 -3
- package/dist/cjs/shared/route/index.js +2 -4
- package/dist/cjs/shared/route/loadPageRoutes.js +6 -0
- package/dist/cjs/shared/route/resolveRouteFunction.js +14 -10
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/objectAssign.js +3 -3
- package/dist/cjs/utils/objectDefineProperty.js +1 -1
- package/dist/esm/client/client-routing-runtime/{createPageContext.d.ts → createPageContextClientSide.d.ts} +21 -13
- package/dist/esm/client/client-routing-runtime/{createPageContext.js → createPageContextClientSide.js} +9 -11
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +400 -15
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +46 -44
- package/dist/esm/client/client-routing-runtime/globalContext.d.ts +11 -1
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +3 -8
- package/dist/esm/client/client-routing-runtime/prefetch.js +3 -3
- package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.d.ts +11 -0
- package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +135 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +79 -78
- 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/createPageContextClientSide.d.ts +19 -13
- package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +12 -15
- package/dist/esm/client/server-routing-runtime/entry.js +4 -4
- package/dist/esm/client/server-routing-runtime/globalContext.d.ts +11 -1
- package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.d.ts +9 -0
- package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
- package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/server-routing-runtime/utils.js +1 -0
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +11 -1
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +3 -3
- package/dist/esm/client/shared/executeOnRenderClientHook.js +4 -13
- package/dist/esm/client/shared/{loadUserFilesClientSide.d.ts → loadPageConfigsLazyClientSide.d.ts} +2 -2
- package/dist/esm/client/shared/{loadUserFilesClientSide.js → loadPageConfigsLazyClientSide.js} +4 -4
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +11 -0
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +40 -0
- package/dist/esm/node/api/build.js +1 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -6
- package/dist/esm/node/plugin/shared/loggerNotProd.js +1 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +37 -73
- package/dist/esm/node/prerender/runPrerender.js +42 -38
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +46 -251
- package/dist/esm/node/runtime/globalContext.js +14 -28
- package/dist/esm/node/runtime/html/serializeContext.d.ts +1 -1
- package/dist/esm/node/runtime/html/serializeContext.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +0 -1
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +26 -41
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +7 -10
- package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +12 -0
- package/dist/esm/node/runtime/renderPage/execHookServer.js +9 -0
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -3
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +4 -2
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
- package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.d.ts → loadPageConfigsLazyServerSide.d.ts} +6 -6
- package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +20 -0
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +8 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +38 -74
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
- package/dist/esm/node/runtime/renderPage.d.ts +21 -39
- package/dist/esm/node/runtime/renderPage.js +9 -7
- package/dist/esm/node/runtime/utils.d.ts +1 -1
- package/dist/esm/node/runtime/utils.js +1 -1
- package/dist/esm/shared/NOT_SERIALIZABLE.js +0 -1
- package/dist/esm/shared/addIs404ToPageProps.d.ts +1 -6
- package/dist/esm/shared/addIs404ToPageProps.js +1 -8
- package/dist/esm/shared/createGlobalContextShared.d.ts +28 -6
- package/dist/esm/shared/createGlobalContextShared.js +37 -8
- package/dist/esm/shared/createPageContextShared.d.ts +7 -6
- package/dist/esm/shared/createPageContextShared.js +17 -12
- package/dist/esm/shared/getPageContext.d.ts +1 -1
- package/dist/esm/shared/getPageContext.js +1 -1
- package/dist/esm/shared/getPageContextUrlComputed.d.ts +2 -5
- package/dist/esm/shared/getPageContextUrlComputed.js +3 -37
- package/dist/esm/shared/getPageFiles.d.ts +1 -1
- package/dist/esm/shared/getProxyForPublicUsage.d.ts +12 -0
- package/dist/esm/shared/getProxyForPublicUsage.js +104 -0
- package/dist/esm/shared/hooks/execHook.d.ts +63 -0
- package/dist/esm/shared/hooks/execHook.js +162 -0
- package/dist/esm/shared/hooks/getHook.d.ts +10 -11
- package/dist/esm/shared/hooks/getHook.js +23 -4
- package/dist/esm/shared/page-configs/Config.d.ts +11 -4
- package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.d.ts → getUserFriendlyConfigs.d.ts} +8 -6
- package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +55 -48
- package/dist/esm/shared/prepareGlobalContextForPublicUsage.d.ts +7 -0
- package/dist/esm/shared/prepareGlobalContextForPublicUsage.js +8 -0
- package/dist/esm/shared/preparePageContextForPublicUsage.d.ts +12 -0
- package/dist/esm/shared/preparePageContextForPublicUsage.js +73 -0
- package/dist/esm/shared/route/abort.js +1 -1
- package/dist/esm/shared/route/executeGuardHook.d.ts +4 -3
- package/dist/esm/shared/route/executeGuardHook.js +4 -9
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +4 -3
- package/dist/esm/shared/route/index.js +2 -4
- package/dist/esm/shared/route/loadPageRoutes.d.ts +2 -1
- package/dist/esm/shared/route/loadPageRoutes.js +7 -1
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
- package/dist/esm/shared/route/resolveRouteFunction.js +14 -10
- package/dist/esm/shared/types.d.ts +14 -4
- package/dist/esm/shared/utils.d.ts +2 -0
- package/dist/esm/shared/utils.js +2 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/objectAssign.d.ts +1 -1
- package/dist/esm/utils/objectAssign.js +3 -3
- package/dist/esm/utils/objectDefineProperty.d.ts +0 -1
- package/dist/esm/utils/objectDefineProperty.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/client/shared/getPageContextProxyForUser.js +0 -16
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -16
- package/dist/cjs/shared/getPageConfigsRuntime.js +0 -23
- package/dist/cjs/shared/hooks/executeHook.js +0 -87
- package/dist/cjs/shared/hooks/executeHookGeneric.js +0 -18
- package/dist/cjs/shared/preparePageContextForUserConsumption.js +0 -34
- package/dist/cjs/utils/getPublicProxy.js +0 -27
- package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +0 -2
- package/dist/esm/client/shared/getPageContextProxyForUser.js +0 -14
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +0 -12
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.js +0 -44
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +0 -24
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -14
- package/dist/esm/shared/getPageConfigsRuntime.d.ts +0 -14
- package/dist/esm/shared/getPageConfigsRuntime.js +0 -21
- package/dist/esm/shared/hooks/executeHook.d.ts +0 -21
- package/dist/esm/shared/hooks/executeHook.js +0 -85
- package/dist/esm/shared/hooks/executeHookGeneric.d.ts +0 -8
- package/dist/esm/shared/hooks/executeHookGeneric.js +0 -16
- package/dist/esm/shared/preparePageContextForUserConsumption.d.ts +0 -5
- package/dist/esm/shared/preparePageContextForUserConsumption.js +0 -32
- package/dist/esm/utils/getPublicProxy.d.ts +0 -2
- package/dist/esm/utils/getPublicProxy.js +0 -25
|
@@ -5,7 +5,7 @@ export { runPrerender_forceExit };
|
|
|
5
5
|
export type { PrerenderOptions };
|
|
6
6
|
export type { PrerenderContextPublic };
|
|
7
7
|
import type { PageFile } from '../../shared/getPageFiles.js';
|
|
8
|
-
import { type GlobalContextServerInternal
|
|
8
|
+
import { type GlobalContextServerInternal } from '../runtime/globalContext.js';
|
|
9
9
|
import type { InlineConfig, ResolvedConfig } from 'vite';
|
|
10
10
|
import type { APIOptions } from '../api/types.js';
|
|
11
11
|
type ProvidedByHook = null | {
|
|
@@ -22,6 +22,7 @@ type PageContextPrerendered = {
|
|
|
22
22
|
pageId: string;
|
|
23
23
|
};
|
|
24
24
|
type PrerenderedPageContexts = Record<string, PageContextPrerendered>;
|
|
25
|
+
type PrerenderContextPublic = Pick<PrerenderContext, 'pageContexts' | 'output'>;
|
|
25
26
|
type PrerenderContext = {
|
|
26
27
|
pageContexts: PageContext[];
|
|
27
28
|
output: Output;
|
|
@@ -66,23 +67,35 @@ declare function runPrerenderFromCLIPrerenderCommand(): Promise<void>;
|
|
|
66
67
|
declare function runPrerenderFromAutoRun(viteConfig: InlineConfig | undefined): Promise<{
|
|
67
68
|
forceExit: boolean;
|
|
68
69
|
}>;
|
|
69
|
-
declare function createPageContextPrerendering(urlOriginal: string, prerenderContext: PrerenderContext, globalContext: GlobalContextServerInternal,
|
|
70
|
-
|
|
70
|
+
declare function createPageContextPrerendering(urlOriginal: string, prerenderContext: PrerenderContext, globalContext: GlobalContextServerInternal, is404: boolean, pageId: string | undefined, providedByHook: ProvidedByHook): Promise<((({
|
|
71
|
+
_isOriginalObject: true;
|
|
72
|
+
isPageContext: true;
|
|
73
|
+
} & {
|
|
74
|
+
isClientSide: false;
|
|
71
75
|
isPrerendering: boolean;
|
|
72
|
-
} & Pick<import("../../shared/types.js").
|
|
76
|
+
} & Pick<import("../../shared/types.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
|
|
73
77
|
url?: string;
|
|
74
78
|
headers?: Record<string, string>;
|
|
75
79
|
} & {
|
|
76
|
-
globalContext: GlobalContextServer;
|
|
77
80
|
_globalContext: {
|
|
78
81
|
isGlobalContext: true;
|
|
82
|
+
_isOriginalObject: true;
|
|
79
83
|
_virtualFileExports: unknown;
|
|
80
84
|
_pageFilesAll: PageFile[];
|
|
81
85
|
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
82
86
|
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
83
87
|
_allPageIds: string[];
|
|
88
|
+
_userFriendlyConfigsGlobal: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
|
|
84
89
|
config: import("../../types/index.js").ConfigResolved;
|
|
85
|
-
pages:
|
|
90
|
+
pages: {
|
|
91
|
+
[k: string]: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
|
|
92
|
+
route: import("../../shared/page-configs/Config.js").Route;
|
|
93
|
+
isErrorPage?: undefined;
|
|
94
|
+
} | {
|
|
95
|
+
route?: undefined;
|
|
96
|
+
isErrorPage: true;
|
|
97
|
+
});
|
|
98
|
+
};
|
|
86
99
|
} & ({
|
|
87
100
|
_isProduction: false;
|
|
88
101
|
_isPrerendering: false;
|
|
@@ -104,14 +117,6 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
104
117
|
isClientSide: false;
|
|
105
118
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
106
119
|
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
107
|
-
isGlobalContext: true;
|
|
108
|
-
_virtualFileExports: unknown;
|
|
109
|
-
_pageFilesAll: PageFile[];
|
|
110
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
111
|
-
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
112
|
-
_allPageIds: string[];
|
|
113
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
114
|
-
pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
115
120
|
} | {
|
|
116
121
|
_isPrerendering: true;
|
|
117
122
|
viteConfig: ResolvedConfig;
|
|
@@ -134,14 +139,6 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
134
139
|
isClientSide: false;
|
|
135
140
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
136
141
|
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
137
|
-
isGlobalContext: true;
|
|
138
|
-
_virtualFileExports: unknown;
|
|
139
|
-
_pageFilesAll: PageFile[];
|
|
140
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
141
|
-
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
142
|
-
_allPageIds: string[];
|
|
143
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
144
|
-
pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
145
142
|
} | {
|
|
146
143
|
_isPrerendering: false;
|
|
147
144
|
viteConfig: null;
|
|
@@ -164,14 +161,6 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
164
161
|
isClientSide: false;
|
|
165
162
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
166
163
|
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
167
|
-
isGlobalContext: true;
|
|
168
|
-
_virtualFileExports: unknown;
|
|
169
|
-
_pageFilesAll: PageFile[];
|
|
170
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
171
|
-
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
172
|
-
_allPageIds: string[];
|
|
173
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
174
|
-
pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
175
164
|
});
|
|
176
165
|
_baseServer: string;
|
|
177
166
|
_baseAssets: string;
|
|
@@ -186,18 +175,12 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
186
175
|
_urlRewrite: null;
|
|
187
176
|
_urlHandler: ((url: string) => string) | null;
|
|
188
177
|
isClientSideNavigation: boolean;
|
|
189
|
-
} & {
|
|
178
|
+
} & import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & {
|
|
190
179
|
urlParsed: import("../shared/utils.js").UrlPublic;
|
|
191
180
|
urlPathname: string;
|
|
192
181
|
url: string;
|
|
193
182
|
} & {
|
|
194
183
|
headers: Record<string, string> | null;
|
|
195
|
-
} & {
|
|
196
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
197
|
-
_source: import("../../shared/page-configs/getPageConfigUserFriendly.js").Source;
|
|
198
|
-
_sources: import("../../shared/page-configs/getPageConfigUserFriendly.js").Sources;
|
|
199
|
-
_from: import("../../shared/page-configs/getPageConfigUserFriendly.js").From;
|
|
200
|
-
isPageContext: true;
|
|
201
184
|
} & {
|
|
202
185
|
_urlHandler: null;
|
|
203
186
|
_httpRequestId: null;
|
|
@@ -208,22 +191,34 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
208
191
|
_urlOriginalModifiedByHook: ProvidedByHookTransformer;
|
|
209
192
|
is404: boolean;
|
|
210
193
|
} & import("../../shared/route/index.js").PageContextFromRoute & Record<"pageId", string>) | ({
|
|
211
|
-
|
|
194
|
+
_isOriginalObject: true;
|
|
195
|
+
isPageContext: true;
|
|
196
|
+
} & {
|
|
197
|
+
isClientSide: false;
|
|
212
198
|
isPrerendering: boolean;
|
|
213
|
-
} & Pick<import("../../shared/types.js").
|
|
199
|
+
} & Pick<import("../../shared/types.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
|
|
214
200
|
url?: string;
|
|
215
201
|
headers?: Record<string, string>;
|
|
216
202
|
} & {
|
|
217
|
-
globalContext: GlobalContextServer;
|
|
218
203
|
_globalContext: {
|
|
219
204
|
isGlobalContext: true;
|
|
205
|
+
_isOriginalObject: true;
|
|
220
206
|
_virtualFileExports: unknown;
|
|
221
207
|
_pageFilesAll: PageFile[];
|
|
222
208
|
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
223
209
|
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
224
210
|
_allPageIds: string[];
|
|
211
|
+
_userFriendlyConfigsGlobal: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
|
|
225
212
|
config: import("../../types/index.js").ConfigResolved;
|
|
226
|
-
pages:
|
|
213
|
+
pages: {
|
|
214
|
+
[k: string]: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
|
|
215
|
+
route: import("../../shared/page-configs/Config.js").Route;
|
|
216
|
+
isErrorPage?: undefined;
|
|
217
|
+
} | {
|
|
218
|
+
route?: undefined;
|
|
219
|
+
isErrorPage: true;
|
|
220
|
+
});
|
|
221
|
+
};
|
|
227
222
|
} & ({
|
|
228
223
|
_isProduction: false;
|
|
229
224
|
_isPrerendering: false;
|
|
@@ -245,14 +240,6 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
245
240
|
isClientSide: false;
|
|
246
241
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
247
242
|
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
248
|
-
isGlobalContext: true;
|
|
249
|
-
_virtualFileExports: unknown;
|
|
250
|
-
_pageFilesAll: PageFile[];
|
|
251
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
252
|
-
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
253
|
-
_allPageIds: string[];
|
|
254
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
255
|
-
pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
256
243
|
} | {
|
|
257
244
|
_isPrerendering: true;
|
|
258
245
|
viteConfig: ResolvedConfig;
|
|
@@ -275,14 +262,6 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
275
262
|
isClientSide: false;
|
|
276
263
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
277
264
|
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
278
|
-
isGlobalContext: true;
|
|
279
|
-
_virtualFileExports: unknown;
|
|
280
|
-
_pageFilesAll: PageFile[];
|
|
281
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
282
|
-
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
283
|
-
_allPageIds: string[];
|
|
284
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
285
|
-
pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
286
265
|
} | {
|
|
287
266
|
_isPrerendering: false;
|
|
288
267
|
viteConfig: null;
|
|
@@ -305,14 +284,6 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
305
284
|
isClientSide: false;
|
|
306
285
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
307
286
|
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
308
|
-
isGlobalContext: true;
|
|
309
|
-
_virtualFileExports: unknown;
|
|
310
|
-
_pageFilesAll: PageFile[];
|
|
311
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
312
|
-
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
313
|
-
_allPageIds: string[];
|
|
314
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
315
|
-
pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
316
287
|
});
|
|
317
288
|
_baseServer: string;
|
|
318
289
|
_baseAssets: string;
|
|
@@ -327,18 +298,12 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
327
298
|
_urlRewrite: null;
|
|
328
299
|
_urlHandler: ((url: string) => string) | null;
|
|
329
300
|
isClientSideNavigation: boolean;
|
|
330
|
-
} & {
|
|
301
|
+
} & import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & {
|
|
331
302
|
urlParsed: import("../shared/utils.js").UrlPublic;
|
|
332
303
|
urlPathname: string;
|
|
333
304
|
url: string;
|
|
334
305
|
} & {
|
|
335
306
|
headers: Record<string, string> | null;
|
|
336
|
-
} & {
|
|
337
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
338
|
-
_source: import("../../shared/page-configs/getPageConfigUserFriendly.js").Source;
|
|
339
|
-
_sources: import("../../shared/page-configs/getPageConfigUserFriendly.js").Sources;
|
|
340
|
-
_from: import("../../shared/page-configs/getPageConfigUserFriendly.js").From;
|
|
341
|
-
isPageContext: true;
|
|
342
307
|
} & {
|
|
343
308
|
_urlHandler: null;
|
|
344
309
|
_httpRequestId: null;
|
|
@@ -363,4 +328,3 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
363
328
|
_usesClientRouter: boolean;
|
|
364
329
|
}>;
|
|
365
330
|
declare function runPrerender_forceExit(): void;
|
|
366
|
-
type PrerenderContextPublic = Pick<PrerenderContext, 'output' | 'pageContexts'>;
|
|
@@ -4,7 +4,7 @@ export { runPrerenderFromAutoRun };
|
|
|
4
4
|
export { runPrerender_forceExit };
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { route } from '../../shared/route/index.js';
|
|
7
|
-
import { assert, assertUsage, assertWarning, hasProp, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, onSetupPrerender,
|
|
7
|
+
import { assert, assertUsage, assertWarning, hasProp, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, onSetupPrerender, PROJECT_VERSION, preservePropertyGetters, changeEnumerable } from './utils.js';
|
|
8
8
|
import { prerenderPage } from '../runtime/renderPage/renderPageAlreadyRouted.js';
|
|
9
9
|
import { createPageContextServerSide } from '../runtime/renderPage/createPageContextServerSide.js';
|
|
10
10
|
import pc from '@brillout/picocolors';
|
|
@@ -18,12 +18,12 @@ import { getConfigValueRuntime } from '../../shared/page-configs/getConfigValueR
|
|
|
18
18
|
import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
|
|
19
19
|
import { getErrorPageId, isErrorPage } from '../../shared/error-page.js';
|
|
20
20
|
import { isAbortError } from '../../shared/route/abort.js';
|
|
21
|
-
import {
|
|
21
|
+
import { loadPageConfigsLazyServerSide } from '../runtime/renderPage/loadPageConfigsLazyServerSide.js';
|
|
22
22
|
import { getHookFromPageConfig, getHookFromPageConfigGlobal, getHookTimeoutDefault, getHook_setIsPrerenderering } from '../../shared/hooks/getHook.js';
|
|
23
23
|
import { noRouteMatch } from '../../shared/route/noRouteMatch.js';
|
|
24
24
|
import { getVikeConfig } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
|
|
25
25
|
import { logErrorHint } from '../runtime/renderPage/logErrorHint.js';
|
|
26
|
-
import {
|
|
26
|
+
import { execHookWithoutPageContext, isUserHookError } from '../../shared/hooks/execHook.js';
|
|
27
27
|
import { prepareViteApiCall } from '../api/prepareViteApiCall.js';
|
|
28
28
|
import { setContextIsPrerendering } from './context.js';
|
|
29
29
|
import { resolvePrerenderConfigGlobal, resolvePrerenderConfigLocal } from './resolvePrerenderConfig.js';
|
|
@@ -32,6 +32,8 @@ import { isVikeCli } from '../cli/context.js';
|
|
|
32
32
|
import { isViteCliCall } from '../plugin/shared/isViteCliCall.js';
|
|
33
33
|
import { getVikeConfigInternal } from '../plugin/plugins/commonConfig.js';
|
|
34
34
|
import fs from 'node:fs';
|
|
35
|
+
import { getProxyForPublicUsage } from '../../shared/getProxyForPublicUsage.js';
|
|
36
|
+
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
35
37
|
async function runPrerenderFromAPI(options = {}) {
|
|
36
38
|
return await runPrerender(options, 'prerender()');
|
|
37
39
|
// - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
|
|
@@ -94,7 +96,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
94
96
|
}
|
|
95
97
|
const concurrencyLimit = pLimit(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? cpus().length : parallel);
|
|
96
98
|
await initGlobalContext_runPrerender();
|
|
97
|
-
const { globalContext
|
|
99
|
+
const { globalContext } = await getGlobalContextServerInternal();
|
|
98
100
|
globalContext._pageFilesAll.forEach(assertExportNames);
|
|
99
101
|
const prerenderContext = {
|
|
100
102
|
pageContexts: [],
|
|
@@ -107,13 +109,13 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
107
109
|
await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
|
|
108
110
|
// Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
|
|
109
111
|
// https://vike.dev/onBeforePrerenderStart
|
|
110
|
-
await callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
112
|
+
await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
|
|
111
113
|
// Create `pageContext` for each page with a static route
|
|
112
114
|
const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
|
|
113
|
-
await createPageContexts(urlList, prerenderContext, globalContext,
|
|
115
|
+
await createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, false);
|
|
114
116
|
// Create `pageContext` for 404 page
|
|
115
117
|
const urlList404 = getUrlList404(globalContext);
|
|
116
|
-
await createPageContexts(urlList404, prerenderContext, globalContext,
|
|
118
|
+
await createPageContexts(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
|
|
117
119
|
// Allow user to duplicate the list of `pageContext` for i18n
|
|
118
120
|
// https://vike.dev/onPrerenderStart
|
|
119
121
|
await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
|
|
@@ -132,8 +134,8 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
132
134
|
console.log(`${pc.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
|
|
133
135
|
}
|
|
134
136
|
await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
|
|
135
|
-
const prerenderContextPublic =
|
|
136
|
-
objectAssign(vike.prerenderContext, prerenderContextPublic);
|
|
137
|
+
const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
|
|
138
|
+
objectAssign(vike.prerenderContext, prerenderContextPublic, true);
|
|
137
139
|
if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
|
|
138
140
|
fs.rmSync(outDirServer, { recursive: true });
|
|
139
141
|
}
|
|
@@ -195,7 +197,7 @@ function assertExportNames(pageFile) {
|
|
|
195
197
|
const { exportNames, fileType } = pageFile;
|
|
196
198
|
assert(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
|
|
197
199
|
}
|
|
198
|
-
async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
200
|
+
async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
|
|
199
201
|
const onBeforePrerenderStartHooks = [];
|
|
200
202
|
// V1 design
|
|
201
203
|
await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
|
|
@@ -238,10 +240,11 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
238
240
|
hookTimeout: getHookTimeoutDefault('onBeforePrerenderStart')
|
|
239
241
|
});
|
|
240
242
|
})));
|
|
241
|
-
await Promise.all(onBeforePrerenderStartHooks.map(({
|
|
243
|
+
await Promise.all(onBeforePrerenderStartHooks.map(({ pageId, ...hook }) => concurrencyLimit(async () => {
|
|
242
244
|
if (doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
243
245
|
return;
|
|
244
|
-
const
|
|
246
|
+
const { hookName, hookFilePath } = hook;
|
|
247
|
+
const prerenderResult = await execHookWithoutPageContext(() => hook.hookFn(), hook);
|
|
245
248
|
const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
|
|
246
249
|
// Handle result
|
|
247
250
|
await Promise.all(result.map(async ({ url, pageContext }) => {
|
|
@@ -258,7 +261,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
258
261
|
}
|
|
259
262
|
// Add result
|
|
260
263
|
const providedByHook = { hookFilePath, hookName };
|
|
261
|
-
const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext,
|
|
264
|
+
const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, false, undefined, providedByHook);
|
|
262
265
|
prerenderContext.pageContexts.push(pageContextNew);
|
|
263
266
|
if (pageContext) {
|
|
264
267
|
objectAssign(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
|
|
@@ -304,22 +307,22 @@ function getUrlList404(globalContext) {
|
|
|
304
307
|
}
|
|
305
308
|
return urlList;
|
|
306
309
|
}
|
|
307
|
-
async function createPageContexts(urlList, prerenderContext, globalContext,
|
|
310
|
+
async function createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
|
|
308
311
|
await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
|
|
309
312
|
// Already included in a onBeforePrerenderStart() hook
|
|
310
313
|
if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
|
|
311
314
|
return;
|
|
312
315
|
}
|
|
313
|
-
const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext,
|
|
316
|
+
const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
|
|
314
317
|
prerenderContext.pageContexts.push(pageContext);
|
|
315
318
|
})));
|
|
316
319
|
}
|
|
317
|
-
async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext,
|
|
320
|
+
async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
|
|
318
321
|
const pageContextInit = {
|
|
319
322
|
urlOriginal,
|
|
320
323
|
...prerenderContext._pageContextInit
|
|
321
324
|
};
|
|
322
|
-
const pageContext = await createPageContextServerSide(pageContextInit, globalContext,
|
|
325
|
+
const pageContext = await createPageContextServerSide(pageContextInit, globalContext, {
|
|
323
326
|
isPrerendering: true
|
|
324
327
|
});
|
|
325
328
|
assert(pageContext.isPrerendering === true);
|
|
@@ -348,7 +351,7 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
|
|
|
348
351
|
routeParams: {}
|
|
349
352
|
});
|
|
350
353
|
}
|
|
351
|
-
objectAssign(pageContext, await
|
|
354
|
+
objectAssign(pageContext, await loadPageConfigsLazyServerSide(pageContext));
|
|
352
355
|
let usesClientRouter;
|
|
353
356
|
{
|
|
354
357
|
const { pageId } = pageContext;
|
|
@@ -463,26 +466,13 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
463
466
|
assert(pageContext.urlOriginal);
|
|
464
467
|
pageContext._urlOriginalBeforeHook = pageContext.urlOriginal;
|
|
465
468
|
});
|
|
466
|
-
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
467
469
|
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
468
470
|
// Preserve URL computed properties when the user is copying pageContext is his onPrerenderStart() hook, e.g. /examples/i18n/
|
|
469
471
|
// https://vike.dev/i18n#pre-rendering
|
|
470
472
|
preservePropertyGetters(pageContext);
|
|
471
473
|
});
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
// TODO/v1-release: remove warning
|
|
475
|
-
Object.defineProperty(prerenderContextPublic, 'prerenderPageContexts', {
|
|
476
|
-
get() {
|
|
477
|
-
assertWarning(false, `prerenderPageContexts has been renamed pageContexts, see ${docLink}`, {
|
|
478
|
-
showStackTrace: true,
|
|
479
|
-
onlyOnce: true
|
|
480
|
-
});
|
|
481
|
-
return prerenderContext.pageContexts;
|
|
482
|
-
}
|
|
483
|
-
});
|
|
484
|
-
return hookFn(prerenderContextPublic);
|
|
485
|
-
}, onPrerenderStartHook, null);
|
|
474
|
+
const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
|
|
475
|
+
let result = await execHookWithoutPageContext(() => hookFn(prerenderContextPublic), onPrerenderStartHook);
|
|
486
476
|
// Before applying result
|
|
487
477
|
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
488
478
|
;
|
|
@@ -731,10 +721,24 @@ function assertIsNotAbort(err, urlOriginal) {
|
|
|
731
721
|
assert(abortCall);
|
|
732
722
|
assertUsage(false, `${pc.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${pc.cyan(abortCaller)} isn't supported for pre-rendered pages`);
|
|
733
723
|
}
|
|
734
|
-
function
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
'
|
|
738
|
-
|
|
724
|
+
function preparePrerenderContextForPublicUsage(prerenderContext) {
|
|
725
|
+
// TODO/v1-release: remove
|
|
726
|
+
if (!('prerenderPageContexts' in prerenderContext)) {
|
|
727
|
+
Object.defineProperty(prerenderContext, 'prerenderPageContexts', {
|
|
728
|
+
get() {
|
|
729
|
+
assertWarning(false, `prerenderPageContexts has been renamed pageContexts, see ${pc.underline(docLink)}`, {
|
|
730
|
+
showStackTrace: true,
|
|
731
|
+
onlyOnce: true
|
|
732
|
+
});
|
|
733
|
+
return prerenderContext.pageContexts;
|
|
734
|
+
}
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
// Required because of https://vike.dev/i18n#pre-rendering
|
|
738
|
+
// - Thus, we have to let users access the original pageContext object => we cannot use ES proxies and we cannot use preparePageContextForPublicUsage()
|
|
739
|
+
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
740
|
+
changeEnumerable(pageContext, '_isOriginalObject', true);
|
|
741
|
+
});
|
|
742
|
+
const prerenderContextPublic = getProxyForPublicUsage(prerenderContext, 'prerenderContext');
|
|
739
743
|
return prerenderContextPublic;
|
|
740
744
|
}
|
|
@@ -13,6 +13,6 @@ export * from '../../utils/pLimit.js';
|
|
|
13
13
|
export * from '../../utils/isFilePathAbsoluteFilesystem.js';
|
|
14
14
|
export * from '../../utils/isArray.js';
|
|
15
15
|
export * from '../../utils/isObject.js';
|
|
16
|
-
export * from '../../utils/getPublicProxy.js';
|
|
17
16
|
export * from '../../utils/isNullish.js';
|
|
18
17
|
export * from '../../utils/preservePropertyGetters.js';
|
|
18
|
+
export * from '../../utils/changeEnumerable.js';
|
|
@@ -15,6 +15,6 @@ export * from '../../utils/pLimit.js';
|
|
|
15
15
|
export * from '../../utils/isFilePathAbsoluteFilesystem.js';
|
|
16
16
|
export * from '../../utils/isArray.js';
|
|
17
17
|
export * from '../../utils/isObject.js';
|
|
18
|
-
export * from '../../utils/getPublicProxy.js';
|
|
19
18
|
export * from '../../utils/isNullish.js';
|
|
20
19
|
export * from '../../utils/preservePropertyGetters.js';
|
|
20
|
+
export * from '../../utils/changeEnumerable.js';
|