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.
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +0 -3
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +9 -3
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +13 -8
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +1 -1
|
@@ -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(
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
2
|
+
export const PROJECT_VERSION = '0.4.197-commit-7d64995';
|