vike 0.4.232-commit-1690f53 → 0.4.232
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/node/prerender/runPrerender.js +4 -9
- package/dist/cjs/node/runtime/renderPage/execHookServer.js +4 -1
- package/dist/cjs/node/runtime/renderPage/{execHookDataAndOnBeforeRender.js → executeOnBeforeRenderAndDataHooks.js} +2 -2
- package/dist/cjs/node/runtime/renderPage/{execHookOnRenderHtml.js → executeOnRenderHtmlHook.js} +3 -3
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +13 -18
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -11
- package/dist/cjs/node/runtime/renderPage.js +48 -55
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +2 -0
- package/dist/cjs/shared/createPageContextShared.js +3 -1
- package/dist/cjs/shared/hooks/execHook.js +54 -31
- package/dist/cjs/shared/route/{execHookGuard.js → executeGuardHook.js} +3 -3
- package/dist/cjs/shared/route/{execHookOnBeforeRoute.js → executeOnBeforeRouteHook.js} +4 -4
- package/dist/cjs/shared/route/index.js +2 -3
- package/dist/cjs/shared/route/resolveRouteFunction.js +1 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/styleFileRE.js +0 -1
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +9 -9
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +62 -97
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +4 -11
- package/dist/esm/client/runtime-server-routing/entry.js +2 -2
- package/dist/esm/client/shared/{execHookOnRenderClient.d.ts → executeOnRenderClientHook.d.ts} +2 -2
- package/dist/esm/client/shared/{execHookOnRenderClient.js → executeOnRenderClientHook.js} +4 -4
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +4 -12
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
- package/dist/esm/node/prerender/runPrerender.d.ts +4 -250
- package/dist/esm/node/prerender/runPrerender.js +6 -11
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/execHookServer.js +4 -1
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +6 -0
- package/dist/esm/node/runtime/renderPage/{execHookDataAndOnBeforeRender.js → executeOnBeforeRenderAndDataHooks.js} +2 -2
- package/dist/esm/node/runtime/renderPage/{execHookOnRenderHtml.d.ts → executeOnRenderHtmlHook.d.ts} +2 -2
- package/dist/esm/node/runtime/renderPage/{execHookOnRenderHtml.js → executeOnRenderHtmlHook.js} +4 -4
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +6 -15
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +13 -18
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +13 -13
- package/dist/esm/node/runtime/renderPage.js +50 -57
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +2 -0
- package/dist/esm/shared/createPageContextShared.js +3 -1
- package/dist/esm/shared/hooks/execHook.d.ts +28 -14
- package/dist/esm/shared/hooks/execHook.js +54 -31
- package/dist/esm/shared/route/executeGuardHook.d.ts +8 -0
- package/dist/esm/shared/route/{execHookGuard.js → executeGuardHook.js} +4 -4
- package/dist/esm/shared/route/{execHookOnBeforeRoute.d.ts → executeOnBeforeRouteHook.d.ts} +2 -2
- package/dist/esm/shared/route/{execHookOnBeforeRoute.js → executeOnBeforeRouteHook.js} +5 -5
- package/dist/esm/shared/route/index.js +2 -3
- package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/styleFileRE.js +0 -1
- package/package.json +1 -1
- package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.d.ts +0 -6
- package/dist/esm/shared/route/execHookGuard.d.ts +0 -8
|
@@ -171,7 +171,7 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
171
171
|
_sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
|
|
172
172
|
_from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
|
|
173
173
|
} & {
|
|
174
|
-
urlParsed: import("../
|
|
174
|
+
urlParsed: import("../shared/utils.js").UrlPublic;
|
|
175
175
|
urlPathname: string;
|
|
176
176
|
url: string;
|
|
177
177
|
} & {
|
|
@@ -292,7 +292,7 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
292
292
|
_sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
|
|
293
293
|
_from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
|
|
294
294
|
} & {
|
|
295
|
-
urlParsed: import("../
|
|
295
|
+
urlParsed: import("../shared/utils.js").UrlPublic;
|
|
296
296
|
urlPathname: string;
|
|
297
297
|
url: string;
|
|
298
298
|
} & {
|
|
@@ -310,259 +310,13 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
|
|
|
310
310
|
pageId: string;
|
|
311
311
|
_debugRouteMatches: never[];
|
|
312
312
|
routeParams: {};
|
|
313
|
-
})) & (
|
|
314
|
-
_isOriginalObject: true;
|
|
315
|
-
isPageContext: true;
|
|
316
|
-
} & {
|
|
317
|
-
isClientSide: false;
|
|
318
|
-
isPrerendering: boolean;
|
|
319
|
-
} & Pick<import("../../types/PageContext.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
|
|
320
|
-
url?: string;
|
|
321
|
-
headers?: Record<string, string>;
|
|
322
|
-
} & {
|
|
323
|
-
_globalContext: {
|
|
324
|
-
isGlobalContext: true;
|
|
325
|
-
_isOriginalObject: true;
|
|
326
|
-
_virtualFileExports: unknown;
|
|
327
|
-
_pageFilesAll: PageFile[];
|
|
328
|
-
_pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
|
|
329
|
-
_pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
330
|
-
_allPageIds: string[];
|
|
331
|
-
_vikeConfigPublicGlobal: {
|
|
332
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
333
|
-
_source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
|
|
334
|
-
_sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
|
|
335
|
-
_from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
|
|
336
|
-
};
|
|
337
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
338
|
-
pages: {
|
|
339
|
-
[k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
|
|
340
|
-
};
|
|
341
|
-
} & ({
|
|
342
|
-
_isProduction: false;
|
|
343
|
-
_isPrerendering: false;
|
|
344
|
-
assetsManifest: null;
|
|
345
|
-
_viteDevServer: import("vite").ViteDevServer;
|
|
346
|
-
viteConfig: ResolvedConfig;
|
|
347
|
-
viteConfigRuntime: {
|
|
348
|
-
root: string;
|
|
349
|
-
build: {
|
|
350
|
-
outDir: string;
|
|
351
|
-
};
|
|
352
|
-
_baseViteOriginal: string;
|
|
353
|
-
vitePluginServerEntry: {
|
|
354
|
-
inject: boolean | undefined;
|
|
355
|
-
};
|
|
356
|
-
};
|
|
357
|
-
baseServer: string;
|
|
358
|
-
baseAssets: string;
|
|
359
|
-
isClientSide: false;
|
|
360
|
-
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
361
|
-
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
362
|
-
} | {
|
|
363
|
-
_isPrerendering: true;
|
|
364
|
-
viteConfig: ResolvedConfig;
|
|
365
|
-
_isProduction: true;
|
|
366
|
-
assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
|
|
367
|
-
_viteDevServer: null;
|
|
368
|
-
viteConfigRuntime: {
|
|
369
|
-
root: string;
|
|
370
|
-
build: {
|
|
371
|
-
outDir: string;
|
|
372
|
-
};
|
|
373
|
-
_baseViteOriginal: string;
|
|
374
|
-
vitePluginServerEntry: {
|
|
375
|
-
inject: boolean | undefined;
|
|
376
|
-
};
|
|
377
|
-
};
|
|
378
|
-
_usesClientRouter: boolean;
|
|
379
|
-
baseServer: string;
|
|
380
|
-
baseAssets: string;
|
|
381
|
-
isClientSide: false;
|
|
382
|
-
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
383
|
-
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
384
|
-
} | {
|
|
385
|
-
_isPrerendering: false;
|
|
386
|
-
viteConfig: null;
|
|
387
|
-
_isProduction: true;
|
|
388
|
-
assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
|
|
389
|
-
_viteDevServer: null;
|
|
390
|
-
viteConfigRuntime: {
|
|
391
|
-
root: string;
|
|
392
|
-
build: {
|
|
393
|
-
outDir: string;
|
|
394
|
-
};
|
|
395
|
-
_baseViteOriginal: string;
|
|
396
|
-
vitePluginServerEntry: {
|
|
397
|
-
inject: boolean | undefined;
|
|
398
|
-
};
|
|
399
|
-
};
|
|
400
|
-
_usesClientRouter: boolean;
|
|
401
|
-
baseServer: string;
|
|
402
|
-
baseAssets: string;
|
|
403
|
-
isClientSide: false;
|
|
404
|
-
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
405
|
-
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
406
|
-
});
|
|
407
|
-
_pageFilesAll: PageFile[];
|
|
408
|
-
_baseServer: string;
|
|
409
|
-
_baseAssets: string;
|
|
410
|
-
_pageContextInit: import("../runtime/renderPage.js").PageContextInit;
|
|
411
|
-
_urlRewrite: null;
|
|
412
|
-
_urlHandler: ((url: string) => string) | null;
|
|
413
|
-
isClientSideNavigation: boolean;
|
|
414
|
-
} & {
|
|
415
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
416
|
-
_source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
|
|
417
|
-
_sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
|
|
418
|
-
_from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
|
|
419
|
-
} & {
|
|
420
|
-
urlParsed: import("../runtime/utils.js").UrlPublic;
|
|
421
|
-
urlPathname: string;
|
|
422
|
-
url: string;
|
|
423
|
-
} & {
|
|
424
|
-
headers: Record<string, string> | null;
|
|
425
|
-
} & {
|
|
426
|
-
_urlHandler: null;
|
|
427
|
-
_httpRequestId: null;
|
|
428
|
-
_urlRewrite: null;
|
|
429
|
-
_noExtraDir: boolean | null;
|
|
430
|
-
_prerenderContext: PrerenderContext;
|
|
431
|
-
_providedByHook: ProvidedByHook;
|
|
432
|
-
_urlOriginalModifiedByHook: ProvidedByHookTransformer;
|
|
433
|
-
is404: boolean;
|
|
434
|
-
} & import("../../shared/route/index.js").PageContextFromRoute & Record<"pageId", string>) | ({
|
|
435
|
-
_isOriginalObject: true;
|
|
436
|
-
isPageContext: true;
|
|
437
|
-
} & {
|
|
438
|
-
isClientSide: false;
|
|
439
|
-
isPrerendering: boolean;
|
|
440
|
-
} & Pick<import("../../types/PageContext.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
|
|
441
|
-
url?: string;
|
|
442
|
-
headers?: Record<string, string>;
|
|
443
|
-
} & {
|
|
444
|
-
_globalContext: {
|
|
445
|
-
isGlobalContext: true;
|
|
446
|
-
_isOriginalObject: true;
|
|
447
|
-
_virtualFileExports: unknown;
|
|
448
|
-
_pageFilesAll: PageFile[];
|
|
449
|
-
_pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
|
|
450
|
-
_pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
451
|
-
_allPageIds: string[];
|
|
452
|
-
_vikeConfigPublicGlobal: {
|
|
453
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
454
|
-
_source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
|
|
455
|
-
_sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
|
|
456
|
-
_from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
|
|
457
|
-
};
|
|
458
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
459
|
-
pages: {
|
|
460
|
-
[k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
|
|
461
|
-
};
|
|
462
|
-
} & ({
|
|
463
|
-
_isProduction: false;
|
|
464
|
-
_isPrerendering: false;
|
|
465
|
-
assetsManifest: null;
|
|
466
|
-
_viteDevServer: import("vite").ViteDevServer;
|
|
467
|
-
viteConfig: ResolvedConfig;
|
|
468
|
-
viteConfigRuntime: {
|
|
469
|
-
root: string;
|
|
470
|
-
build: {
|
|
471
|
-
outDir: string;
|
|
472
|
-
};
|
|
473
|
-
_baseViteOriginal: string;
|
|
474
|
-
vitePluginServerEntry: {
|
|
475
|
-
inject: boolean | undefined;
|
|
476
|
-
};
|
|
477
|
-
};
|
|
478
|
-
baseServer: string;
|
|
479
|
-
baseAssets: string;
|
|
480
|
-
isClientSide: false;
|
|
481
|
-
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
482
|
-
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
483
|
-
} | {
|
|
484
|
-
_isPrerendering: true;
|
|
485
|
-
viteConfig: ResolvedConfig;
|
|
486
|
-
_isProduction: true;
|
|
487
|
-
assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
|
|
488
|
-
_viteDevServer: null;
|
|
489
|
-
viteConfigRuntime: {
|
|
490
|
-
root: string;
|
|
491
|
-
build: {
|
|
492
|
-
outDir: string;
|
|
493
|
-
};
|
|
494
|
-
_baseViteOriginal: string;
|
|
495
|
-
vitePluginServerEntry: {
|
|
496
|
-
inject: boolean | undefined;
|
|
497
|
-
};
|
|
498
|
-
};
|
|
499
|
-
_usesClientRouter: boolean;
|
|
500
|
-
baseServer: string;
|
|
501
|
-
baseAssets: string;
|
|
502
|
-
isClientSide: false;
|
|
503
|
-
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
504
|
-
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
505
|
-
} | {
|
|
506
|
-
_isPrerendering: false;
|
|
507
|
-
viteConfig: null;
|
|
508
|
-
_isProduction: true;
|
|
509
|
-
assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
|
|
510
|
-
_viteDevServer: null;
|
|
511
|
-
viteConfigRuntime: {
|
|
512
|
-
root: string;
|
|
513
|
-
build: {
|
|
514
|
-
outDir: string;
|
|
515
|
-
};
|
|
516
|
-
_baseViteOriginal: string;
|
|
517
|
-
vitePluginServerEntry: {
|
|
518
|
-
inject: boolean | undefined;
|
|
519
|
-
};
|
|
520
|
-
};
|
|
521
|
-
_usesClientRouter: boolean;
|
|
522
|
-
baseServer: string;
|
|
523
|
-
baseAssets: string;
|
|
524
|
-
isClientSide: false;
|
|
525
|
-
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
526
|
-
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
527
|
-
});
|
|
528
|
-
_pageFilesAll: PageFile[];
|
|
529
|
-
_baseServer: string;
|
|
530
|
-
_baseAssets: string;
|
|
531
|
-
_pageContextInit: import("../runtime/renderPage.js").PageContextInit;
|
|
532
|
-
_urlRewrite: null;
|
|
533
|
-
_urlHandler: ((url: string) => string) | null;
|
|
534
|
-
isClientSideNavigation: boolean;
|
|
535
|
-
} & {
|
|
536
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
537
|
-
_source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
|
|
538
|
-
_sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
|
|
539
|
-
_from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
|
|
540
|
-
} & {
|
|
541
|
-
urlParsed: import("../runtime/utils.js").UrlPublic;
|
|
542
|
-
urlPathname: string;
|
|
543
|
-
url: string;
|
|
544
|
-
} & {
|
|
545
|
-
headers: Record<string, string> | null;
|
|
546
|
-
} & {
|
|
547
|
-
_urlHandler: null;
|
|
548
|
-
_httpRequestId: null;
|
|
549
|
-
_urlRewrite: null;
|
|
550
|
-
_noExtraDir: boolean | null;
|
|
551
|
-
_prerenderContext: PrerenderContext;
|
|
552
|
-
_providedByHook: ProvidedByHook;
|
|
553
|
-
_urlOriginalModifiedByHook: ProvidedByHookTransformer;
|
|
554
|
-
is404: boolean;
|
|
555
|
-
} & {
|
|
556
|
-
pageId: string;
|
|
557
|
-
_debugRouteMatches: never[];
|
|
558
|
-
routeParams: {};
|
|
559
|
-
})) & import("../../shared/getPageFiles.js").VikeConfigPublicPageLazy) & {
|
|
313
|
+
})) & import("../../shared/getPageFiles.js").VikeConfigPublicPageLazy & {
|
|
560
314
|
Page: unknown;
|
|
561
315
|
_isHtmlOnly: boolean;
|
|
562
316
|
_passToClient: string[];
|
|
563
317
|
_pageFilePathsLoaded: string[];
|
|
564
318
|
} & {
|
|
565
319
|
__getPageAssets: () => Promise<import("../runtime/renderPage/getPageAssets.js").PageAsset[]>;
|
|
566
|
-
})
|
|
320
|
+
}) & {
|
|
567
321
|
_usesClientRouter: boolean;
|
|
568
322
|
}>;
|
|
@@ -18,18 +18,17 @@ 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 { getVikeConfigInternal } from '../vite/shared/resolveVikeConfigInternal.js';
|
|
25
|
-
import {
|
|
25
|
+
import { execHookWithoutPageContext, isUserHookError } from '../../shared/hooks/execHook.js';
|
|
26
26
|
import { setWasPrerenderRun } from './context.js';
|
|
27
27
|
import { resolvePrerenderConfigGlobal, resolvePrerenderConfigLocal } from './resolvePrerenderConfig.js';
|
|
28
28
|
import { getOutDirs } from '../vite/shared/getOutDirs.js';
|
|
29
29
|
import fs from 'node:fs';
|
|
30
30
|
import { getProxyForPublicUsage } from '../../shared/getProxyForPublicUsage.js';
|
|
31
31
|
import { getStaticRedirectsForPrerender } from '../runtime/renderPage/resolveRedirects.js';
|
|
32
|
-
import { augmentType } from '../runtime/utils.js';
|
|
33
32
|
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
34
33
|
async function runPrerender(options = {}, trigger) {
|
|
35
34
|
setWasPrerenderRun(trigger);
|
|
@@ -216,7 +215,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
|
|
|
216
215
|
if (doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
217
216
|
return;
|
|
218
217
|
const { hookName, hookFilePath } = hook;
|
|
219
|
-
const prerenderResult = await
|
|
218
|
+
const prerenderResult = await execHookWithoutPageContext(() => hook.hookFn(), hook);
|
|
220
219
|
const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
|
|
221
220
|
// Handle result
|
|
222
221
|
await Promise.all(result.map(async ({ url, pageContext }) => {
|
|
@@ -323,7 +322,7 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
|
|
|
323
322
|
routeParams: {},
|
|
324
323
|
});
|
|
325
324
|
}
|
|
326
|
-
|
|
325
|
+
objectAssign(pageContext, await loadPageConfigsLazyServerSide(pageContext));
|
|
327
326
|
let usesClientRouter;
|
|
328
327
|
{
|
|
329
328
|
const { pageId } = pageContext;
|
|
@@ -444,7 +443,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
|
|
|
444
443
|
preservePropertyGetters(pageContext);
|
|
445
444
|
});
|
|
446
445
|
const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
|
|
447
|
-
let result = await
|
|
446
|
+
let result = await execHookWithoutPageContext(() => hookFn(prerenderContextPublic), onPrerenderStartHook);
|
|
448
447
|
// Before applying result
|
|
449
448
|
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
450
449
|
;
|
|
@@ -726,13 +725,9 @@ function getRedirectHtml(urlTarget) {
|
|
|
726
725
|
<meta charset="UTF-8">
|
|
727
726
|
<meta http-equiv="refresh" content="0;url=${urlTargetSafe}">
|
|
728
727
|
<title>Redirect ${urlTargetSafe}</title>
|
|
729
|
-
<style>body{opacity:0}</style>
|
|
730
|
-
<noscript>
|
|
731
|
-
<style>body{opacity:1}</style>
|
|
732
|
-
</noscript>
|
|
733
728
|
</head>
|
|
734
729
|
<body style="min-height: 100vh; margin: 0; font-family: sans-serif; display: flex; justify-content: center; align-items: center; transition: opacity 0.3s;">
|
|
735
|
-
<script>setTimeout(()=>{document.body.style.opacity=1},
|
|
730
|
+
<script>document.body.style.opacity=0; setTimeout(()=>{document.body.style.opacity=1},1000);</script>
|
|
736
731
|
<div>
|
|
737
732
|
<h1>Redirect <a href="${urlTargetSafe}"><code style="background-color: #eaeaea; padding: 3px 5px; border-radius: 4px;">${urlTargetSafe}</code></a></h1>
|
|
738
733
|
<p>If you aren't redirected, click the link above.</p>
|
|
@@ -8,7 +8,7 @@ export { createHttpResponseBaseIsMissing };
|
|
|
8
8
|
export type { HttpResponse };
|
|
9
9
|
import type { GetPageAssets } from './getPageAssets.js';
|
|
10
10
|
import type { HtmlRender } from '../html/renderHtml.js';
|
|
11
|
-
import type { RenderHook } from './
|
|
11
|
+
import type { RenderHook } from './executeOnRenderHtmlHook.js';
|
|
12
12
|
import type { RedirectStatusCode, AbortStatusCode, UrlRedirect } from '../../../shared/route/abort.js';
|
|
13
13
|
import { HttpResponseBody } from './getHttpResponseBody.js';
|
|
14
14
|
import { type EarlyHint } from './getEarlyHints.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { execHookServer };
|
|
2
|
-
export type {
|
|
2
|
+
export type { PageContextExecuteHookServer };
|
|
3
3
|
import { type PageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
|
|
4
4
|
import type { VikeConfigPublicPageLazy } from '../../../shared/getPageFiles.js';
|
|
5
5
|
import type { HookName } from '../../../types/Config.js';
|
|
6
|
-
type
|
|
7
|
-
declare function execHookServer(hookName: HookName, pageContext:
|
|
6
|
+
type PageContextExecuteHookServer = VikeConfigPublicPageLazy & PageContextForPublicUsageServer;
|
|
7
|
+
declare function execHookServer(hookName: HookName, pageContext: PageContextExecuteHookServer): Promise<(import("../../../shared/hooks/getHook.js").HookLoc & {
|
|
8
8
|
hookFn: (arg: import("../../../shared/preparePageContextForPublicUsage.js").PageContextPrepareMinimum | import("../../../shared/prepareGlobalContextForPublicUsage.js").GlobalContextPrepareMinimum) => unknown;
|
|
9
9
|
hookTimeout: import("../../../shared/hooks/getHook.js").HookTimeout;
|
|
10
10
|
} & {
|
|
@@ -2,5 +2,8 @@ export { execHookServer };
|
|
|
2
2
|
import { execHook } from '../../../shared/hooks/execHook.js';
|
|
3
3
|
import { preparePageContextForPublicUsageServer, } from './preparePageContextForPublicUsageServer.js';
|
|
4
4
|
async function execHookServer(hookName, pageContext) {
|
|
5
|
-
return await execHook(hookName, pageContext,
|
|
5
|
+
return await execHook(hookName, pageContext, (p) => {
|
|
6
|
+
preparePageContextForPublicUsageServer(p);
|
|
7
|
+
return p;
|
|
8
|
+
});
|
|
6
9
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { executeOnBeforeRenderAndDataHooks };
|
|
2
|
+
import { type PageContextExecuteHookServer } from './execHookServer.js';
|
|
3
|
+
declare function executeOnBeforeRenderAndDataHooks(pageContext: {
|
|
4
|
+
pageId: string;
|
|
5
|
+
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
6
|
+
} & PageContextExecuteHookServer): Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { executeOnBeforeRenderAndDataHooks };
|
|
2
2
|
import { assertOnBeforeRenderHookReturn } from '../../../shared/assertOnBeforeRenderHookReturn.js';
|
|
3
3
|
import { execHookServer } from './execHookServer.js';
|
|
4
|
-
async function
|
|
4
|
+
async function executeOnBeforeRenderAndDataHooks(pageContext) {
|
|
5
5
|
if (pageContext._pageContextAlreadyProvidedByOnPrerenderHook) {
|
|
6
6
|
return;
|
|
7
7
|
}
|
package/dist/esm/node/runtime/renderPage/{execHookOnRenderHtml.d.ts → executeOnRenderHtmlHook.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { executeOnRenderHtmlHook };
|
|
2
2
|
export type { RenderHook };
|
|
3
3
|
import { type HtmlRender } from '../html/renderHtml.js';
|
|
4
4
|
import { type Hook } from '../../../shared/hooks/getHook.js';
|
|
@@ -11,7 +11,7 @@ type RenderHook = Hook & {
|
|
|
11
11
|
hookName: HookName;
|
|
12
12
|
};
|
|
13
13
|
type HookName = 'onRenderHtml' | 'render';
|
|
14
|
-
declare function
|
|
14
|
+
declare function executeOnRenderHtmlHook(pageContext: PageContextForPublicUsageServer & PageContextSerialization & {
|
|
15
15
|
pageId: string;
|
|
16
16
|
_globalContext: GlobalContextServerInternal;
|
|
17
17
|
__getPageAssets: GetPageAssets;
|
package/dist/esm/node/runtime/renderPage/{execHookOnRenderHtml.js → executeOnRenderHtmlHook.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { executeOnRenderHtmlHook };
|
|
2
2
|
import { isDocumentHtml, renderDocumentHtml, dangerouslySkipEscape, } from '../html/renderHtml.js';
|
|
3
3
|
import { getHookFromPageContext } from '../../../shared/hooks/getHook.js';
|
|
4
4
|
import { assert, assertUsage, assertWarning, isObject, objectAssign, isPromise, isCallable } from '../utils.js';
|
|
@@ -8,11 +8,11 @@ import { preparePageContextForPublicUsageServer, } from './preparePageContextFor
|
|
|
8
8
|
import { assertHookReturnedObject } from '../../../shared/assertHookReturnedObject.js';
|
|
9
9
|
import { logRuntimeError } from '../loggerRuntime.js';
|
|
10
10
|
import pc from '@brillout/picocolors';
|
|
11
|
-
import {
|
|
12
|
-
async function
|
|
11
|
+
import { execHookSingleWithReturn } from '../../../shared/hooks/execHook.js';
|
|
12
|
+
async function executeOnRenderHtmlHook(pageContext) {
|
|
13
13
|
const hook = getRenderHook(pageContext);
|
|
14
14
|
objectAssign(pageContext, { _renderHook: hook });
|
|
15
|
-
const { hookReturn } = await
|
|
15
|
+
const { hookReturn } = await execHookSingleWithReturn(hook, pageContext, preparePageContextForPublicUsageServer);
|
|
16
16
|
const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturn, hook);
|
|
17
17
|
Object.assign(pageContext, pageContextProvidedByRenderHook);
|
|
18
18
|
objectAssign(pageContext, { _pageContextPromise: pageContextPromise });
|
|
@@ -3,7 +3,7 @@ export { getHttpResponseBodyStreamHandlers };
|
|
|
3
3
|
export type { HttpResponseBody };
|
|
4
4
|
import { StreamPipeNode, StreamPipeWeb, StreamReadableNode, StreamReadableWeb, StreamWritableNode, StreamWritableWeb } from '../html/stream.js';
|
|
5
5
|
import { type HtmlRender } from '../html/renderHtml.js';
|
|
6
|
-
import type { RenderHook } from './
|
|
6
|
+
import type { RenderHook } from './executeOnRenderHtmlHook.js';
|
|
7
7
|
type HttpResponseBody = {
|
|
8
8
|
body: string;
|
|
9
9
|
pipe: (writable: StreamWritableWeb | StreamWritableNode) => void;
|
|
@@ -1,27 +1,18 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { loadPageConfigsLazyServerSide };
|
|
2
|
+
export type { PageFiles };
|
|
2
3
|
export type { PageContext_loadPageConfigsLazyServerSide };
|
|
3
|
-
export type { PageConfigsLazy };
|
|
4
4
|
import { PromiseType } from '../utils.js';
|
|
5
5
|
import { PageContextGetPageAssets, type PageAsset } from './getPageAssets.js';
|
|
6
6
|
import { type PageContextDebugRouteMatches } from './debugPageFiles.js';
|
|
7
7
|
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
8
|
-
import { type PageContextExecHookServer } from './execHookServer.js';
|
|
9
|
-
type PageContextExecuteHook = Omit<PageContextExecHookServer, keyof Awaited<ReturnType<typeof loadPageConfigsLazyServerSide>>>;
|
|
10
8
|
type PageContext_loadPageConfigsLazyServerSide = PageContextGetPageAssets & PageContextDebugRouteMatches & {
|
|
11
|
-
pageId: string;
|
|
12
9
|
urlOriginal: string;
|
|
13
10
|
_globalContext: GlobalContextServerInternal;
|
|
14
11
|
};
|
|
15
|
-
type
|
|
16
|
-
declare function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
_passToClient: string[];
|
|
20
|
-
_pageFilePathsLoaded: string[];
|
|
21
|
-
} & {
|
|
22
|
-
__getPageAssets: () => Promise<PageAsset[]>;
|
|
23
|
-
}>;
|
|
24
|
-
declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPageConfigsLazyServerSide): Promise<import("../../../shared/getPageFiles.js").VikeConfigPublicPageLazy & {
|
|
12
|
+
type PageFiles = PromiseType<ReturnType<typeof loadPageConfigsLazyServerSide>>;
|
|
13
|
+
declare function loadPageConfigsLazyServerSide(pageContext: {
|
|
14
|
+
pageId: string;
|
|
15
|
+
} & PageContext_loadPageConfigsLazyServerSide): Promise<import("../../../shared/getPageFiles.js").VikeConfigPublicPageLazy & {
|
|
25
16
|
Page: unknown;
|
|
26
17
|
_isHtmlOnly: boolean;
|
|
27
18
|
_passToClient: string[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { loadPageConfigsLazyServerSide };
|
|
2
2
|
import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
|
|
3
3
|
import { resolveVikeConfigPublicPageLazy } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
|
|
4
4
|
import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
|
|
@@ -8,13 +8,6 @@ import { debugPageFiles } from './debugPageFiles.js';
|
|
|
8
8
|
import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
|
|
9
9
|
import { analyzePage } from './analyzePage.js';
|
|
10
10
|
import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
|
|
11
|
-
import { execHookServer } from './execHookServer.js';
|
|
12
|
-
async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
|
|
13
|
-
const pageContextAddendum = await loadPageConfigsLazyServerSide(pageContext);
|
|
14
|
-
objectAssign(pageContext, pageContextAddendum);
|
|
15
|
-
await execHookServer('onCreatePageContext', pageContext);
|
|
16
|
-
return pageContext;
|
|
17
|
-
}
|
|
18
11
|
async function loadPageConfigsLazyServerSide(pageContext) {
|
|
19
12
|
const pageConfig = findPageConfig(pageContext._globalContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig ?
|
|
20
13
|
const globalContext = pageContext._globalContext;
|
|
@@ -91,16 +84,18 @@ async function loadPageConfigsLazyServerSide(pageContext) {
|
|
|
91
84
|
return pageAssetsOldFormat;
|
|
92
85
|
},
|
|
93
86
|
});
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
87
|
+
{
|
|
88
|
+
debugPageFiles({
|
|
89
|
+
pageContext,
|
|
90
|
+
isHtmlOnly,
|
|
91
|
+
isClientRouting,
|
|
92
|
+
pageFilesLoaded,
|
|
93
|
+
pageFilesClientSide,
|
|
94
|
+
pageFilesServerSide,
|
|
95
|
+
clientEntries,
|
|
96
|
+
clientDependencies,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
104
99
|
return pageContextAddendum;
|
|
105
100
|
}
|
|
106
101
|
async function loadPageUserFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
|
|
@@ -3,7 +3,7 @@ export { prerenderPage };
|
|
|
3
3
|
export type { PageContextAfterRender };
|
|
4
4
|
import { type PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
|
|
5
5
|
import { HttpResponse } from './createHttpResponse.js';
|
|
6
|
-
import { PageContext_loadPageConfigsLazyServerSide, type
|
|
6
|
+
import { PageContext_loadPageConfigsLazyServerSide, type PageFiles } from './loadPageConfigsLazyServerSide.js';
|
|
7
7
|
import type { PageContextCreated } from './createPageContextServerSide.js';
|
|
8
8
|
type PageContextAfterRender = {
|
|
9
9
|
httpResponse: HttpResponse;
|
|
@@ -17,7 +17,7 @@ declare function renderPageAlreadyRouted<PageContext extends {
|
|
|
17
17
|
errorWhileRendering: null | Error;
|
|
18
18
|
_httpRequestId: number;
|
|
19
19
|
} & PageContextCreated & PageContextUrlInternal & PageContext_loadPageConfigsLazyServerSide>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
|
|
20
|
-
declare function prerenderPage(pageContext: PageContextCreated &
|
|
20
|
+
declare function prerenderPage(pageContext: PageContextCreated & PageFiles & {
|
|
21
21
|
routeParams: Record<string, string>;
|
|
22
22
|
pageId: string;
|
|
23
23
|
_urlRewrite: null;
|
|
@@ -2,16 +2,16 @@ export { renderPageAlreadyRouted };
|
|
|
2
2
|
export { prerenderPage };
|
|
3
3
|
import { getErrorPageId } from '../../../shared/error-page.js';
|
|
4
4
|
import { getHtmlString } from '../html/renderHtml.js';
|
|
5
|
-
import { assert, assertUsage,
|
|
5
|
+
import { assert, assertUsage, hasProp, objectAssign } from '../utils.js';
|
|
6
6
|
import { getPageContextClientSerialized } from '../html/serializeContext.js';
|
|
7
7
|
import { createHttpResponsePage, createHttpResponsePageContextJson } from './createHttpResponse.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { loadPageConfigsLazyServerSide, } from './loadPageConfigsLazyServerSide.js';
|
|
9
|
+
import { executeOnRenderHtmlHook } from './executeOnRenderHtmlHook.js';
|
|
10
|
+
import { executeOnBeforeRenderAndDataHooks } from './executeOnBeforeRenderAndDataHooks.js';
|
|
11
11
|
import { logRuntimeError } from '../loggerRuntime.js';
|
|
12
12
|
import { isNewError } from './isNewError.js';
|
|
13
13
|
import { preparePageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
|
|
14
|
-
import {
|
|
14
|
+
import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
|
|
15
15
|
import pc from '@brillout/picocolors';
|
|
16
16
|
import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
|
|
17
17
|
async function renderPageAlreadyRouted(pageContext) {
|
|
@@ -23,16 +23,16 @@ async function renderPageAlreadyRouted(pageContext) {
|
|
|
23
23
|
assert(isError ===
|
|
24
24
|
(pageContext.pageId ===
|
|
25
25
|
getErrorPageId(pageContext._globalContext._pageFilesAll, pageContext._globalContext._pageConfigs)));
|
|
26
|
-
|
|
26
|
+
objectAssign(pageContext, await loadPageConfigsLazyServerSide(pageContext));
|
|
27
27
|
if (!isError) {
|
|
28
|
-
await
|
|
28
|
+
await executeGuardHook(pageContext, (pageContext) => preparePageContextForPublicUsageServer(pageContext));
|
|
29
29
|
}
|
|
30
30
|
if (!isError) {
|
|
31
|
-
await
|
|
31
|
+
await executeOnBeforeRenderAndDataHooks(pageContext);
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
34
|
try {
|
|
35
|
-
await
|
|
35
|
+
await executeOnBeforeRenderAndDataHooks(pageContext);
|
|
36
36
|
}
|
|
37
37
|
catch (err) {
|
|
38
38
|
if (isNewError(err, pageContext.errorWhileRendering)) {
|
|
@@ -49,7 +49,7 @@ async function renderPageAlreadyRouted(pageContext) {
|
|
|
49
49
|
objectAssign(pageContext, { httpResponse });
|
|
50
50
|
return pageContext;
|
|
51
51
|
}
|
|
52
|
-
const renderHookResult = await
|
|
52
|
+
const renderHookResult = await executeOnRenderHtmlHook(pageContext);
|
|
53
53
|
const { htmlRender, renderHook } = renderHookResult;
|
|
54
54
|
const httpResponse = await createHttpResponsePage(htmlRender, renderHook, pageContext);
|
|
55
55
|
objectAssign(pageContext, { httpResponse });
|
|
@@ -62,10 +62,10 @@ async function prerenderPage(pageContext) {
|
|
|
62
62
|
});
|
|
63
63
|
/* Should we execute the guard() hook upon pre-rendering? Is there a use case for this?
|
|
64
64
|
* - It isn't trivial to implement, as it requires to duplicate / factor out the isAbortError() handling
|
|
65
|
-
await
|
|
65
|
+
await executeGuardHook(pageContext, (pageContext) => preparePageContextForPublicUsageServer(pageContext))
|
|
66
66
|
*/
|
|
67
|
-
await
|
|
68
|
-
const { htmlRender, renderHook } = await
|
|
67
|
+
await executeOnBeforeRenderAndDataHooks(pageContext);
|
|
68
|
+
const { htmlRender, renderHook } = await executeOnRenderHtmlHook(pageContext);
|
|
69
69
|
assertUsage(htmlRender !== null, `Cannot pre-render ${pc.cyan(pageContext.urlOriginal)} because the ${renderHook.hookName}() hook defined by ${renderHook.hookFilePath} didn't return an HTML string.`);
|
|
70
70
|
assert(pageContext.isClientSideNavigation === false);
|
|
71
71
|
const documentHtml = await getHtmlString(htmlRender);
|