vike 0.4.227-commit-e36b916 → 0.4.227-commit-25aa0f8

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.
@@ -1,6 +1,5 @@
1
1
  export { renderPageAlreadyRouted };
2
2
  export { prerenderPage };
3
- export { prerender404Page };
4
3
  export { getPageContextInitEnhanced };
5
4
  export { createPageContext };
6
5
  export type { PageContextAfterRender };
@@ -210,187 +209,6 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
210
209
  _urlHandler: null;
211
210
  };
212
211
  }>;
213
- declare function prerender404Page(pageContextInit_: Record<string, unknown> | null, globalContext: GlobalContextInternal): Promise<{
214
- documentHtml: string;
215
- pageContextSerialized: null;
216
- pageContext: {
217
- _isPageContextObject: boolean;
218
- isClientSide: boolean;
219
- isPrerendering: boolean;
220
- } & Record<string, unknown> & {
221
- urlOriginal: string;
222
- headersOriginal?: unknown;
223
- headers?: unknown;
224
- } & {
225
- _objectCreatedByVike: boolean;
226
- _baseServer: string;
227
- _baseAssets: string;
228
- _includeAssetsImportedByServer: boolean;
229
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
230
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
231
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
232
- _allPageIds: string[];
233
- _pageRoutes: import("../../../__internal/index.js").PageRoutes;
234
- _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
235
- _globalContext: GlobalContextInternal;
236
- /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
237
- globalContext: Pick<{
238
- viteConfigRuntime: {
239
- _baseViteOriginal: null | string;
240
- };
241
- config: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigUserFriendly["config"];
242
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
243
- } & import("../../shared/resolveBase.js").BaseUrlsResolved & ({
244
- pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
245
- pageConfigs: import("../../../__internal/index.js").PageConfig[];
246
- pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
247
- allPageIds: string[];
248
- pageRoutes: import("../../../__internal/index.js").PageRoutes;
249
- onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
250
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
251
- config: import("../../../types/index.js").ConfigResolved;
252
- } & ({
253
- isProduction: false;
254
- isPrerendering: false;
255
- viteConfig: import("vite").ResolvedConfig;
256
- viteDevServer: import("vite").ViteDevServer;
257
- assetsManifest: null;
258
- } | ({
259
- isProduction: true;
260
- assetsManifest: import("../../shared/ViteManifest.js").ViteManifest;
261
- viteDevServer: null;
262
- } & ({
263
- isPrerendering: false;
264
- viteConfig: null;
265
- } | {
266
- isPrerendering: true;
267
- usesClientRouter: boolean;
268
- viteConfig: import("vite").ResolvedConfig;
269
- })))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig">;
270
- _pageContextInit: {
271
- urlOriginal: string;
272
- headersOriginal?: unknown;
273
- headers?: unknown;
274
- };
275
- _urlRewrite: string | null;
276
- _urlHandler: ((url: string) => string) | null;
277
- isClientSideNavigation: boolean;
278
- } & {
279
- urlParsed: import("../utils.js").UrlPublic;
280
- urlPathname: string;
281
- url: string;
282
- } & {
283
- headers: Record<string, string> | null;
284
- } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
285
- Page: unknown;
286
- _isHtmlOnly: boolean;
287
- _passToClient: string[];
288
- _pageFilePathsLoaded: string[];
289
- } & {
290
- __getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
291
- } & {
292
- routeParams: Record<string, string>;
293
- pageId: string;
294
- _urlRewrite: null;
295
- _httpRequestId: number | null;
296
- _usesClientRouter: boolean;
297
- _pageContextAlreadyProvidedByOnPrerenderHook?: true;
298
- is404: null | boolean;
299
- } & {
300
- isClientSideNavigation: boolean;
301
- _urlHandler: null;
302
- };
303
- } | {
304
- documentHtml: string;
305
- pageContextSerialized: string;
306
- pageContext: {
307
- _isPageContextObject: boolean;
308
- isClientSide: boolean;
309
- isPrerendering: boolean;
310
- } & Record<string, unknown> & {
311
- urlOriginal: string;
312
- headersOriginal?: unknown;
313
- headers?: unknown;
314
- } & {
315
- _objectCreatedByVike: boolean;
316
- _baseServer: string;
317
- _baseAssets: string;
318
- _includeAssetsImportedByServer: boolean;
319
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
320
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
321
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
322
- _allPageIds: string[];
323
- _pageRoutes: import("../../../__internal/index.js").PageRoutes;
324
- _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
325
- _globalContext: GlobalContextInternal;
326
- /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
327
- globalContext: Pick<{
328
- viteConfigRuntime: {
329
- _baseViteOriginal: null | string;
330
- };
331
- config: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigUserFriendly["config"];
332
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
333
- } & import("../../shared/resolveBase.js").BaseUrlsResolved & ({
334
- pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
335
- pageConfigs: import("../../../__internal/index.js").PageConfig[];
336
- pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
337
- allPageIds: string[];
338
- pageRoutes: import("../../../__internal/index.js").PageRoutes;
339
- onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
340
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
341
- config: import("../../../types/index.js").ConfigResolved;
342
- } & ({
343
- isProduction: false;
344
- isPrerendering: false;
345
- viteConfig: import("vite").ResolvedConfig;
346
- viteDevServer: import("vite").ViteDevServer;
347
- assetsManifest: null;
348
- } | ({
349
- isProduction: true;
350
- assetsManifest: import("../../shared/ViteManifest.js").ViteManifest;
351
- viteDevServer: null;
352
- } & ({
353
- isPrerendering: false;
354
- viteConfig: null;
355
- } | {
356
- isPrerendering: true;
357
- usesClientRouter: boolean;
358
- viteConfig: import("vite").ResolvedConfig;
359
- })))), "pages" | "baseServer" | "baseAssets" | "config" | "assetsManifest" | "viteConfig">;
360
- _pageContextInit: {
361
- urlOriginal: string;
362
- headersOriginal?: unknown;
363
- headers?: unknown;
364
- };
365
- _urlRewrite: string | null;
366
- _urlHandler: ((url: string) => string) | null;
367
- isClientSideNavigation: boolean;
368
- } & {
369
- urlParsed: import("../utils.js").UrlPublic;
370
- urlPathname: string;
371
- url: string;
372
- } & {
373
- headers: Record<string, string> | null;
374
- } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
375
- Page: unknown;
376
- _isHtmlOnly: boolean;
377
- _passToClient: string[];
378
- _pageFilePathsLoaded: string[];
379
- } & {
380
- __getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
381
- } & {
382
- routeParams: Record<string, string>;
383
- pageId: string;
384
- _urlRewrite: null;
385
- _httpRequestId: number | null;
386
- _usesClientRouter: boolean;
387
- _pageContextAlreadyProvidedByOnPrerenderHook?: true;
388
- is404: null | boolean;
389
- } & {
390
- isClientSideNavigation: boolean;
391
- _urlHandler: null;
392
- };
393
- } | null>;
394
212
  type PageContextInitEnhanced = Awaited<ReturnType<typeof getPageContextInitEnhanced>>;
395
213
  declare function getPageContextInitEnhanced(pageContextInit: {
396
214
  urlOriginal: string;
@@ -1,6 +1,5 @@
1
1
  export { renderPageAlreadyRouted };
2
2
  export { prerenderPage };
3
- export { prerender404Page };
4
3
  export { getPageContextInitEnhanced };
5
4
  export { createPageContext };
6
5
  import { getErrorPageId } from '../../../shared/error-page.js';
@@ -80,28 +79,6 @@ async function prerenderPage(pageContext) {
80
79
  return { documentHtml, pageContextSerialized, pageContext };
81
80
  }
82
81
  }
83
- async function prerender404Page(pageContextInit_, globalContext) {
84
- const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
85
- if (!errorPageId) {
86
- return null;
87
- }
88
- // A URL is required for `viteDevServer.transformIndexHtml(url,html)`
89
- const pageContextInit = { urlOriginal: '/fake-404-url' };
90
- objectAssign(pageContextInit, pageContextInit_);
91
- const pageContext = await getPageContextInitEnhanced(pageContextInit, globalContext, true);
92
- objectAssign(pageContext, {
93
- pageId: errorPageId,
94
- _httpRequestId: null,
95
- _urlRewrite: null,
96
- is404: true,
97
- routeParams: {},
98
- // `prerender404Page()` is about generating `dist/client/404.html` for static hosts; there is no Client Routing.
99
- _usesClientRouter: false,
100
- _debugRouteMatches: []
101
- });
102
- objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
103
- return prerenderPage(pageContext);
104
- }
105
82
  async function getPageContextInitEnhanced(pageContextInit, globalContext, isPrerendering, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
106
83
  urlRewrite: null,
107
84
  urlHandler: null,
@@ -30,4 +30,4 @@ type RouteMatch = {
30
30
  routeParams: Record<string, string>;
31
31
  };
32
32
  type RouteMatches = 'CUSTOM_ROUTING' | RouteMatch[];
33
- declare function route(pageContext: PageContextForRoute): Promise<PageContextFromRoute>;
33
+ declare function route(pageContext: PageContextForRoute, skipOnBeforeRouteHook?: true): Promise<PageContextFromRoute>;
@@ -13,23 +13,25 @@ import { resolveRouteFunction } from './resolveRouteFunction.js';
13
13
  import { executeOnBeforeRouteHook } from './executeOnBeforeRouteHook.js';
14
14
  import { debug } from './debug.js';
15
15
  import pc from '@brillout/picocolors';
16
- async function route(pageContext) {
16
+ async function route(pageContext, skipOnBeforeRouteHook) {
17
17
  debug('Pages routes:', pageContext._pageRoutes);
18
18
  assertPageContextUrl(pageContext);
19
19
  const pageContextFromRoute = {};
20
20
  // onBeforeRoute()
21
- const pageContextFromOnBeforeRouteHook = await executeOnBeforeRouteHook(pageContext);
22
- if (pageContextFromOnBeforeRouteHook) {
23
- if (pageContextFromOnBeforeRouteHook._routingProvidedByOnBeforeRouteHook) {
24
- assert(pageContextFromOnBeforeRouteHook.pageId);
25
- return pageContextFromOnBeforeRouteHook;
26
- }
27
- else {
28
- objectAssign(pageContextFromRoute, pageContextFromOnBeforeRouteHook);
21
+ if (!skipOnBeforeRouteHook) {
22
+ const pageContextFromOnBeforeRouteHook = await executeOnBeforeRouteHook(pageContext);
23
+ if (pageContextFromOnBeforeRouteHook) {
24
+ if (pageContextFromOnBeforeRouteHook._routingProvidedByOnBeforeRouteHook) {
25
+ assert(pageContextFromOnBeforeRouteHook.pageId);
26
+ return pageContextFromOnBeforeRouteHook;
27
+ }
28
+ else {
29
+ objectAssign(pageContextFromRoute, pageContextFromOnBeforeRouteHook);
30
+ }
29
31
  }
32
+ // We take into account pageContext.urlLogical set by onBeforeRoute()
33
+ objectAssign(pageContext, pageContextFromOnBeforeRouteHook);
30
34
  }
31
- // We take into account pageContext.urlLogical set by onBeforeRoute()
32
- objectAssign(pageContext, pageContextFromOnBeforeRouteHook);
33
35
  // Vike's routing
34
36
  const allPageIds = pageContext._allPageIds;
35
37
  assertUsage(allPageIds.length > 0, 'No page found. You must create at least one page.');
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.227-commit-e36b916";
1
+ export declare const PROJECT_VERSION: "0.4.227-commit-25aa0f8";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.227-commit-e36b916';
2
+ export const PROJECT_VERSION = '0.4.227-commit-25aa0f8';
@@ -0,0 +1,2 @@
1
+ export { preservePropertyGetters };
2
+ declare function preservePropertyGetters<T extends object>(objOriginal: T): void;
@@ -0,0 +1,28 @@
1
+ export { preservePropertyGetters };
2
+ import { assert } from './assert.js';
3
+ function preservePropertyGetters(objOriginal) {
4
+ // Store original getter descriptors
5
+ const getters = Object.fromEntries(Object.entries(Object.getOwnPropertyDescriptors(objOriginal)).filter(([_, desc]) => 'get' in desc));
6
+ // Make getters non-enumerable
7
+ for (const [key, desc] of Object.entries(getters)) {
8
+ Object.defineProperty(objOriginal, key, { ...desc, enumerable: false });
9
+ }
10
+ const restorePropertyGetters = function () {
11
+ const objCopy = this;
12
+ delete objOriginal._restorePropertyGetters;
13
+ delete objCopy._restorePropertyGetters;
14
+ for (const [key, desc] of Object.entries(getters)) {
15
+ if (objCopy !== objOriginal) {
16
+ assert(!(key in objCopy));
17
+ Object.defineProperty(objCopy, key, desc); // Add property getters to copy
18
+ }
19
+ assert(key in objOriginal);
20
+ Object.defineProperty(objOriginal, key, desc); // Restore original `enumerable` value
21
+ }
22
+ };
23
+ Object.defineProperty(objOriginal, '_restorePropertyGetters', {
24
+ value: restorePropertyGetters,
25
+ enumerable: true,
26
+ configurable: true
27
+ });
28
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.227-commit-e36b916",
3
+ "version": "0.4.227-commit-25aa0f8",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {