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.
Files changed (56) hide show
  1. package/dist/cjs/node/prerender/runPrerender.js +4 -9
  2. package/dist/cjs/node/runtime/renderPage/execHookServer.js +4 -1
  3. package/dist/cjs/node/runtime/renderPage/{execHookDataAndOnBeforeRender.js → executeOnBeforeRenderAndDataHooks.js} +2 -2
  4. package/dist/cjs/node/runtime/renderPage/{execHookOnRenderHtml.js → executeOnRenderHtmlHook.js} +3 -3
  5. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +13 -18
  6. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -11
  7. package/dist/cjs/node/runtime/renderPage.js +48 -55
  8. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +2 -0
  9. package/dist/cjs/shared/createPageContextShared.js +3 -1
  10. package/dist/cjs/shared/hooks/execHook.js +54 -31
  11. package/dist/cjs/shared/route/{execHookGuard.js → executeGuardHook.js} +3 -3
  12. package/dist/cjs/shared/route/{execHookOnBeforeRoute.js → executeOnBeforeRouteHook.js} +4 -4
  13. package/dist/cjs/shared/route/index.js +2 -3
  14. package/dist/cjs/shared/route/resolveRouteFunction.js +1 -1
  15. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  16. package/dist/cjs/utils/styleFileRE.js +0 -1
  17. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +2 -2
  18. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +9 -9
  19. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +62 -97
  20. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +4 -11
  21. package/dist/esm/client/runtime-server-routing/entry.js +2 -2
  22. package/dist/esm/client/shared/{execHookOnRenderClient.d.ts → executeOnRenderClientHook.d.ts} +2 -2
  23. package/dist/esm/client/shared/{execHookOnRenderClient.js → executeOnRenderClientHook.js} +4 -4
  24. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +4 -12
  25. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
  26. package/dist/esm/node/prerender/runPrerender.d.ts +4 -250
  27. package/dist/esm/node/prerender/runPrerender.js +6 -11
  28. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
  29. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +3 -3
  30. package/dist/esm/node/runtime/renderPage/execHookServer.js +4 -1
  31. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +6 -0
  32. package/dist/esm/node/runtime/renderPage/{execHookDataAndOnBeforeRender.js → executeOnBeforeRenderAndDataHooks.js} +2 -2
  33. package/dist/esm/node/runtime/renderPage/{execHookOnRenderHtml.d.ts → executeOnRenderHtmlHook.d.ts} +2 -2
  34. package/dist/esm/node/runtime/renderPage/{execHookOnRenderHtml.js → executeOnRenderHtmlHook.js} +4 -4
  35. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +1 -1
  36. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +6 -15
  37. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +13 -18
  38. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +2 -2
  39. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +13 -13
  40. package/dist/esm/node/runtime/renderPage.js +50 -57
  41. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +2 -0
  42. package/dist/esm/shared/createPageContextShared.js +3 -1
  43. package/dist/esm/shared/hooks/execHook.d.ts +28 -14
  44. package/dist/esm/shared/hooks/execHook.js +54 -31
  45. package/dist/esm/shared/route/executeGuardHook.d.ts +8 -0
  46. package/dist/esm/shared/route/{execHookGuard.js → executeGuardHook.js} +4 -4
  47. package/dist/esm/shared/route/{execHookOnBeforeRoute.d.ts → executeOnBeforeRouteHook.d.ts} +2 -2
  48. package/dist/esm/shared/route/{execHookOnBeforeRoute.js → executeOnBeforeRouteHook.js} +5 -5
  49. package/dist/esm/shared/route/index.js +2 -3
  50. package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
  51. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  52. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  53. package/dist/esm/utils/styleFileRE.js +0 -1
  54. package/package.json +1 -1
  55. package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.d.ts +0 -6
  56. package/dist/esm/shared/route/execHookGuard.d.ts +0 -8
@@ -13,7 +13,7 @@ import { getPageContextRequestUrl } from '../../shared/getPageContextRequestUrl.
13
13
  import { getPageConfig } from '../../shared/page-configs/helpers.js';
14
14
  import { getConfigValueRuntime } from '../../shared/page-configs/getConfigValueRuntime.js';
15
15
  import { assertOnBeforeRenderHookReturn } from '../../shared/assertOnBeforeRenderHookReturn.js';
16
- import { execHookGuard } from '../../shared/route/execHookGuard.js';
16
+ import { executeGuardHook } from '../../shared/route/executeGuardHook.js';
17
17
  import { AbortRender, isAbortPageContext } from '../../shared/route/abort.js';
18
18
  import { pageContextInitIsPassedToClient } from '../../shared/misc/pageContextInitIsPassedToClient.js';
19
19
  import { isServerSideError } from '../../shared/misc/isServerSideError.js';
@@ -34,7 +34,7 @@ function getPageContextFromHooks_serialized() {
34
34
  async function getPageContextFromHooks_isHydration(pageContext) {
35
35
  for (const hookName of ['data', 'onBeforeRender']) {
36
36
  if (hookClientOnlyExists(hookName, pageContext)) {
37
- await execHookDataLike(hookName, pageContext);
37
+ await executeDataLikeHook(hookName, pageContext);
38
38
  }
39
39
  }
40
40
  return pageContext;
@@ -78,7 +78,7 @@ async function getPageContextFromClientHooks(pageContext, isErrorPage) {
78
78
  !pageContext._hasPageContextFromServer) {
79
79
  // Should we really call the guard() hook on the client-side? Shouldn't we make the guard() hook a server-side
80
80
  // only hook? Or maybe make its env configurable like data() and onBeforeRender()?
81
- await execHookGuard(pageContext, (pageContext) => preparePageContextForPublicUsageClient(pageContext));
81
+ await executeGuardHook(pageContext, (pageContext) => preparePageContextForPublicUsageClient(pageContext));
82
82
  }
83
83
  }
84
84
  else {
@@ -86,7 +86,7 @@ async function getPageContextFromClientHooks(pageContext, isErrorPage) {
86
86
  if (hookName === 'data')
87
87
  dataHookExec = true;
88
88
  // This won't do anything if no hook has been defined or if the hook's env.client is false.
89
- await execHookDataLike(hookName, pageContext);
89
+ await executeDataLikeHook(hookName, pageContext);
90
90
  }
91
91
  }
92
92
  }
@@ -101,17 +101,17 @@ async function getPageContextFromClientHooks(pageContext, isErrorPage) {
101
101
  async function execHookClient(hookName, pageContext) {
102
102
  return await execHook(hookName, pageContext, (p) => preparePageContextForPublicUsageClient(p));
103
103
  }
104
- async function execHookDataLike(hookName, pageContext) {
104
+ async function executeDataLikeHook(hookName, pageContext) {
105
105
  let pageContextFromHook;
106
106
  if (hookName === 'data') {
107
- pageContextFromHook = await execHookData(pageContext);
107
+ pageContextFromHook = await executeDataHook(pageContext);
108
108
  }
109
109
  else {
110
- pageContextFromHook = await execHookOnBeforeRender(pageContext);
110
+ pageContextFromHook = await executeOnBeforeRenderHook(pageContext);
111
111
  }
112
112
  Object.assign(pageContext, pageContextFromHook);
113
113
  }
114
- async function execHookData(pageContext) {
114
+ async function executeDataHook(pageContext) {
115
115
  const res = await execHookClient('data', pageContext);
116
116
  const hook = res[0]; // TO-DO/soon: support cumulative
117
117
  if (!hook)
@@ -120,7 +120,7 @@ async function execHookData(pageContext) {
120
120
  const pageContextAddendum = { data: hookReturn };
121
121
  return pageContextAddendum;
122
122
  }
123
- async function execHookOnBeforeRender(pageContext) {
123
+ async function executeOnBeforeRenderHook(pageContext) {
124
124
  const res = await execHookClient('onBeforeRender', pageContext);
125
125
  const hook = res[0]; // TO-DO/soon: support cumulative
126
126
  if (!hook)
@@ -8,8 +8,8 @@ import { getPageContextFromClientHooks, getPageContextFromServerHooks, getPageCo
8
8
  import { createPageContextClientSide } from './createPageContextClientSide.js';
9
9
  import { addLinkPrefetchHandlers, addLinkPrefetchHandlers_unwatch, addLinkPrefetchHandlers_watch, getPageContextPrefetched, populatePageContextPrefetchCache, } from './prefetch.js';
10
10
  import { assertInfo, assertWarning, isReact } from './utils.js';
11
- import { execHookOnRenderClient } from '../shared/execHookOnRenderClient.js';
12
- import { isErrorFetchingStaticAssets, loadPageConfigsLazyClientSide, } from '../shared/loadPageConfigsLazyClientSide.js';
11
+ import { executeOnRenderClientHook } from '../shared/executeOnRenderClientHook.js';
12
+ import { isErrorFetchingStaticAssets, loadPageConfigsLazyClientSide } from '../shared/loadPageConfigsLazyClientSide.js';
13
13
  import { pushHistoryState } from './history.js';
14
14
  import { assertNoInfiniteAbortLoop, getPageContextFromAllRewrites, isAbortError, logAbortErrorHandled, } from '../../shared/route/abort.js';
15
15
  import { route } from '../../shared/route/index.js';
@@ -20,7 +20,7 @@ import { getErrorPageId } from '../../shared/error-page.js';
20
20
  import { setPageContextCurrent } from './getPageContextCurrent.js';
21
21
  import { getRouteStringParameterList } from '../../shared/route/resolveRouteString.js';
22
22
  import { getCurrentUrl } from '../shared/getCurrentUrl.js';
23
- import { execHookDirect, execHook } from '../../shared/hooks/execHook.js';
23
+ import { execHooksErrorHandling, execHookErrorHandling, } from '../../shared/hooks/execHook.js';
24
24
  import { preparePageContextForPublicUsageClient, } from './preparePageContextForPublicUsageClient.js';
25
25
  import { getHookFromPageContextNew } from '../../shared/hooks/getHook.js';
26
26
  import { preparePageContextForPublicUsageClientMinimal } from '../shared/preparePageContextForPublicUsageClientShared.js';
@@ -60,7 +60,7 @@ async function renderPageClientSide(renderArgs) {
60
60
  return;
61
61
  async function renderPageNominal() {
62
62
  const onError = async (err) => {
63
- await renderPageOnError({ err });
63
+ await renderErrorPage({ err });
64
64
  };
65
65
  const pageContext = await getPageContextBegin(false, pageContextBeginArgs);
66
66
  if (isRenderOutdated())
@@ -73,11 +73,9 @@ async function renderPageClientSide(renderArgs) {
73
73
  if (!globalObject.isTransitioning) {
74
74
  globalObject.isTransitioning = true;
75
75
  const hooks = getHookFromPageContextNew('onPageTransitionStart', previousPageContext);
76
- try {
77
- await execHookDirect(hooks, pageContext, preparePageContextForPublicUsageClientMinimal);
78
- }
79
- catch (err) {
80
- await onError(err);
76
+ const res = await execHooksErrorHandling(hooks, pageContext, preparePageContextForPublicUsageClientMinimal);
77
+ if ('err' in res) {
78
+ await onError(res.err);
81
79
  return;
82
80
  }
83
81
  if (isRenderOutdated())
@@ -136,17 +134,21 @@ async function renderPageClientSide(renderArgs) {
136
134
  assert(!('urlOriginal' in pageContextFromRoute));
137
135
  objectAssign(pageContext, pageContextFromRoute);
138
136
  }
139
- const res = await loadPageConfigsLazyClientSideAndExecHook(pageContext, isFirstRender, isRenderOutdated);
140
- /* Already called inside loadPageConfigsLazyClientSideAndExecHook()
141
- if (isRenderOutdated()) return
142
- */
143
- if (res.skip)
144
- return;
145
- if ('err' in res) {
146
- await onError(res.err);
147
- return;
137
+ try {
138
+ objectAssign(pageContext, await loadPageConfigsLazyClientSide(pageContext.pageId, pageContext._pageFilesAll, pageContext._globalContext._pageConfigs, pageContext._globalContext._pageConfigGlobal));
148
139
  }
149
- augmentType(pageContext, res.pageContext);
140
+ catch (err) {
141
+ if (handleErrorFetchingStaticAssets(err, pageContext, isFirstRender)) {
142
+ return;
143
+ }
144
+ else {
145
+ // A user file has a syntax error
146
+ await onError(err);
147
+ return;
148
+ }
149
+ }
150
+ if (isRenderOutdated())
151
+ return;
150
152
  setPageContextCurrent(pageContext);
151
153
  // Set global hydrationCanBeAborted
152
154
  if (pageContext.exports.hydrationCanBeAborted) {
@@ -216,11 +218,7 @@ async function renderPageClientSide(renderArgs) {
216
218
  await renderPageView(pageContext);
217
219
  }
218
220
  }
219
- // When the normal page threw an error
220
- // - Can be a URL rewrite upon `throw render('/some-url')`
221
- // - Can be rendering the error page
222
- // - Can be rendering Vike's generic error page (if no error page is defined, or if the error page throws an error)
223
- async function renderPageOnError(args) {
221
+ async function renderErrorPage(args) {
224
222
  const onError = (err) => {
225
223
  if (!isSameErrorMessage(err, args.err)) {
226
224
  /* When we can't render the error page, we prefer showing a blank page over letting the server-side try because otherwise:
@@ -249,6 +247,8 @@ async function renderPageClientSide(renderArgs) {
249
247
  if (isRenderOutdated())
250
248
  return;
251
249
  objectAssign(pageContext, { routeParams: {} });
250
+ if (args.is404)
251
+ objectAssign(pageContext, { is404: true });
252
252
  if (args.pageContextError)
253
253
  objectAssign(pageContext, args.pageContextError);
254
254
  if ('err' in args) {
@@ -313,17 +313,21 @@ async function renderPageClientSide(renderArgs) {
313
313
  redirectHard(urlOriginal);
314
314
  return;
315
315
  }
316
- const res = await loadPageConfigsLazyClientSideAndExecHook(pageContext, isFirstRender, isRenderOutdated);
317
- /* Already called inside loadPageConfigsLazyClientSideAndExecHook()
318
- if (isRenderOutdated()) return
319
- */
320
- if (res.skip)
321
- return;
322
- if ('err' in res) {
323
- onError(res.err);
324
- return;
316
+ try {
317
+ objectAssign(pageContext, await loadPageConfigsLazyClientSide(pageContext.pageId, pageContext._pageFilesAll, pageContext._globalContext._pageConfigs, pageContext._globalContext._pageConfigGlobal));
318
+ }
319
+ catch (err) {
320
+ if (handleErrorFetchingStaticAssets(err, pageContext, isFirstRender)) {
321
+ return;
322
+ }
323
+ else {
324
+ // A user file has a syntax error
325
+ onError(err);
326
+ return;
327
+ }
325
328
  }
326
- augmentType(pageContext, res.pageContext);
329
+ if (isRenderOutdated())
330
+ return;
327
331
  setPageContextCurrent(pageContext);
328
332
  let pageContextFromServerHooks;
329
333
  try {
@@ -357,7 +361,7 @@ async function renderPageClientSide(renderArgs) {
357
361
  async function renderPageView(pageContext, isErrorPage) {
358
362
  const onError = async (err) => {
359
363
  if (!isErrorPage) {
360
- await renderPageOnError({ err });
364
+ await renderErrorPage({ err });
361
365
  }
362
366
  else {
363
367
  if (!isSameErrorMessage(err, isErrorPage.err)) {
@@ -379,7 +383,7 @@ async function renderPageClientSide(renderArgs) {
379
383
  const onRenderClientPromise = (async () => {
380
384
  let onRenderClientError;
381
385
  try {
382
- await execHookOnRenderClient(pageContext, preparePageContextForPublicUsageClient);
386
+ await executeOnRenderClientHook(pageContext, preparePageContextForPublicUsageClient);
383
387
  }
384
388
  catch (err) {
385
389
  onRenderClientError = err;
@@ -401,11 +405,9 @@ async function renderPageClientSide(renderArgs) {
401
405
  */
402
406
  // onHydrationEnd()
403
407
  if (isFirstRender && !onRenderClientError) {
404
- try {
405
- await execHook('onHydrationEnd', pageContext, preparePageContextForPublicUsageClient);
406
- }
407
- catch (err) {
408
- await onError(err);
408
+ const res = await execHookErrorHandling('onHydrationEnd', pageContext, preparePageContextForPublicUsageClient);
409
+ if ('err' in res) {
410
+ await onError(res.err);
409
411
  if (!isErrorPage)
410
412
  return;
411
413
  }
@@ -420,11 +422,9 @@ async function renderPageClientSide(renderArgs) {
420
422
  globalObject.isTransitioning = undefined;
421
423
  assert(previousPageContext);
422
424
  const hooks = getHookFromPageContextNew('onPageTransitionEnd', previousPageContext);
423
- try {
424
- await execHookDirect(hooks, pageContext, preparePageContextForPublicUsageClient);
425
- }
426
- catch (err) {
427
- await onError(err);
425
+ const res = await execHooksErrorHandling(hooks, pageContext, preparePageContextForPublicUsageClient);
426
+ if ('err' in res) {
427
+ await onError(res.err);
428
428
  if (!isErrorPage)
429
429
  return;
430
430
  }
@@ -491,6 +491,22 @@ function changeUrl(url, overwriteLastHistoryEntry) {
491
491
  return;
492
492
  pushHistoryState(url, overwriteLastHistoryEntry);
493
493
  }
494
+ function handleErrorFetchingStaticAssets(err, pageContext, isFirstRender) {
495
+ if (!isErrorFetchingStaticAssets(err)) {
496
+ return false;
497
+ }
498
+ if (isFirstRender) {
499
+ disableClientRouting(err, false);
500
+ // This may happen if the frontend was newly deployed during hydration.
501
+ // Ideally: re-try a couple of times by reloading the page (not entirely trivial to implement since `localStorage` is needed.)
502
+ throw err;
503
+ }
504
+ else {
505
+ disableClientRouting(err, true);
506
+ }
507
+ redirectHard(pageContext.urlOriginal);
508
+ return true;
509
+ }
494
510
  function disableClientRouting(err, log) {
495
511
  assert(isErrorFetchingStaticAssets(err));
496
512
  globalObject.clientRoutingIsDisabled = true;
@@ -580,54 +596,3 @@ function areKeysEqual(key1, key2) {
580
596
  function getPageContextClient() {
581
597
  return globalObject.renderedPageContext ?? null;
582
598
  }
583
- async function loadPageConfigsLazyClientSideAndExecHook(pageContext, isFirstRender, isRenderOutdated) {
584
- let hasErr = false;
585
- let err;
586
- let pageContextAddendum;
587
- try {
588
- pageContextAddendum = await loadPageConfigsLazyClientSide(pageContext.pageId, pageContext._pageFilesAll, pageContext._globalContext._pageConfigs, pageContext._globalContext._pageConfigGlobal);
589
- }
590
- catch (err_) {
591
- err = err_;
592
- hasErr = true;
593
- if (handleErrorFetchingStaticAssets(err, pageContext, isFirstRender)) {
594
- return { skip: true };
595
- }
596
- else {
597
- // Syntax error in user file
598
- }
599
- }
600
- if (isRenderOutdated())
601
- return { skip: true };
602
- if (hasErr)
603
- return { err };
604
- objectAssign(pageContext, pageContextAddendum);
605
- try {
606
- await execHook('onCreatePageContext', pageContext, preparePageContextForPublicUsageClient);
607
- }
608
- catch (err_) {
609
- err = err;
610
- hasErr = true;
611
- }
612
- if (isRenderOutdated())
613
- return { skip: true };
614
- if (hasErr)
615
- return { err };
616
- return { pageContext };
617
- }
618
- function handleErrorFetchingStaticAssets(err, pageContext, isFirstRender) {
619
- if (!isErrorFetchingStaticAssets(err)) {
620
- return false;
621
- }
622
- if (isFirstRender) {
623
- disableClientRouting(err, false);
624
- // This may happen if the frontend was newly deployed during hydration.
625
- // Ideally: re-try a couple of times by reloading the page (not entirely trivial to implement since `localStorage` is needed.)
626
- throw err;
627
- }
628
- else {
629
- disableClientRouting(err, true);
630
- }
631
- redirectHard(pageContext.urlOriginal);
632
- return true;
633
- }
@@ -1,12 +1,10 @@
1
1
  export { createPageContextClientSide };
2
2
  import { assertUsage, augmentType, objectAssign } from './utils.js';
3
3
  import { getPageContextSerializedInHtml } from '../shared/getJsonSerializedInHtml.js';
4
- import { loadPageConfigsLazyClientSide, } from '../shared/loadPageConfigsLazyClientSide.js';
4
+ import { loadPageConfigsLazyClientSide } from '../shared/loadPageConfigsLazyClientSide.js';
5
5
  import { getCurrentUrl } from '../shared/getCurrentUrl.js';
6
6
  import { createPageContextObject, createPageContextShared } from '../../shared/createPageContextShared.js';
7
7
  import { getGlobalContextClientInternal } from './globalContext.js';
8
- import { preparePageContextForPublicUsageClient, } from './preparePageContextForPublicUsageClient.js';
9
- import { execHook } from '../../shared/hooks/execHook.js';
10
8
  const urlFirst = getCurrentUrl({ withoutHash: true });
11
9
  async function createPageContextClientSide() {
12
10
  const globalContext = await getGlobalContextClientInternal();
@@ -22,9 +20,10 @@ async function createPageContextClientSide() {
22
20
  });
23
21
  objectAssign(pageContextCreated, getPageContextSerializedInHtml());
24
22
  // Sets pageContext.config to global configs
25
- augmentType(pageContextCreated, await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._vikeConfigPublicGlobal));
23
+ const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._vikeConfigPublicGlobal);
24
+ augmentType(pageContextCreated, pageContextAugmented);
26
25
  // Sets pageContext.config to local configs (overrides the pageContext.config set above)
27
- augmentType(pageContextCreated, await loadPageConfigsLazyClientSideAndExecHook(pageContextCreated));
26
+ objectAssign(pageContextCreated, await loadPageConfigsLazyClientSide(pageContextCreated.pageId, globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal));
28
27
  assertPristineUrl();
29
28
  return pageContextCreated;
30
29
  }
@@ -32,9 +31,3 @@ function assertPristineUrl() {
32
31
  const urlCurrent = getCurrentUrl({ withoutHash: true });
33
32
  assertUsage(urlFirst === urlCurrent, `The URL was manipulated before the hydration finished ('${urlFirst}' to '${urlCurrent}'). Ensure the hydration has finished before manipulating the URL. Consider using the onHydrationEnd() hook.`);
34
33
  }
35
- async function loadPageConfigsLazyClientSideAndExecHook(pageContext) {
36
- const pageContextAddendum = await loadPageConfigsLazyClientSide(pageContext.pageId, pageContext._pageFilesAll, pageContext._globalContext._pageConfigs, pageContext._globalContext._pageConfigGlobal);
37
- objectAssign(pageContext, pageContextAddendum);
38
- await execHook('onCreatePageContext', pageContext, preparePageContextForPublicUsageClient);
39
- return pageContext;
40
- }
@@ -1,7 +1,7 @@
1
1
  import { assertServerRouting } from '../../utils/assertRoutingType.js';
2
2
  assertServerRouting();
3
3
  import { createPageContextClientSide } from './createPageContextClientSide.js';
4
- import { execHookOnRenderClient } from '../shared/execHookOnRenderClient.js';
4
+ import { executeOnRenderClientHook } from '../shared/executeOnRenderClientHook.js';
5
5
  import { assertSingleInstance_onClientEntryServerRouting } from './utils.js';
6
6
  import { removeFoucBuster } from '../shared/removeFoucBuster.js';
7
7
  import { execHook } from '../../shared/hooks/execHook.js';
@@ -14,6 +14,6 @@ if (import.meta.env.DEV)
14
14
  hydrate();
15
15
  async function hydrate() {
16
16
  const pageContext = await createPageContextClientSide();
17
- await execHookOnRenderClient(pageContext, preparePageContextForPublicUsageClient);
17
+ await executeOnRenderClientHook(pageContext, preparePageContextForPublicUsageClient);
18
18
  await execHook('onHydrationEnd', pageContext, preparePageContextForPublicUsageClient);
19
19
  }
@@ -1,4 +1,4 @@
1
- export { execHookOnRenderClient };
1
+ export { executeOnRenderClientHook };
2
2
  export type { PageContextBeforeRenderClient };
3
3
  import type { PageFile, VikeConfigPublicPageLazy } from '../../shared/getPageFiles.js';
4
4
  import type { PageContextForPublicUsageClientShared } from './preparePageContextForPublicUsageClientShared.js';
@@ -10,4 +10,4 @@ type PageContextBeforeRenderClient = {
10
10
  pageId: string;
11
11
  _globalContext: GlobalContextClientInternalShared;
12
12
  } & VikeConfigPublicPageLazy & PageContextForPublicUsageClientShared;
13
- declare function execHookOnRenderClient<PageContext extends PageContextBeforeRenderClient>(pageContext: PageContext, prepareForPublicUsage: (pageConfig: PageContext) => PageContext): Promise<void>;
13
+ declare function executeOnRenderClientHook<PageContext extends PageContextBeforeRenderClient>(pageContext: PageContext, prepareForPublicUsage: (pageConfig: PageContext) => PageContext): Promise<void>;
@@ -1,8 +1,8 @@
1
- export { execHookOnRenderClient };
1
+ export { executeOnRenderClientHook };
2
2
  import { assert, assertUsage } from '../runtime-server-routing/utils.js';
3
3
  import { getHookFromPageContext } from '../../shared/hooks/getHook.js';
4
- import { execHookDirectSingle } from '../../shared/hooks/execHook.js';
5
- async function execHookOnRenderClient(pageContext, prepareForPublicUsage) {
4
+ import { execHookSingle } from '../../shared/hooks/execHook.js';
5
+ async function executeOnRenderClientHook(pageContext, prepareForPublicUsage) {
6
6
  let hook = null;
7
7
  {
8
8
  const renderHook = getHookFromPageContext(pageContext, 'render');
@@ -38,7 +38,7 @@ async function execHookOnRenderClient(pageContext, prepareForPublicUsage) {
38
38
  }
39
39
  }
40
40
  // We don't use a try-catch wrapper because rendering errors are usually handled by the UI framework. (E.g. React's Error Boundaries.)
41
- await execHookDirectSingle(hook, pageContext, prepareForPublicUsage);
41
+ await execHookSingle(hook, pageContext, prepareForPublicUsage);
42
42
  }
43
43
  function getUrlToShowToUser(pageContext) {
44
44
  let url;
@@ -1,17 +1,9 @@
1
1
  export { loadPageConfigsLazyClientSide };
2
- export type { PageContext_loadPageConfigsLazyClientSide };
3
2
  export { isErrorFetchingStaticAssets };
4
- import { type PageFile } from '../../shared/getPageFiles.js';
3
+ import { type PageFile, type VikeConfigPublicPageLazy } from '../../shared/getPageFiles.js';
5
4
  import type { PageConfigGlobalRuntime, PageConfigRuntime } from '../../types/PageConfig.js';
6
- type PageContext_loadPageConfigsLazyClientSide = {
7
- pageId: string;
8
- _pageFilesAll: PageFile[];
9
- _globalContext: {
10
- _pageConfigs: PageConfigRuntime[];
11
- _pageConfigGlobal: PageConfigGlobalRuntime;
12
- };
13
- };
14
- declare function loadPageConfigsLazyClientSide(pageId: string, pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[], pageConfigGlobal: PageConfigGlobalRuntime): Promise<import("../../shared/getPageFiles.js").VikeConfigPublicPageLazy & {
5
+ type PageContextUserFilesLoaded = VikeConfigPublicPageLazy & {
15
6
  _pageFilesLoaded: PageFile[];
16
- }>;
7
+ };
8
+ declare function loadPageConfigsLazyClientSide(pageId: string, pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[], pageConfigGlobal: PageConfigGlobalRuntime): Promise<PageContextUserFilesLoaded>;
17
9
  declare function isErrorFetchingStaticAssets(err: unknown): boolean;
@@ -5,7 +5,7 @@ import { resolveVikeConfigPublicPageLazy } from '../../shared/page-configs/resol
5
5
  import { findPageConfig } from '../../shared/page-configs/findPageConfig.js';
6
6
  import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
7
7
  import { objectAssign } from '../runtime-server-routing/utils.js';
8
- const errStamp = '_isAssetsError';
8
+ const stamp = '__whileFetchingAssets';
9
9
  async function loadPageConfigsLazyClientSide(pageId, pageFilesAll, pageConfigs, pageConfigGlobal) {
10
10
  const pageFilesClientSide = getPageFilesClientSide(pageFilesAll, pageId);
11
11
  const pageConfig = findPageConfig(pageConfigs, pageId);
@@ -23,10 +23,10 @@ async function loadPageConfigsLazyClientSide(pageId, pageFilesAll, pageConfigs,
23
23
  }
24
24
  catch (err) {
25
25
  if (isFetchError(err)) {
26
- Object.assign(err, { [errStamp]: true });
26
+ Object.assign(err, { [stamp]: true });
27
27
  }
28
28
  else {
29
- // Syntax error in user file
29
+ // A user file has a syntax error
30
30
  }
31
31
  throw err;
32
32
  }
@@ -40,7 +40,7 @@ function isErrorFetchingStaticAssets(err) {
40
40
  if (!err) {
41
41
  return false;
42
42
  }
43
- return err[errStamp] === true;
43
+ return err[stamp] === true;
44
44
  }
45
45
  // https://stackoverflow.com/questions/75928310/how-to-detect-that-import-some-url-failed-because-some-url-isnt-a-javasc
46
46
  function isFetchError(err) {