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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// TODO: rename all exports
|
|
1
2
|
export { execHook };
|
|
2
3
|
export { execHookGlobal };
|
|
3
4
|
export { execHookDirect };
|
|
@@ -5,10 +6,12 @@ export { execHookDirectSingle };
|
|
|
5
6
|
export { execHookDirectSingleWithReturn };
|
|
6
7
|
export { execHookDirectWithoutPageContext };
|
|
7
8
|
export { execHookDirectSync };
|
|
9
|
+
export { execHookBase };
|
|
8
10
|
export { getPageContext_sync };
|
|
9
11
|
export { providePageContext };
|
|
10
12
|
export { isUserHookError };
|
|
11
|
-
|
|
13
|
+
// TODO: minor refactor — maybe completely remove (some) utils.js files?
|
|
14
|
+
import { assert, getProjectError, assertWarning, assertUsage } from '../../utils/assert.js';
|
|
12
15
|
import { getGlobalObject } from '../../utils/getGlobalObject.js';
|
|
13
16
|
import { humanizeTime } from '../../utils/humanizeTime.js';
|
|
14
17
|
import { isObject } from '../../utils/isObject.js';
|
|
@@ -18,15 +21,16 @@ const globalObject = getGlobalObject('utils/execHook.ts', {
|
|
|
18
21
|
userHookErrors: new WeakMap(),
|
|
19
22
|
pageContext: null,
|
|
20
23
|
});
|
|
24
|
+
// TODO/refactor: export new type PageContextExecHookMinimum instead of PageContextPrepareMinimum ?
|
|
21
25
|
async function execHook(hookName, pageContext, preparePageContextForPublicUsage) {
|
|
22
26
|
const hooks = getHookFromPageContextNew(hookName, pageContext);
|
|
23
27
|
return await execHookDirect(hooks, pageContext, preparePageContextForPublicUsage);
|
|
24
28
|
}
|
|
25
|
-
async function execHookGlobal(hookName,
|
|
26
|
-
const hooks = getHookFromPageConfigGlobalCumulative(
|
|
29
|
+
async function execHookGlobal(hookName, globalContext, pageContext, hookArg, prepareForPublicUsage) {
|
|
30
|
+
const hooks = getHookFromPageConfigGlobalCumulative(globalContext._pageConfigGlobal, hookName);
|
|
27
31
|
const hookArgForPublicUsage = prepareForPublicUsage(hookArg);
|
|
28
32
|
await Promise.all(hooks.map(async (hook) => {
|
|
29
|
-
await execHookDirectAsync(() => hook.hookFn(hookArgForPublicUsage), hook, pageContext);
|
|
33
|
+
await execHookDirectAsync(() => hook.hookFn(hookArgForPublicUsage), hook, globalContext, pageContext);
|
|
30
34
|
}));
|
|
31
35
|
}
|
|
32
36
|
async function execHookDirect(hooks, pageContext, preparePageContextForPublicUsage) {
|
|
@@ -34,7 +38,7 @@ async function execHookDirect(hooks, pageContext, preparePageContextForPublicUsa
|
|
|
34
38
|
return [];
|
|
35
39
|
const pageContextForPublicUsage = preparePageContextForPublicUsage(pageContext);
|
|
36
40
|
const hooksWithResult = await Promise.all(hooks.map(async (hook) => {
|
|
37
|
-
const hookReturn = await execHookDirectAsync(() => hook.hookFn(pageContextForPublicUsage), hook, pageContextForPublicUsage);
|
|
41
|
+
const hookReturn = await execHookDirectAsync(() => hook.hookFn(pageContextForPublicUsage), hook, pageContext._globalContext, pageContextForPublicUsage);
|
|
38
42
|
return { ...hook, hookReturn };
|
|
39
43
|
}));
|
|
40
44
|
return hooksWithResult;
|
|
@@ -54,12 +58,12 @@ function isUserHookError(err) {
|
|
|
54
58
|
return false;
|
|
55
59
|
return globalObject.userHookErrors.get(err) ?? false;
|
|
56
60
|
}
|
|
57
|
-
async function execHookDirectWithoutPageContext(hookFnCaller, hook) {
|
|
61
|
+
async function execHookDirectWithoutPageContext(hookFnCaller, hook, globalContext) {
|
|
58
62
|
const { hookName, hookFilePath, hookTimeout } = hook;
|
|
59
|
-
const hookReturn = await execHookDirectAsync(hookFnCaller, { hookName, hookFilePath, hookTimeout }, null);
|
|
63
|
+
const hookReturn = await execHookDirectAsync(hookFnCaller, { hookName, hookFilePath, hookTimeout }, globalContext, null);
|
|
60
64
|
return hookReturn;
|
|
61
65
|
}
|
|
62
|
-
function execHookDirectAsync(hookFnCaller, hook, pageContextForPublicUsage) {
|
|
66
|
+
function execHookDirectAsync(hookFnCaller, hook, globalContext, pageContextForPublicUsage) {
|
|
63
67
|
const { hookName, hookFilePath, hookTimeout: { error: timeoutErr, warning: timeoutWarn }, } = hook;
|
|
64
68
|
let resolve;
|
|
65
69
|
let reject;
|
|
@@ -90,8 +94,7 @@ function execHookDirectAsync(hookFnCaller, hook, pageContextForPublicUsage) {
|
|
|
90
94
|
}, timeoutErr);
|
|
91
95
|
(async () => {
|
|
92
96
|
try {
|
|
93
|
-
|
|
94
|
-
const ret = await hookFnCaller();
|
|
97
|
+
const ret = await execHookBase(hookFnCaller, hook, globalContext, pageContextForPublicUsage);
|
|
95
98
|
resolve(ret);
|
|
96
99
|
}
|
|
97
100
|
catch (err) {
|
|
@@ -105,10 +108,72 @@ function execHookDirectAsync(hookFnCaller, hook, pageContextForPublicUsage) {
|
|
|
105
108
|
}
|
|
106
109
|
function execHookDirectSync(hook, pageContext, preparePageContextForPublicUsage) {
|
|
107
110
|
const pageContextForPublicUsage = preparePageContextForPublicUsage(pageContext);
|
|
108
|
-
|
|
109
|
-
const hookReturn = hook.hookFn(pageContextForPublicUsage);
|
|
111
|
+
const hookReturn = execHookBase(() => hook.hookFn(pageContextForPublicUsage), hook, pageContext._globalContext, pageContextForPublicUsage);
|
|
110
112
|
return { hookReturn };
|
|
111
113
|
}
|
|
114
|
+
// Every execHook* variant should call this
|
|
115
|
+
function execHookBase(hookFnCaller, hook, globalContext, pageContext) {
|
|
116
|
+
const { hookName, hookFilePath } = hook;
|
|
117
|
+
assert(hookName !== 'onHookCall'); // ensure no infinite loop
|
|
118
|
+
const configValue = globalContext._pageConfigGlobal.configValues['onHookCall'];
|
|
119
|
+
const callOriginal = () => {
|
|
120
|
+
providePageContextInternal(pageContext);
|
|
121
|
+
return hookFnCaller();
|
|
122
|
+
};
|
|
123
|
+
// +onHookCall doesn't exist
|
|
124
|
+
if (!configValue?.value)
|
|
125
|
+
return callOriginal();
|
|
126
|
+
// +onHookCall wrapping
|
|
127
|
+
let originalCalled = false;
|
|
128
|
+
let originalReturn;
|
|
129
|
+
let originalError;
|
|
130
|
+
let call = () => {
|
|
131
|
+
originalCalled = true;
|
|
132
|
+
try {
|
|
133
|
+
originalReturn = callOriginal();
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
originalError = err;
|
|
137
|
+
}
|
|
138
|
+
return originalReturn;
|
|
139
|
+
};
|
|
140
|
+
for (const onHookCall of configValue.value) {
|
|
141
|
+
const hookPublic = { name: hookName, filePath: hookFilePath, call };
|
|
142
|
+
// Recursively wrap callOriginal() so +onHookCall can use async hooks. (E.g. vike-react-sentry integrates Sentry's `Tracer.startActiveSpan()`.)
|
|
143
|
+
call = () => {
|
|
144
|
+
;
|
|
145
|
+
(async () => {
|
|
146
|
+
try {
|
|
147
|
+
await onHookCall(hookPublic, pageContext);
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
console.error(err);
|
|
151
|
+
/* TO-DO/eventually: use dependency injection to be able to use logErrorServer() when this function runs on the server-side.
|
|
152
|
+
if (
|
|
153
|
+
!globalThis.__VIKE__IS_CLIENT &&
|
|
154
|
+
pageContext &&
|
|
155
|
+
// Avoid infinite loop
|
|
156
|
+
hookName !== 'onError'
|
|
157
|
+
) {
|
|
158
|
+
assert(!pageContext.isClientSide)
|
|
159
|
+
logErrorServer(err, pageContext)
|
|
160
|
+
} else {
|
|
161
|
+
logErrorClient(err)
|
|
162
|
+
}
|
|
163
|
+
//*/
|
|
164
|
+
}
|
|
165
|
+
})();
|
|
166
|
+
// +onHookCall must run hook.call() before any `await` — https://github.com/vikejs/vike/pull/2978#discussion_r2645232953
|
|
167
|
+
assertUsage(originalCalled, 'onHookCall() must run hook.call()');
|
|
168
|
+
return originalReturn;
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
// Start the call() chain
|
|
172
|
+
call();
|
|
173
|
+
if (originalError)
|
|
174
|
+
throw originalError;
|
|
175
|
+
return originalReturn;
|
|
176
|
+
}
|
|
112
177
|
function isNotDisabled(timeout) {
|
|
113
178
|
return !!timeout && timeout !== Infinity;
|
|
114
179
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { prepareGlobalContextForPublicUsage };
|
|
2
2
|
export type { GlobalContextPrepareMinimum };
|
|
3
|
+
import type { PageConfigGlobalRuntime } from '../types/PageConfig.js';
|
|
3
4
|
type GlobalContextPrepareMinimum = {
|
|
4
5
|
_isOriginalObject: true;
|
|
5
6
|
isGlobalContext: true;
|
|
7
|
+
_pageConfigGlobal: PageConfigGlobalRuntime;
|
|
6
8
|
};
|
|
7
9
|
declare function prepareGlobalContextForPublicUsage<GlobalContext extends GlobalContextPrepareMinimum>(globalContext: GlobalContext): GlobalContext & {
|
|
8
10
|
_isProxyObject: true;
|
|
@@ -2,11 +2,10 @@ export { preparePageContextForPublicUsage };
|
|
|
2
2
|
export { assertPropertyGetters };
|
|
3
3
|
export type { PageContextPrepareMinimum };
|
|
4
4
|
import { type GlobalContextPrepareMinimum } from './prepareGlobalContextForPublicUsage.js';
|
|
5
|
+
import type { PageContextCreatedBase } from './createPageContextShared.js';
|
|
5
6
|
type PageContextPrepareMinimum = {
|
|
6
|
-
_isOriginalObject: true;
|
|
7
|
-
isPageContext: true;
|
|
8
7
|
_globalContext: GlobalContextPrepareMinimum;
|
|
9
|
-
};
|
|
8
|
+
} & PageContextCreatedBase;
|
|
10
9
|
declare function preparePageContextForPublicUsage<PageContext extends PageContextPrepareMinimum>(pageContext: PageContext): PageContext & {
|
|
11
10
|
_isProxyObject: true;
|
|
12
11
|
_originalObject: PageContext;
|
package/dist/types/Config.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ import type { ImportStringList } from '../node/vite/shared/importString.js';
|
|
|
51
51
|
type HookNameOld = HookName | HookNameOldDesign;
|
|
52
52
|
type HookName = HookNamePage | HookNameGlobal;
|
|
53
53
|
type HookNamePage = 'onHydrationEnd' | 'onBeforePrerenderStart' | 'onBeforeRender' | 'onPageTransitionStart' | 'onPageTransitionEnd' | 'onRenderHtml' | 'onRenderClient' | 'guard' | 'data' | 'onData' | 'route';
|
|
54
|
-
type HookNameGlobal = 'onBeforeRoute' | 'onPrerenderStart' | 'onCreatePageContext' | 'onCreateGlobalContext' | 'onError';
|
|
54
|
+
type HookNameGlobal = 'onBeforeRoute' | 'onPrerenderStart' | 'onCreatePageContext' | 'onCreateGlobalContext' | 'onError' | 'onHookCall';
|
|
55
55
|
type HookNameOldDesign = 'render' | 'prerender' | 'onBeforePrerender';
|
|
56
56
|
type ConfigNameBuiltIn = Exclude<keyof ConfigBuiltIn, keyof VikeVitePluginOptions | 'onBeforeRoute' | 'onPrerenderStart' | 'vite' | 'redirects'> | 'prerender' | 'hasServerOnlyHook' | 'isClientRuntimeLoaded' | 'onBeforeRenderEnv' | 'dataEnv' | 'guardEnv' | 'hooksTimeout' | 'clientHooks' | 'middleware';
|
|
57
57
|
type ConfigNameGlobal = 'onPrerenderStart' | 'onBeforeRoute' | 'prerender' | 'disableAutoFullBuild' | 'includeAssetsImportedByServer' | 'baseAssets' | 'baseServer' | 'redirects' | 'trailingSlash' | 'disableUrlNormalization' | 'vite';
|
|
@@ -265,76 +265,7 @@ type ConfigBuiltIn = {
|
|
|
265
265
|
*
|
|
266
266
|
* @default false
|
|
267
267
|
*/
|
|
268
|
-
prerender?:
|
|
269
|
-
/**
|
|
270
|
-
* Allow only some of your pages to be pre-rendered.
|
|
271
|
-
*
|
|
272
|
-
* This setting doesn't affect the pre-rendering process: it merely suppresses the warnings when some of your pages cannot be pre-rendered.
|
|
273
|
-
*
|
|
274
|
-
* https://vike.dev/prerender#partial
|
|
275
|
-
*
|
|
276
|
-
* @default false
|
|
277
|
-
*/
|
|
278
|
-
partial?: boolean;
|
|
279
|
-
/**
|
|
280
|
-
* Whether +redirects should be pre-rendered to HTML documents that redirect the user.
|
|
281
|
-
*
|
|
282
|
-
* https://vike.dev/prerender#redirects
|
|
283
|
-
*/
|
|
284
|
-
redirects?: boolean;
|
|
285
|
-
/**
|
|
286
|
-
* Don't create a new directory for each HTML file.
|
|
287
|
-
*
|
|
288
|
-
* For example, generate `dist/client/about.html` instead of `dist/client/about/index.html`.
|
|
289
|
-
*
|
|
290
|
-
* https://vike.dev/prerender#noextradir
|
|
291
|
-
*
|
|
292
|
-
* @default false
|
|
293
|
-
*/
|
|
294
|
-
noExtraDir?: boolean;
|
|
295
|
-
/**
|
|
296
|
-
* Number of concurrent pre-render jobs.
|
|
297
|
-
*
|
|
298
|
-
* Set to `false` to disable concurrency.
|
|
299
|
-
*
|
|
300
|
-
* https://vike.dev/prerender#parallel
|
|
301
|
-
*
|
|
302
|
-
* @default os.cpus().length
|
|
303
|
-
*/
|
|
304
|
-
parallel?: boolean | number;
|
|
305
|
-
/**
|
|
306
|
-
* Disable the automatic initiation of the pre-rendering process when running `$ vike build`.
|
|
307
|
-
*
|
|
308
|
-
* Use this if you want to programmatically initiate the pre-rendering process instead.
|
|
309
|
-
*
|
|
310
|
-
* https://vike.dev/prerender#disableautorun
|
|
311
|
-
*
|
|
312
|
-
* @default false
|
|
313
|
-
*/
|
|
314
|
-
disableAutoRun?: boolean;
|
|
315
|
-
/**
|
|
316
|
-
* Whether to enable pre-rendering.
|
|
317
|
-
*
|
|
318
|
-
* Setting `enable: null` enables you to set prerender settings without enabling pre-rendering by default.
|
|
319
|
-
*
|
|
320
|
-
* This is useful, for example, if you want pre-rendering to stay opt-in instead of opt-out while setting pre-render settings globally.
|
|
321
|
-
*
|
|
322
|
-
* https://vike.dev/prerender#enable
|
|
323
|
-
*
|
|
324
|
-
* @default true
|
|
325
|
-
*/
|
|
326
|
-
enable?: boolean | null;
|
|
327
|
-
/**
|
|
328
|
-
* If you pre-render all your pages then Vike removes the `dist/server/` directory after pre-rendering has finished.
|
|
329
|
-
*
|
|
330
|
-
* If you set this setting to `true` then Vike won't remove the `dist/server/` directory.
|
|
331
|
-
*
|
|
332
|
-
* https://vike.dev/prerender#keepDistServer
|
|
333
|
-
*
|
|
334
|
-
* @default false
|
|
335
|
-
*/
|
|
336
|
-
keepDistServer?: boolean;
|
|
337
|
-
};
|
|
268
|
+
prerender?: PrerenderSetting | (() => PrerenderSetting | Promise<PrerenderSetting>) | ImportStringList;
|
|
338
269
|
/**
|
|
339
270
|
* Install Vike extensions.
|
|
340
271
|
*
|
|
@@ -361,6 +292,15 @@ type ConfigBuiltIn = {
|
|
|
361
292
|
* https://vike.dev/onCreateGlobalContext
|
|
362
293
|
*/
|
|
363
294
|
onCreateGlobalContext?: ((globalContext: GlobalContext) => void) | ImportStringList | null;
|
|
295
|
+
/** Called whenever a hook is called.
|
|
296
|
+
*
|
|
297
|
+
* https://vike.dev/onHookCall
|
|
298
|
+
*/
|
|
299
|
+
onHookCall?: ((hook: {
|
|
300
|
+
name: HookName;
|
|
301
|
+
filePath: string;
|
|
302
|
+
call: () => void | Promise<void>;
|
|
303
|
+
}, pageContext: PageContextClient | PageContextServer | null) => void | Promise<void>) | ImportStringList;
|
|
364
304
|
/** Hook for fetching data.
|
|
365
305
|
*
|
|
366
306
|
* https://vike.dev/data
|
|
@@ -595,6 +535,76 @@ type ConfigBuiltIn = {
|
|
|
595
535
|
*/
|
|
596
536
|
staticReplace?: StaticReplace[];
|
|
597
537
|
};
|
|
538
|
+
type PrerenderSetting = boolean | {
|
|
539
|
+
/**
|
|
540
|
+
* Allow only some of your pages to be pre-rendered.
|
|
541
|
+
*
|
|
542
|
+
* This setting doesn't affect the pre-rendering process: it merely suppresses the warnings when some of your pages cannot be pre-rendered.
|
|
543
|
+
*
|
|
544
|
+
* https://vike.dev/prerender#partial
|
|
545
|
+
*
|
|
546
|
+
* @default false
|
|
547
|
+
*/
|
|
548
|
+
partial?: boolean;
|
|
549
|
+
/**
|
|
550
|
+
* Whether +redirects should be pre-rendered to HTML documents that redirect the user.
|
|
551
|
+
*
|
|
552
|
+
* https://vike.dev/prerender#redirects
|
|
553
|
+
*/
|
|
554
|
+
redirects?: boolean;
|
|
555
|
+
/**
|
|
556
|
+
* Don't create a new directory for each HTML file.
|
|
557
|
+
*
|
|
558
|
+
* For example, generate `dist/client/about.html` instead of `dist/client/about/index.html`.
|
|
559
|
+
*
|
|
560
|
+
* https://vike.dev/prerender#noextradir
|
|
561
|
+
*
|
|
562
|
+
* @default false
|
|
563
|
+
*/
|
|
564
|
+
noExtraDir?: boolean;
|
|
565
|
+
/**
|
|
566
|
+
* Number of concurrent pre-render jobs.
|
|
567
|
+
*
|
|
568
|
+
* Set to `false` to disable concurrency.
|
|
569
|
+
*
|
|
570
|
+
* https://vike.dev/prerender#parallel
|
|
571
|
+
*
|
|
572
|
+
* @default os.cpus().length
|
|
573
|
+
*/
|
|
574
|
+
parallel?: boolean | number;
|
|
575
|
+
/**
|
|
576
|
+
* Disable the automatic initiation of the pre-rendering process when running `$ vike build`.
|
|
577
|
+
*
|
|
578
|
+
* Use this if you want to programmatically initiate the pre-rendering process instead.
|
|
579
|
+
*
|
|
580
|
+
* https://vike.dev/prerender#disableautorun
|
|
581
|
+
*
|
|
582
|
+
* @default false
|
|
583
|
+
*/
|
|
584
|
+
disableAutoRun?: boolean;
|
|
585
|
+
/**
|
|
586
|
+
* Whether to enable pre-rendering.
|
|
587
|
+
*
|
|
588
|
+
* Setting `enable: null` enables you to set prerender settings without enabling pre-rendering by default.
|
|
589
|
+
*
|
|
590
|
+
* This is useful, for example, if you want pre-rendering to stay opt-in instead of opt-out while setting pre-render settings globally.
|
|
591
|
+
*
|
|
592
|
+
* https://vike.dev/prerender#enable
|
|
593
|
+
*
|
|
594
|
+
* @default true
|
|
595
|
+
*/
|
|
596
|
+
enable?: boolean | null;
|
|
597
|
+
/**
|
|
598
|
+
* If you pre-render all your pages then Vike removes the `dist/server/` directory after pre-rendering has finished.
|
|
599
|
+
*
|
|
600
|
+
* If you set this setting to `true` then Vike won't remove the `dist/server/` directory.
|
|
601
|
+
*
|
|
602
|
+
* https://vike.dev/prerender#keepDistServer
|
|
603
|
+
*
|
|
604
|
+
* @default false
|
|
605
|
+
*/
|
|
606
|
+
keepDistServer?: boolean;
|
|
607
|
+
};
|
|
598
608
|
type ConfigBuiltInResolved = {
|
|
599
609
|
passToClient?: string[][];
|
|
600
610
|
redirects?: Record<string, string>[];
|
package/dist/types/Config.js
CHANGED
|
@@ -7,6 +7,7 @@ export type { PageContextInternalServer };
|
|
|
7
7
|
export type { PageContextInternalClient };
|
|
8
8
|
export type { PageContextInternalClient_ServerRouting };
|
|
9
9
|
export type { PageContextInternalClient_ClientRouting };
|
|
10
|
+
export type { PageContextInit };
|
|
10
11
|
export type { PageContextBuiltInServer_deprecated as PageContextBuiltInServer };
|
|
11
12
|
export type { PageContextBuiltInClientWithClientRouting_deprecated as PageContextBuiltInClientWithClientRouting };
|
|
12
13
|
export type { PageContextBuiltInClientWithServerRouting_deprecated as PageContextBuiltInClientWithServerRouting };
|
|
@@ -56,29 +57,6 @@ type PageContextBuiltInCommon<Data> = PageContextConfig & {
|
|
|
56
57
|
* https://vike.dev/pageContext#data
|
|
57
58
|
*/
|
|
58
59
|
data: Data;
|
|
59
|
-
/** The URL you provided to Vike when calling `renderPage({ urlOriginal })` in your server middleware.
|
|
60
|
-
*
|
|
61
|
-
* https://vike.dev/renderPage
|
|
62
|
-
*/
|
|
63
|
-
urlOriginal: string;
|
|
64
|
-
/**
|
|
65
|
-
* The HTTP request headers.
|
|
66
|
-
*
|
|
67
|
-
* As a string object normalized by Vike.
|
|
68
|
-
*
|
|
69
|
-
* https://vike.dev/headers
|
|
70
|
-
* https://vike.dev/pageContext#headers
|
|
71
|
-
*/
|
|
72
|
-
headers: Record<string, string> | null;
|
|
73
|
-
/**
|
|
74
|
-
* The HTTP request headers.
|
|
75
|
-
*
|
|
76
|
-
* The original object provided by the server.
|
|
77
|
-
*
|
|
78
|
-
* https://vike.dev/headers
|
|
79
|
-
* https://vike.dev/pageContext#headersOriginal
|
|
80
|
-
*/
|
|
81
|
-
headersOriginal?: unknown;
|
|
82
60
|
/**
|
|
83
61
|
* The HTTP response headers.
|
|
84
62
|
*
|
|
@@ -128,8 +106,6 @@ type PageContextBuiltInCommon<Data> = PageContextConfig & {
|
|
|
128
106
|
/** @experimental https://github.com/vikejs/vike/issues/1268 */
|
|
129
107
|
sources: Sources;
|
|
130
108
|
/** @deprecated */
|
|
131
|
-
url: string;
|
|
132
|
-
/** @deprecated */
|
|
133
109
|
pageExports: Record<string, unknown>;
|
|
134
110
|
/**
|
|
135
111
|
* Whether the Base URL is missing in the URL of the HTTP request made to the SSR server.
|
|
@@ -139,7 +115,34 @@ type PageContextBuiltInCommon<Data> = PageContextConfig & {
|
|
|
139
115
|
*/
|
|
140
116
|
isBaseMissing?: true;
|
|
141
117
|
};
|
|
142
|
-
type
|
|
118
|
+
type PageContextInit = {
|
|
119
|
+
/** The URL provided when `renderPage({ urlOriginal })` is called.
|
|
120
|
+
*
|
|
121
|
+
* https://vike.dev/renderPage
|
|
122
|
+
*/
|
|
123
|
+
urlOriginal: string;
|
|
124
|
+
/**
|
|
125
|
+
* The HTTP request headers.
|
|
126
|
+
*
|
|
127
|
+
* The original object provided by the server.
|
|
128
|
+
*
|
|
129
|
+
* https://vike.dev/headers
|
|
130
|
+
* https://vike.dev/pageContext#headersOriginal
|
|
131
|
+
*/
|
|
132
|
+
headersOriginal?: unknown;
|
|
133
|
+
/** @deprecated Set `pageContextInit.urlOriginal` instead */ url?: string;
|
|
134
|
+
/** @deprecated Set pageContextInit.headersOriginal instead */ headers?: Record<string, string>;
|
|
135
|
+
};
|
|
136
|
+
type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageContextInit & PageContextUrlServer & {
|
|
137
|
+
/**
|
|
138
|
+
* The HTTP request headers.
|
|
139
|
+
*
|
|
140
|
+
* As a string object normalized by Vike.
|
|
141
|
+
*
|
|
142
|
+
* https://vike.dev/headers
|
|
143
|
+
* https://vike.dev/pageContext#headers
|
|
144
|
+
*/
|
|
145
|
+
headers: Record<string, string> | null;
|
|
143
146
|
/**
|
|
144
147
|
* Whether the environment is the client-side:
|
|
145
148
|
* - In the browser, the value is `true`.
|
|
@@ -182,6 +185,10 @@ type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageConte
|
|
|
182
185
|
previousPageContext?: undefined;
|
|
183
186
|
};
|
|
184
187
|
type PageContextBuiltInClientWithClientRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'routeParams' | 'pageExports' | 'config' | 'configEntries' | 'exports' | 'exportsAll' | 'abortReason' | 'data' | 'pageId' | 'source' | 'sources' | 'from'> & PageContextClientCommon & {
|
|
188
|
+
/**
|
|
189
|
+
* The current URL unprocessed (e.g. with the Base URL).
|
|
190
|
+
*/
|
|
191
|
+
urlOriginal: string;
|
|
185
192
|
/**
|
|
186
193
|
* Whether the page is the first page rendered.
|
|
187
194
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.250-commit-
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.250-commit-2686732";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.250-commit-
|
|
2
|
+
export const PROJECT_VERSION = '0.4.250-commit-2686732';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { installUncaughtErrorHandlers };
|
|
2
|
+
import { getGlobalObject } from './getGlobalObject.js';
|
|
3
|
+
const globalObject = getGlobalObject('./installUncaughtErrorHandlers.ts', {
|
|
4
|
+
installed: false,
|
|
5
|
+
});
|
|
6
|
+
// Avoid server shutdown upon uncaught errors, e.g. `setTimeout(() => throw new Error('Uncaught error'), 10)`
|
|
7
|
+
// If in the future we want to call +onError then let's use different handlers
|
|
8
|
+
function installUncaughtErrorHandlers() {
|
|
9
|
+
if (globalObject.installed)
|
|
10
|
+
return;
|
|
11
|
+
globalObject.installed = true;
|
|
12
|
+
if (typeof process === 'undefined')
|
|
13
|
+
return;
|
|
14
|
+
process?.addListener?.('uncaughtException', (err) => {
|
|
15
|
+
console.error(err);
|
|
16
|
+
});
|
|
17
|
+
process?.addListener?.('unhandledRejection', (err) => {
|
|
18
|
+
console.error(err);
|
|
19
|
+
});
|
|
20
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike",
|
|
3
|
-
"version": "0.4.250-commit-
|
|
3
|
+
"version": "0.4.250-commit-2686732",
|
|
4
4
|
"repository": "https://github.com/vikejs/vike",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": {
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"@brillout/json-serializer": "^0.5.21",
|
|
125
125
|
"@brillout/picocolors": "^1.0.30",
|
|
126
126
|
"@brillout/require-shim": "^0.1.2",
|
|
127
|
-
"@brillout/vite-plugin-server-entry": "^0.7.
|
|
127
|
+
"@brillout/vite-plugin-server-entry": "^0.7.17",
|
|
128
128
|
"cac": "^6.0.0",
|
|
129
129
|
"es-module-lexer": "^1.0.0",
|
|
130
130
|
"esbuild": ">=0.19.0",
|