vike 0.4.197-commit-f4d8658 → 0.4.197-commit-7d64995

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.
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.197-commit-f4d8658';
5
+ exports.PROJECT_VERSION = '0.4.197-commit-7d64995';
@@ -19,13 +19,13 @@ type PageContextSerialized = {
19
19
  };
20
20
  declare function getPageContextFromHooks_serialized(): PageContextSerialized & {
21
21
  routeParams: Record<string, string>;
22
+ _hasPageContextFromServer: true;
22
23
  };
23
24
  declare function getPageContextFromHooks_isHydration(pageContext: PageContextSerialized & PageContext & PageContextExports & {
24
25
  _hasPageContextFromServer: true;
25
26
  }): Promise<PageContextSerialized & PageContext & PageContextExports & {
26
27
  _hasPageContextFromServer: true;
27
28
  } & {
28
- isHydration: true;
29
29
  _hasPageContextFromClient: boolean;
30
30
  }>;
31
31
  type PageContextFromServerHooks = {
@@ -32,7 +32,6 @@ function getPageContextFromHooks_serialized() {
32
32
  // TODO/eventually: rename
33
33
  async function getPageContextFromHooks_isHydration(pageContext) {
34
34
  objectAssign(pageContext, {
35
- isHydration: true,
36
35
  _hasPageContextFromClient: false
37
36
  });
38
37
  for (const hookName of ['data', 'onBeforeRender']) {
@@ -46,8 +45,6 @@ async function getPageContextFromHooks_isHydration(pageContext) {
46
45
  }
47
46
  async function getPageContextFromServerHooks(pageContext, isErrorPage) {
48
47
  const pageContextFromServerHooks = {
49
- // TODO/eventually: move this upstream
50
- isHydration: false,
51
48
  _hasPageContextFromServer: false
52
49
  };
53
50
  // If pageContextInit has some client data or if one of the hooks guard(), data() or onBeforeRender() is server-side
@@ -6,7 +6,7 @@ export { addLinkPrefetchHandlers };
6
6
  export { addLinkPrefetchHandlers_watch };
7
7
  export { addLinkPrefetchHandlers_unwatch };
8
8
  import { type PageContextFromServerHooks, getPageContextFromServerHooks } from './getPageContextFromHooks.js';
9
- import { PageFile } from '../../shared/getPageFiles.js';
9
+ import type { PageContextExports, PageFile } from '../../shared/getPageFiles.js';
10
10
  import { type PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
11
11
  type ResultPageContextFromServer = Awaited<ReturnType<typeof getPageContextFromServerHooks>>;
12
12
  type PageContextForPrefetch = {
@@ -19,7 +19,7 @@ type PageContextForPrefetch = {
19
19
  };
20
20
  declare function getPageContextPrefetched(pageContext: {
21
21
  urlPathname: string;
22
- }): null | PageContextFromServerHooks;
22
+ } & PageContextExports): null | PageContextFromServerHooks;
23
23
  declare function populatePageContextPrefetchCache(pageContext: PageContextForPrefetch, result: ResultPageContextFromServer): void;
24
24
  /**
25
25
  * Programmatically prefetch client assets.
@@ -27,6 +27,10 @@ const globalObject = getGlobalObject('prefetch.ts', {
27
27
  prefetchedPageContexts: {}
28
28
  });
29
29
  function getPageContextPrefetched(pageContext) {
30
+ const prefetchSettings = getPrefetchSettings(pageContext, null);
31
+ // TODO/pageContext-prefetch: we need linkTag to make this condition work
32
+ if (!prefetchSettings.pageContext)
33
+ return null;
30
34
  const key = getCacheKey(pageContext.urlPathname);
31
35
  const found = globalObject.prefetchedPageContexts[key];
32
36
  if (!found || found.result.is404ServerSideRouted || isExpired(found))
@@ -223,8 +227,10 @@ async function getPageContextLink(urlOfLink) {
223
227
  objectAssign(pageContextLink, pageContextFromRoute);
224
228
  return pageContextLink;
225
229
  }
226
- function getCacheKey(urlPathname) {
227
- assert(urlPathname.startsWith('/'));
228
- const key = urlPathname.split('#')[0];
230
+ function getCacheKey(url) {
231
+ if (url.startsWith('#'))
232
+ url = '/';
233
+ assert(url.startsWith('/'), { urlPathname: url });
234
+ const key = url.split('#')[0];
229
235
  return key;
230
236
  }
@@ -53,7 +53,7 @@ async function renderPageClientSide(renderArgs) {
53
53
  const onError = async (err) => {
54
54
  await renderErrorPage({ err });
55
55
  };
56
- const pageContext = await getPageContextBegin();
56
+ const pageContext = await getPageContextBegin(false);
57
57
  if (isRenderOutdated())
58
58
  return;
59
59
  // onPageTransitionStart()
@@ -81,10 +81,13 @@ async function renderPageClientSide(renderArgs) {
81
81
  }
82
82
  }
83
83
  // Route
84
- let pageContextRouted;
85
84
  if (isFirstRender) {
86
85
  const pageContextSerialized = getPageContextFromHooks_serialized();
87
- pageContextRouted = pageContextSerialized;
86
+ // TODO/eventually: create helper assertPageContextFromHook()
87
+ assert(!('urlOriginal' in pageContextSerialized));
88
+ objectAssign(pageContext, pageContextSerialized);
89
+ // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
90
+ populatePageContextPrefetchCache(pageContext, { pageContextFromServerHooks: pageContextSerialized });
88
91
  }
89
92
  else {
90
93
  let pageContextFromRoute;
@@ -125,10 +128,10 @@ async function renderPageClientSide(renderArgs) {
125
128
  // Skip's Vike's rendering; let the user handle the navigation
126
129
  return;
127
130
  }
128
- pageContextRouted = pageContextFromRoute;
131
+ // TODO/eventually: create helper assertPageContextFromHook()
132
+ assert(!('urlOriginal' in pageContextFromRoute));
133
+ objectAssign(pageContext, pageContextFromRoute);
129
134
  }
130
- assert(!('urlOriginal' in pageContextRouted));
131
- objectAssign(pageContext, pageContextRouted);
132
135
  try {
133
136
  objectAssign(pageContext, await loadUserFilesClientSide(pageContext.pageId, pageContext._pageFilesAll, pageContext._pageConfigs));
134
137
  }
@@ -185,6 +188,7 @@ async function renderPageClientSide(renderArgs) {
185
188
  if (result.is404ServerSideRouted)
186
189
  return;
187
190
  pageContextFromServerHooks = result.pageContextFromServerHooks;
191
+ // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
188
192
  populatePageContextPrefetchCache(pageContext, result);
189
193
  }
190
194
  catch (err) {
@@ -212,11 +216,12 @@ async function renderPageClientSide(renderArgs) {
212
216
  await renderPageView(pageContext);
213
217
  }
214
218
  }
215
- async function getPageContextBegin() {
219
+ async function getPageContextBegin(isForErrorPage) {
216
220
  const pageContext = await createPageContext(urlOriginal);
217
221
  objectAssign(pageContext, {
218
222
  isBackwardNavigation,
219
223
  isClientSideNavigation,
224
+ isHydration: isFirstRender && !isForErrorPage,
220
225
  _previousPageContext: previousPageContext
221
226
  });
222
227
  {
@@ -251,7 +256,7 @@ async function renderPageClientSide(renderArgs) {
251
256
  // We handle the abort error down below.
252
257
  }
253
258
  }
254
- const pageContext = await getPageContextBegin();
259
+ const pageContext = await getPageContextBegin(true);
255
260
  if (isRenderOutdated())
256
261
  return;
257
262
  if (args.is404)
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.197-commit-f4d8658";
1
+ export declare const PROJECT_VERSION: "0.4.197-commit-7d64995";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.197-commit-f4d8658';
2
+ export const PROJECT_VERSION = '0.4.197-commit-7d64995';
@@ -1,4 +1,4 @@
1
1
  export declare const projectInfo: {
2
2
  projectName: "Vike";
3
- projectVersion: "0.4.197-commit-f4d8658";
3
+ projectVersion: "0.4.197-commit-7d64995";
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.197-commit-f4d8658",
3
+ "version": "0.4.197-commit-7d64995",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {