vike 0.4.250-commit-193dea3 → 0.4.250-commit-2686732
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/client/runtime-client-routing/createPageContextClientSide.d.ts +19 -1
- package/dist/client/runtime-client-routing/createPageContextClientSide.js +19 -11
- package/dist/client/runtime-client-routing/getPageContextFromHooks.d.ts +58 -70
- package/dist/client/runtime-client-routing/renderPageClient.d.ts +100 -98
- package/dist/client/runtime-server-routing/createPageContextClientSide.d.ts +14 -1
- package/dist/client/runtime-server-routing/createPageContextClientSide.js +10 -4
- package/dist/node/prerender/context.d.ts +1 -1
- package/dist/node/prerender/context.js +2 -2
- package/dist/node/prerender/resolvePrerenderConfig.d.ts +4 -4
- package/dist/node/prerender/resolvePrerenderConfig.js +17 -11
- package/dist/node/prerender/runPrerender.d.ts +2 -5
- package/dist/node/prerender/runPrerender.js +6 -6
- package/dist/node/vite/onLoad.js +3 -2
- package/dist/node/vite/plugins/build/pluginBuildApp.js +1 -1
- package/dist/node/vite/plugins/build/pluginModuleBanner.js +2 -1
- package/dist/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -0
- package/dist/node/vite/shared/resolveVikeConfigInternal.js +6 -6
- package/dist/server/onLoad.js +2 -0
- package/dist/server/runtime/logErrorServer.d.ts +2 -2
- package/dist/server/runtime/loggerRuntime.d.ts +2 -2
- package/dist/server/runtime/renderPageServer/createPageContextServerSide.d.ts +12 -10
- package/dist/server/runtime/renderPageServer/createPageContextServerSide.js +11 -11
- package/dist/server/runtime/renderPageServer/execHookOnError.d.ts +2 -2
- package/dist/server/runtime/renderPageServer/execHookOnError.js +3 -1
- package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.d.ts +1 -4
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.d.ts +4 -16
- package/dist/server/runtime/renderPageServer.d.ts +2 -9
- package/dist/shared-server-client/createGlobalContextShared.js +1 -1
- package/dist/shared-server-client/createPageContextShared.d.ts +12 -2
- package/dist/shared-server-client/createPageContextShared.js +1 -0
- package/dist/shared-server-client/getPageContextUrlComputed.d.ts +5 -2
- package/dist/shared-server-client/hooks/execHook.d.ts +5 -7
- package/dist/shared-server-client/hooks/execHook.js +77 -12
- package/dist/shared-server-client/prepareGlobalContextForPublicUsage.d.ts +2 -0
- package/dist/shared-server-client/preparePageContextForPublicUsage.d.ts +2 -3
- package/dist/types/Config.d.ts +81 -71
- package/dist/types/Config.js +1 -0
- package/dist/types/PageContext.d.ts +33 -26
- package/dist/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/utils/PROJECT_VERSION.js +1 -1
- package/dist/utils/installUncaughtErrorHandlers.d.ts +2 -0
- package/dist/utils/installUncaughtErrorHandlers.js +20 -0
- package/package.json +2 -2
|
@@ -72,10 +72,7 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
72
72
|
isClientSide: false;
|
|
73
73
|
isPrerendering: boolean;
|
|
74
74
|
_requestId: number;
|
|
75
|
-
} &
|
|
76
|
-
url?: string;
|
|
77
|
-
headers?: Record<string, string>;
|
|
78
|
-
} & {
|
|
75
|
+
} & import("../../types/PageContext.js").PageContextInit & {
|
|
79
76
|
_globalContext: ({
|
|
80
77
|
_globalConfigPublic: {
|
|
81
78
|
pages: {
|
|
@@ -170,7 +167,7 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
170
167
|
_pageFilesAll: PageFile[];
|
|
171
168
|
_baseServer: string;
|
|
172
169
|
_baseAssets: string;
|
|
173
|
-
_pageContextInit: import("../../
|
|
170
|
+
_pageContextInit: import("../../types/PageContext.js").PageContextInit;
|
|
174
171
|
_urlHandler: ((url: string) => string) | null;
|
|
175
172
|
isClientSideNavigation: boolean;
|
|
176
173
|
} & {
|
|
@@ -45,7 +45,7 @@ async function runPrerender(options = {}, trigger) {
|
|
|
45
45
|
const viteConfig = await resolveViteConfig(options.viteConfig || {}, 'build', 'production');
|
|
46
46
|
const vikeConfig = await getVikeConfigInternal();
|
|
47
47
|
const { outDirServer } = getOutDirs(viteConfig, undefined);
|
|
48
|
-
const prerenderConfigGlobal = resolvePrerenderConfigGlobal(vikeConfig);
|
|
48
|
+
const prerenderConfigGlobal = await resolvePrerenderConfigGlobal(vikeConfig);
|
|
49
49
|
const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
|
|
50
50
|
if (!isPrerenderingEnabled) {
|
|
51
51
|
assert(trigger !== 'auto-run');
|
|
@@ -117,8 +117,8 @@ async function runPrerender(options = {}, trigger) {
|
|
|
117
117
|
}
|
|
118
118
|
async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext) {
|
|
119
119
|
// V1 design
|
|
120
|
-
pageConfigs.
|
|
121
|
-
const prerenderConfigLocal = resolvePrerenderConfigLocal(pageConfig);
|
|
120
|
+
await Promise.all(pageConfigs.map(async (pageConfig) => {
|
|
121
|
+
const prerenderConfigLocal = await resolvePrerenderConfigLocal(pageConfig);
|
|
122
122
|
const { pageId } = pageConfig;
|
|
123
123
|
if (!prerenderConfigLocal) {
|
|
124
124
|
if (!defaultLocalValue) {
|
|
@@ -131,7 +131,7 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
|
|
|
131
131
|
doNotPrerenderList.push({ pageId });
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
});
|
|
134
|
+
}));
|
|
135
135
|
// Old design
|
|
136
136
|
// TO-DO/next-major-release: remove
|
|
137
137
|
await Promise.all(globalContext._pageFilesAll
|
|
@@ -218,7 +218,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
218
218
|
if (doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
219
219
|
return;
|
|
220
220
|
const { hookName, hookFilePath } = hook;
|
|
221
|
-
const prerenderResult = await execHookDirectWithoutPageContext(() => hook.hookFn(), hook);
|
|
221
|
+
const prerenderResult = await execHookDirectWithoutPageContext(() => hook.hookFn(), hook, globalContext);
|
|
222
222
|
const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
|
|
223
223
|
// Handle result
|
|
224
224
|
await Promise.all(result.map(async ({ url, pageContext }) => {
|
|
@@ -446,7 +446,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
446
446
|
preservePropertyGetters(pageContext);
|
|
447
447
|
});
|
|
448
448
|
const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
|
|
449
|
-
let result = await execHookDirectWithoutPageContext(() => hookFn(prerenderContextPublic), onPrerenderStartHook);
|
|
449
|
+
let result = await execHookDirectWithoutPageContext(() => hookFn(prerenderContextPublic), onPrerenderStartHook, globalContext);
|
|
450
450
|
// Before applying result
|
|
451
451
|
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
452
452
|
;
|
package/dist/node/vite/onLoad.js
CHANGED
|
@@ -4,11 +4,12 @@ import { assertIsNotProductionRuntime, markSetup_vikeVitePlugin } from '../../ut
|
|
|
4
4
|
import { assertNodeVersion } from '../../utils/assertNodeVersion.js';
|
|
5
5
|
import { version as viteVersion } from 'vite';
|
|
6
6
|
import { assertViteVersion } from '../../utils/assertViteVersion.js';
|
|
7
|
+
import { installUncaughtErrorHandlers } from '../../utils/installUncaughtErrorHandlers.js';
|
|
7
8
|
function onLoad() {
|
|
8
9
|
markSetup_vikeVitePlugin();
|
|
9
10
|
assertIsNotBrowser();
|
|
10
11
|
assertNodeVersion();
|
|
11
12
|
assertViteVersion(viteVersion);
|
|
12
|
-
//
|
|
13
|
-
|
|
13
|
+
assertIsNotProductionRuntime(); // Don't bloat server with heavy dependencies like Vite and esbuild
|
|
14
|
+
installUncaughtErrorHandlers();
|
|
14
15
|
}
|
|
@@ -129,7 +129,7 @@ async function triggerPrerendering(config, viteEnv, bundle) {
|
|
|
129
129
|
// - Issue & reproduction: https://github.com/vikejs/vike/issues/1154#issuecomment-1965954636
|
|
130
130
|
if (!bundle[getManifestFilePathRelative(config.build.manifest)])
|
|
131
131
|
return;
|
|
132
|
-
if (!isPrerenderAutoRunEnabled(vikeConfig))
|
|
132
|
+
if (!(await isPrerenderAutoRunEnabled(vikeConfig)))
|
|
133
133
|
return;
|
|
134
134
|
const configInline = getFullBuildInlineConfig(config);
|
|
135
135
|
const res = await runPrerenderFromAutoRun(configInline);
|
|
@@ -6,7 +6,8 @@ import { getMagicString } from '../../shared/getMagicString.js';
|
|
|
6
6
|
// - Terser removes legal comments, but I guess users use terser to minify JavaScript so I guess it's a good thing that comment is removed.
|
|
7
7
|
// - Rollup's banner feature doesn't work with Vite: https://github.com/vitejs/vite/issues/8412
|
|
8
8
|
// - But, anyways, we want to prepend the banner at the beginning of each module, not at the beginning of each file (I believe that's what Rollup's banner feature does).
|
|
9
|
-
// - Potential alternative: https://
|
|
9
|
+
// - Potential alternative: Rolldown's `postBanner` https://x.com/voidzerodev/status/2001683010446299613
|
|
10
|
+
// - Potential alternative: Rolldown's `//#region` https://github.com/vitejs/vite/issues/21228#issuecomment-3627899741
|
|
10
11
|
function pluginModuleBanner() {
|
|
11
12
|
let config;
|
|
12
13
|
let isEnabled = false;
|
|
@@ -164,7 +164,7 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
|
|
|
164
164
|
}
|
|
165
165
|
else {
|
|
166
166
|
logErrorServerDev(err, null);
|
|
167
|
-
resolve(getVikeConfigDummy(esbuildCache));
|
|
167
|
+
resolve(await getVikeConfigDummy(esbuildCache));
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
}
|
|
@@ -178,7 +178,7 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
|
|
|
178
178
|
temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
|
|
179
179
|
setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
|
|
180
180
|
const globalConfigPublic = resolveGlobalConfig(pageConfigGlobal, pageConfigs);
|
|
181
|
-
const prerenderContext = resolvePrerenderContext({
|
|
181
|
+
const prerenderContext = await resolvePrerenderContext({
|
|
182
182
|
config: globalConfigPublic.config,
|
|
183
183
|
_from: globalConfigPublic._from,
|
|
184
184
|
_pageConfigs: pageConfigs,
|
|
@@ -1092,8 +1092,8 @@ function isGlobalLocation(locationId, plusFilesByLocationId) {
|
|
|
1092
1092
|
.map(([locationId]) => locationId);
|
|
1093
1093
|
return locationIdsPage.every((locId) => isInherited(locationId, locId));
|
|
1094
1094
|
}
|
|
1095
|
-
function resolvePrerenderContext(vikeConfig) {
|
|
1096
|
-
const { isPrerenderingEnabled, isPrerenderingEnabledForAllPages } = resolvePrerenderConfigGlobal(vikeConfig);
|
|
1095
|
+
async function resolvePrerenderContext(vikeConfig) {
|
|
1096
|
+
const { isPrerenderingEnabled, isPrerenderingEnabledForAllPages } = await resolvePrerenderConfigGlobal(vikeConfig);
|
|
1097
1097
|
globalObject.prerenderContext ?? (globalObject.prerenderContext = {
|
|
1098
1098
|
isPrerenderingEnabled: false,
|
|
1099
1099
|
isPrerenderingEnabledForAllPages: false,
|
|
@@ -1121,14 +1121,14 @@ function restartViteDevServer() {
|
|
|
1121
1121
|
})();
|
|
1122
1122
|
swallowViteLogForceOptimization_disable();
|
|
1123
1123
|
}
|
|
1124
|
-
function getVikeConfigDummy(esbuildCache) {
|
|
1124
|
+
async function getVikeConfigDummy(esbuildCache) {
|
|
1125
1125
|
const pageConfigsDummy = [];
|
|
1126
1126
|
const pageConfigGlobalDummy = {
|
|
1127
1127
|
configValueSources: {},
|
|
1128
1128
|
configDefinitions: {},
|
|
1129
1129
|
};
|
|
1130
1130
|
const globalConfigPublicDummy = resolveGlobalConfig(pageConfigGlobalDummy, pageConfigsDummy);
|
|
1131
|
-
const prerenderContextDummy = resolvePrerenderContext({
|
|
1131
|
+
const prerenderContextDummy = await resolvePrerenderContext({
|
|
1132
1132
|
config: globalConfigPublicDummy.config,
|
|
1133
1133
|
_from: globalConfigPublicDummy._from,
|
|
1134
1134
|
_pageConfigs: pageConfigsDummy,
|
package/dist/server/onLoad.js
CHANGED
|
@@ -4,9 +4,11 @@ import { assertNodeVersion } from '../utils/assertNodeVersion.js';
|
|
|
4
4
|
import { setAssertAlwaysShowStackTrace } from '../utils/assert.js';
|
|
5
5
|
import { installRequireShim } from '@brillout/require-shim';
|
|
6
6
|
import { isDebugError } from '../utils/debug.js';
|
|
7
|
+
import { installUncaughtErrorHandlers } from '../utils/installUncaughtErrorHandlers.js';
|
|
7
8
|
function onLoad() {
|
|
8
9
|
assertIsNotBrowser();
|
|
9
10
|
assertNodeVersion();
|
|
11
|
+
installUncaughtErrorHandlers();
|
|
10
12
|
if (isDebugError()) {
|
|
11
13
|
// Is also executed upon `$ vike build` because node/vite/utils.ts imports server/utils.ts
|
|
12
14
|
Error.stackTraceLimit = Infinity;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { logErrorServer };
|
|
2
2
|
export { hasAlreadyLogged };
|
|
3
|
-
import type {
|
|
4
|
-
declare function logErrorServer(err: unknown, pageContext:
|
|
3
|
+
import type { PageContextCreatedServerBase } from './renderPageServer/createPageContextServerSide.js';
|
|
4
|
+
declare function logErrorServer(err: unknown, pageContext: PageContextCreatedServerBase | null): void;
|
|
5
5
|
declare function hasAlreadyLogged(err: unknown): boolean;
|
|
@@ -4,10 +4,10 @@ export { setLogRuntimeDev };
|
|
|
4
4
|
export { assertPageContext_logRuntime };
|
|
5
5
|
export type { PageContext_logRuntime };
|
|
6
6
|
import type { LogType } from '../../node/vite/shared/loggerDev.js';
|
|
7
|
-
import type {
|
|
7
|
+
import type { PageContextCreatedServerBase } from './renderPageServer/createPageContextServerSide.js';
|
|
8
8
|
type LogRuntimeInfo = (msg: string, pageContext: PageContext_logRuntime, logType: LogType) => void;
|
|
9
9
|
type LogRuntimeError = (err: unknown, pageContext: PageContext_logRuntime) => void;
|
|
10
|
-
type PageContext_logRuntime = null | (
|
|
10
|
+
type PageContext_logRuntime = null | (PageContextCreatedServerBase & {
|
|
11
11
|
_requestId: number;
|
|
12
12
|
});
|
|
13
13
|
declare function setLogRuntimeDev(logRuntimeErrorDev: LogRuntimeError, logRuntimeInfoDev: LogRuntimeInfo): void;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { createPageContextServerSide };
|
|
2
2
|
export { createPageContextServerSideWithoutGlobalContext };
|
|
3
3
|
export type { PageContextCreatedServer };
|
|
4
|
-
export type {
|
|
4
|
+
export type { PageContextCreatedServerBase };
|
|
5
5
|
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
6
6
|
import type { PageContextInit } from '../renderPageServer.js';
|
|
7
|
-
type
|
|
7
|
+
type PageContextCreatedServerBase = ReturnType<typeof createPageContextBase>;
|
|
8
8
|
type PageContextCreatedServer = Awaited<ReturnType<typeof createPageContextServerSide>>;
|
|
9
9
|
declare function createPageContextServerSide(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, args: {
|
|
10
10
|
requestId: number;
|
|
@@ -21,10 +21,7 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
|
|
|
21
21
|
isClientSide: false;
|
|
22
22
|
isPrerendering: boolean;
|
|
23
23
|
_requestId: number;
|
|
24
|
-
} &
|
|
25
|
-
url?: string;
|
|
26
|
-
headers?: Record<string, string>;
|
|
27
|
-
} & {
|
|
24
|
+
} & PageContextInit & {
|
|
28
25
|
_globalContext: ({
|
|
29
26
|
_globalConfigPublic: {
|
|
30
27
|
pages: {
|
|
@@ -156,7 +153,12 @@ declare function createPageContextServerSideWithoutGlobalContext(pageContextInit
|
|
|
156
153
|
isClientSide: false;
|
|
157
154
|
isPrerendering: boolean;
|
|
158
155
|
_requestId: number;
|
|
159
|
-
} &
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
156
|
+
} & PageContextInit;
|
|
157
|
+
declare function createPageContextBase(pageContextInit: PageContextInit | null, isPrerendering: boolean, requestId: number): {
|
|
158
|
+
_isOriginalObject: true;
|
|
159
|
+
isPageContext: true;
|
|
160
|
+
} & {
|
|
161
|
+
isClientSide: false;
|
|
162
|
+
isPrerendering: boolean;
|
|
163
|
+
_requestId: number;
|
|
164
|
+
} & PageContextInit;
|
|
@@ -5,8 +5,8 @@ import { getPageContextUrlComputed } from '../../../shared-server-client/getPage
|
|
|
5
5
|
import { createPageContextObject, createPageContextShared, } from '../../../shared-server-client/createPageContextShared.js';
|
|
6
6
|
function createPageContextServerSide(pageContextInit, globalContext, args) {
|
|
7
7
|
assert(pageContextInit.urlOriginal);
|
|
8
|
-
const
|
|
9
|
-
objectAssign(
|
|
8
|
+
const pageContext = createPageContextBase(pageContextInit, args.isPrerendering, args.requestId);
|
|
9
|
+
objectAssign(pageContext, {
|
|
10
10
|
_globalContext: globalContext,
|
|
11
11
|
_pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
|
|
12
12
|
// We use pageContext._baseServer and pageContext._baseAssets instead of pageContext._globalContext.baseServer and pageContext._globalContext.baseAssets because the Base URLs can (eventually one day if needed) be made non-global
|
|
@@ -16,10 +16,10 @@ function createPageContextServerSide(pageContextInit, globalContext, args) {
|
|
|
16
16
|
_urlHandler: args.isPrerendering ? null : args.urlHandler,
|
|
17
17
|
isClientSideNavigation: args.isPrerendering ? false : args.isClientSideNavigation,
|
|
18
18
|
});
|
|
19
|
-
objectAssign(
|
|
19
|
+
objectAssign(pageContext, globalContext._globalConfigPublic);
|
|
20
20
|
// pageContext.urlParsed
|
|
21
|
-
const pageContextUrlComputed = getPageContextUrlComputed(
|
|
22
|
-
objectAssign(
|
|
21
|
+
const pageContextUrlComputed = getPageContextUrlComputed(pageContext);
|
|
22
|
+
objectAssign(pageContext, pageContextUrlComputed);
|
|
23
23
|
// pageContext.headers
|
|
24
24
|
{
|
|
25
25
|
let headers;
|
|
@@ -35,18 +35,18 @@ function createPageContextServerSide(pageContextInit, globalContext, args) {
|
|
|
35
35
|
else {
|
|
36
36
|
headers = null;
|
|
37
37
|
}
|
|
38
|
-
objectAssign(
|
|
38
|
+
objectAssign(pageContext, { headers });
|
|
39
39
|
}
|
|
40
|
-
const pageContextAugmented = createPageContextShared(
|
|
41
|
-
updateType(
|
|
42
|
-
return
|
|
40
|
+
const pageContextAugmented = createPageContextShared(pageContext, globalContext._globalConfigPublic);
|
|
41
|
+
updateType(pageContext, pageContextAugmented);
|
|
42
|
+
return pageContext;
|
|
43
43
|
}
|
|
44
44
|
/** Use this as last resort — prefer passing richer `pageContext` objects to the runtime logger */
|
|
45
45
|
function createPageContextServerSideWithoutGlobalContext(pageContextInit, requestId) {
|
|
46
|
-
const pageContext =
|
|
46
|
+
const pageContext = createPageContextBase(pageContextInit, false, requestId);
|
|
47
47
|
return pageContext;
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function createPageContextBase(pageContextInit, isPrerendering, requestId) {
|
|
50
50
|
const pageContext = createPageContextObject();
|
|
51
51
|
objectAssign(pageContext, {
|
|
52
52
|
isClientSide: false,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { execHookOnError };
|
|
2
|
-
import type {
|
|
3
|
-
declare function execHookOnError(err: unknown, pageContext:
|
|
2
|
+
import type { PageContextCreatedServerBase } from './createPageContextServerSide.js';
|
|
3
|
+
declare function execHookOnError(err: unknown, pageContext: PageContextCreatedServerBase | null): void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { execHookOnError };
|
|
2
2
|
import { isObject, getGlobalObject } from '../../utils.js';
|
|
3
|
+
import { execHookBase } from '../../../shared-server-client/hooks/execHook.js';
|
|
3
4
|
import { getGlobalContextServerInternalOptional } from '../globalContext.js';
|
|
4
5
|
import { getHookFromPageConfigGlobalCumulative } from '../../../shared-server-client/hooks/getHook.js';
|
|
5
6
|
const globalObject = getGlobalObject('renderPageServer/execHookOnError.ts', {
|
|
@@ -17,7 +18,8 @@ function execHookOnError(err, pageContext) {
|
|
|
17
18
|
const hooks = getHookFromPageConfigGlobalCumulative(globalContext._pageConfigGlobal, 'onError');
|
|
18
19
|
for (const hook of hooks) {
|
|
19
20
|
try {
|
|
20
|
-
|
|
21
|
+
// TODO/refactor: stop using any
|
|
22
|
+
execHookBase(() => hook.hookFn(err, pageContext), hook, globalContext, pageContext);
|
|
21
23
|
}
|
|
22
24
|
catch (hookErr) {
|
|
23
25
|
console.error(hookErr);
|
|
@@ -21,10 +21,7 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
21
21
|
isClientSide: false;
|
|
22
22
|
isPrerendering: boolean;
|
|
23
23
|
_requestId: number;
|
|
24
|
-
} &
|
|
25
|
-
url?: string;
|
|
26
|
-
headers?: Record<string, string>;
|
|
27
|
-
} & {
|
|
24
|
+
} & import("../renderPageServer.js").PageContextInit & {
|
|
28
25
|
_globalContext: ({
|
|
29
26
|
_globalConfigPublic: {
|
|
30
27
|
pages: {
|
|
@@ -29,10 +29,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
|
|
|
29
29
|
isClientSide: false;
|
|
30
30
|
isPrerendering: boolean;
|
|
31
31
|
_requestId: number;
|
|
32
|
-
} &
|
|
33
|
-
url?: string;
|
|
34
|
-
headers?: Record<string, string>;
|
|
35
|
-
} & {
|
|
32
|
+
} & import("../renderPageServer.js").PageContextInit & {
|
|
36
33
|
_globalContext: ({
|
|
37
34
|
_globalConfigPublic: {
|
|
38
35
|
pages: {
|
|
@@ -193,10 +190,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
|
|
|
193
190
|
isClientSide: false;
|
|
194
191
|
isPrerendering: boolean;
|
|
195
192
|
_requestId: number;
|
|
196
|
-
} &
|
|
197
|
-
url?: string;
|
|
198
|
-
headers?: Record<string, string>;
|
|
199
|
-
} & {
|
|
193
|
+
} & import("../renderPageServer.js").PageContextInit & {
|
|
200
194
|
_globalContext: ({
|
|
201
195
|
_globalConfigPublic: {
|
|
202
196
|
pages: {
|
|
@@ -365,10 +359,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
|
|
|
365
359
|
isClientSide: false;
|
|
366
360
|
isPrerendering: boolean;
|
|
367
361
|
_requestId: number;
|
|
368
|
-
} &
|
|
369
|
-
url?: string;
|
|
370
|
-
headers?: Record<string, string>;
|
|
371
|
-
} & {
|
|
362
|
+
} & import("../renderPageServer.js").PageContextInit & {
|
|
372
363
|
_globalContext: ({
|
|
373
364
|
_globalConfigPublic: {
|
|
374
365
|
pages: {
|
|
@@ -529,10 +520,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
|
|
|
529
520
|
isClientSide: false;
|
|
530
521
|
isPrerendering: boolean;
|
|
531
522
|
_requestId: number;
|
|
532
|
-
} &
|
|
533
|
-
url?: string;
|
|
534
|
-
headers?: Record<string, string>;
|
|
535
|
-
} & {
|
|
523
|
+
} & import("../renderPageServer.js").PageContextInit & {
|
|
536
524
|
_globalContext: ({
|
|
537
525
|
_globalConfigPublic: {
|
|
538
526
|
pages: {
|
|
@@ -5,12 +5,8 @@ import { type PageContextAborted } from '../../shared-server-client/route/abort.
|
|
|
5
5
|
import { type GlobalContextServerInternal } from './globalContext.js';
|
|
6
6
|
import { type HttpResponse } from './renderPageServer/createHttpResponse.js';
|
|
7
7
|
import type { PageContextServer } from '../../types/index.js';
|
|
8
|
-
import type {
|
|
8
|
+
import type { PageContextInit } from '../../types/PageContext.js';
|
|
9
9
|
import { type AsyncStore } from './asyncHook.js';
|
|
10
|
-
type PageContextInit = Pick<PageContextInternalServer, 'urlOriginal' | 'headersOriginal'> & {
|
|
11
|
-
/** @deprecated Set `pageContextInit.urlOriginal` instead */ url?: string;
|
|
12
|
-
/** @deprecated Set pageContextInit.headersOriginal instead */ headers?: Record<string, string>;
|
|
13
|
-
};
|
|
14
10
|
type PageContextBegin = ReturnType<typeof getPageContextBegin>;
|
|
15
11
|
declare function renderPageServer<PageContextUserAdded extends {}, PageContextInitUser extends PageContextInit>(pageContextInit: PageContextInitUser): Promise<PageContextInitUser & {
|
|
16
12
|
httpResponse: HttpResponse;
|
|
@@ -22,10 +18,7 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
|
|
|
22
18
|
isClientSide: false;
|
|
23
19
|
isPrerendering: boolean;
|
|
24
20
|
_requestId: number;
|
|
25
|
-
} &
|
|
26
|
-
/** @deprecated Set `pageContextInit.urlOriginal` instead */ url?: string;
|
|
27
|
-
/** @deprecated Set pageContextInit.headersOriginal instead */ headers?: Record<string, string>;
|
|
28
|
-
} & {
|
|
21
|
+
} & PageContextInit & {
|
|
29
22
|
_globalContext: ({
|
|
30
23
|
_globalConfigPublic: {
|
|
31
24
|
pages: {
|
|
@@ -54,7 +54,7 @@ addGlobalContextTmp, addGlobalContextAsync) {
|
|
|
54
54
|
let hooksCalled = false;
|
|
55
55
|
if (!hooksAreEqual(globalObject.onCreateGlobalContextHooks ?? [], onCreateGlobalContextHooks)) {
|
|
56
56
|
globalObject.onCreateGlobalContextHooks = onCreateGlobalContextHooks;
|
|
57
|
-
await execHookGlobal('onCreateGlobalContext', globalContext
|
|
57
|
+
await execHookGlobal('onCreateGlobalContext', globalContext, null, globalContext, prepareGlobalContextForPublicUsage);
|
|
58
58
|
hooksCalled = true;
|
|
59
59
|
}
|
|
60
60
|
if (isNewGlobalContext) {
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
export { createPageContextShared };
|
|
2
2
|
export { createPageContextObject };
|
|
3
|
+
export type { PageContextCreated };
|
|
4
|
+
export type { PageContextCreatedBase };
|
|
3
5
|
import type { GlobalConfigPublic } from './page-configs/resolveVikeConfigPublic.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
+
import type { PageContextCreatedClient } from '../client/runtime-client-routing/createPageContextClientSide.js';
|
|
7
|
+
import type { PageContextCreatedServer } from '../server/runtime/renderPageServer/createPageContextServerSide.js';
|
|
8
|
+
import type { PageContextCreatedClient_ServerRouting } from '../client/runtime-server-routing/createPageContextClientSide.js';
|
|
9
|
+
type PageContextCreated = PageContextCreatedServer | PageContextCreatedClient | PageContextCreatedClient_ServerRouting;
|
|
10
|
+
type PageContextCreatedBase = {
|
|
11
|
+
_isOriginalObject: true;
|
|
12
|
+
isPageContext: true;
|
|
13
|
+
isClientSide: boolean;
|
|
14
|
+
};
|
|
15
|
+
declare function createPageContextShared<T extends Record<string, unknown>>(pageContextCreated: T, globalConfigPublic: GlobalConfigPublic): T & GlobalConfigPublic;
|
|
6
16
|
declare function createPageContextObject(): {
|
|
7
17
|
_isOriginalObject: true;
|
|
8
18
|
isPageContext: true;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { createPageContextShared };
|
|
2
2
|
export { createPageContextObject };
|
|
3
3
|
import { changeEnumerable, objectAssign } from './utils.js';
|
|
4
|
+
//*/
|
|
4
5
|
function createPageContextShared(pageContextCreated, globalConfigPublic) {
|
|
5
6
|
objectAssign(pageContextCreated, globalConfigPublic);
|
|
6
7
|
return pageContextCreated;
|
|
@@ -3,8 +3,9 @@ export type { PageContextUrlInternal };
|
|
|
3
3
|
export type { PageContextUrlClient };
|
|
4
4
|
export type { PageContextUrlServer };
|
|
5
5
|
export type { PageContextUrlSource };
|
|
6
|
-
import { type PageContextPrepareMinimum } from './preparePageContextForPublicUsage.js';
|
|
7
6
|
import { type UrlPublic } from './utils.js';
|
|
7
|
+
import type { GlobalContextPrepareMinimum } from './prepareGlobalContextForPublicUsage.js';
|
|
8
|
+
import type { PageContextCreatedBase } from './createPageContextShared.js';
|
|
8
9
|
type PageContextUrlComputed = {
|
|
9
10
|
/** Parsed information about the current URL */
|
|
10
11
|
urlParsed: UrlPublic;
|
|
@@ -17,8 +18,10 @@ type PageContextUrl = {
|
|
|
17
18
|
/** The URL of the HTTP request */
|
|
18
19
|
urlOriginal: string;
|
|
19
20
|
} & PageContextUrlComputed;
|
|
20
|
-
type PageContextUrlInternal =
|
|
21
|
+
type PageContextUrlInternal = PageContextUrl & {
|
|
21
22
|
_urlRewrite?: string;
|
|
23
|
+
} & PageContextCreatedBase & {
|
|
24
|
+
_globalContext: GlobalContextPrepareMinimum;
|
|
22
25
|
};
|
|
23
26
|
type PageContextUrlClient = PageContextUrl;
|
|
24
27
|
type PageContextUrlServer = PageContextUrl & {
|
|
@@ -5,6 +5,7 @@ export { execHookDirectSingle };
|
|
|
5
5
|
export { execHookDirectSingleWithReturn };
|
|
6
6
|
export { execHookDirectWithoutPageContext };
|
|
7
7
|
export { execHookDirectSync };
|
|
8
|
+
export { execHookBase };
|
|
8
9
|
export { getPageContext_sync };
|
|
9
10
|
export { providePageContext };
|
|
10
11
|
export { isUserHookError };
|
|
@@ -13,32 +14,29 @@ import type { PageContextClient, PageContextServer } from '../../types/PageConte
|
|
|
13
14
|
import type { Hook, HookLoc } from './getHook.js';
|
|
14
15
|
import type { PageContextConfig } from '../getPageFiles.js';
|
|
15
16
|
import type { HookName, HookNameGlobal } from '../../types/Config.js';
|
|
16
|
-
import type {
|
|
17
|
+
import type { PageContextCreated } from '../createPageContextShared.js';
|
|
17
18
|
import type { PageContextForPublicUsageServer } from '../../server/runtime/renderPageServer/preparePageContextForPublicUsageServer.js';
|
|
18
19
|
import type { PageContextForPublicUsageClientShared } from '../../client/shared/preparePageContextForPublicUsageClientShared.js';
|
|
19
20
|
import { type PageContextPrepareMinimum } from '../preparePageContextForPublicUsage.js';
|
|
20
21
|
import type { GlobalContextPrepareMinimum } from '../prepareGlobalContextForPublicUsage.js';
|
|
21
|
-
import type { PageContextCreatedClient } from '../../client/runtime-client-routing/createPageContextClientSide.js';
|
|
22
|
-
import type { PageContextCreatedServer } from '../../server/runtime/renderPageServer/createPageContextServerSide.js';
|
|
23
|
-
import type { PageContextCreatedClient_ServerRouting } from '../../client/runtime-server-routing/createPageContextClientSide.js';
|
|
24
22
|
type PageContextExecHook = PageContextCreated & PageContextConfig & PageContextForPublicUsage;
|
|
25
|
-
type PageContextCreated = PageContextCreatedServer | PageContextCreatedClient | PageContextCreatedClient_ServerRouting;
|
|
26
23
|
type PageContextForPublicUsage = PageContextForPublicUsageServer | PageContextForPublicUsageClientShared;
|
|
27
24
|
type HookWithResult = Hook & {
|
|
28
25
|
hookReturn: unknown;
|
|
29
26
|
};
|
|
30
27
|
declare function execHook<PageContext extends PageContextExecHook>(hookName: HookName, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<HookWithResult[]>;
|
|
31
|
-
declare function execHookGlobal<HookArg extends GlobalContextPrepareMinimum>(hookName: HookNameGlobal,
|
|
28
|
+
declare function execHookGlobal<HookArg extends GlobalContextPrepareMinimum>(hookName: HookNameGlobal, globalContext: GlobalContextPrepareMinimum, pageContext: PageContextPrepareMinimum | null, hookArg: HookArg, prepareForPublicUsage: (hookArg: HookArg) => HookArg): Promise<void>;
|
|
32
29
|
declare function execHookDirect<PageContext extends PageContextPrepareMinimum>(hooks: Hook[], pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<HookWithResult[]>;
|
|
33
30
|
declare function execHookDirectSingle<PageContext extends PageContextExecHook>(hook: Hook, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<void>;
|
|
34
31
|
declare function execHookDirectSingleWithReturn<PageContext extends PageContextExecHook>(hook: Hook, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<{
|
|
35
32
|
hookReturn: unknown;
|
|
36
33
|
}>;
|
|
37
34
|
declare function isUserHookError(err: unknown): false | HookLoc;
|
|
38
|
-
declare function execHookDirectWithoutPageContext<HookReturn>(hookFnCaller: () => HookReturn, hook: Omit<Hook, 'hookFn'
|
|
35
|
+
declare function execHookDirectWithoutPageContext<HookReturn>(hookFnCaller: () => HookReturn, hook: Omit<Hook, 'hookFn'>, globalContext: GlobalContextPrepareMinimum): Promise<HookReturn>;
|
|
39
36
|
declare function execHookDirectSync<PageContext extends PageContextPrepareMinimum>(hook: Omit<Hook, 'hookTimeout'>, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): {
|
|
40
37
|
hookReturn: unknown;
|
|
41
38
|
};
|
|
39
|
+
declare function execHookBase<HookReturn>(hookFnCaller: () => HookReturn, hook: Omit<Hook, 'hookTimeout' | 'hookFn'>, globalContext: GlobalContextPrepareMinimum, pageContext: PageContextPrepareMinimum | null): HookReturn | Promise<HookReturn>;
|
|
42
40
|
declare function getPageContext_sync<PageContext = PageContextClient | PageContextServer>(): null | PageContext;
|
|
43
41
|
/**
|
|
44
42
|
* Provide `pageContext` for universal hooks.
|