vike-react 0.6.21 → 0.6.23
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/config.d.ts
CHANGED
|
@@ -24,9 +24,9 @@ declare const config: {
|
|
|
24
24
|
remove: {
|
|
25
25
|
arg: number;
|
|
26
26
|
prop: string;
|
|
27
|
-
argsFrom?:
|
|
27
|
+
argsFrom?: never;
|
|
28
28
|
};
|
|
29
|
-
replace?:
|
|
29
|
+
replace?: never;
|
|
30
30
|
} | {
|
|
31
31
|
env: "server";
|
|
32
32
|
filter: string;
|
|
@@ -39,22 +39,22 @@ declare const config: {
|
|
|
39
39
|
};
|
|
40
40
|
remove: {
|
|
41
41
|
argsFrom: number;
|
|
42
|
-
arg?:
|
|
43
|
-
prop?:
|
|
42
|
+
arg?: never;
|
|
43
|
+
prop?: never;
|
|
44
44
|
};
|
|
45
|
-
replace?:
|
|
45
|
+
replace?: never;
|
|
46
46
|
} | {
|
|
47
47
|
env: "server";
|
|
48
48
|
filter: string;
|
|
49
49
|
type: "call";
|
|
50
50
|
match: {
|
|
51
51
|
function: string;
|
|
52
|
-
args?:
|
|
52
|
+
args?: never;
|
|
53
53
|
};
|
|
54
54
|
replace: {
|
|
55
55
|
with: boolean;
|
|
56
56
|
};
|
|
57
|
-
remove?:
|
|
57
|
+
remove?: never;
|
|
58
58
|
})[];
|
|
59
59
|
meta: {
|
|
60
60
|
Head: {
|
|
@@ -80,6 +80,8 @@ function onUncaughtErrorGlobal(args, userOptions) {
|
|
|
80
80
|
globalObject.onUncaughtErrorLocal?.(errorEnhanced);
|
|
81
81
|
userOptions?.onUncaughtError?.call(this, errorEnhanced, errorInfo);
|
|
82
82
|
}
|
|
83
|
+
// Inject componentStack to the error's stack trace
|
|
84
|
+
// - Server counterpart: https://github.com/brillout/react-streaming/blob/e0a6210957e65dad2c92877ad075ebac4713d8fa/src/server/renderToStream/common.ts#L93
|
|
83
85
|
function getErrorWithComponentStack(errorOriginal, errorInfo) {
|
|
84
86
|
if (!errorInfo?.componentStack || !isObject(errorOriginal))
|
|
85
87
|
return errorOriginal;
|
|
@@ -63,28 +63,7 @@ async function renderPageToHtml(pageContext) {
|
|
|
63
63
|
pageContext.pageHtmlString = pageHtmlString;
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
66
|
-
const pageHtmlStream = await renderToStream(pageContext.page,
|
|
67
|
-
webStream: !streamSetting.type
|
|
68
|
-
? /* Let react-streaming decide which stream type to use.
|
|
69
|
-
false
|
|
70
|
-
*/
|
|
71
|
-
undefined
|
|
72
|
-
: streamSetting.type === 'web',
|
|
73
|
-
userAgent: pageContext.headers?.['user-agent'] ||
|
|
74
|
-
// TO-DO/eventually: remove old way of acccessing the User Agent header.
|
|
75
|
-
// @ts-ignore
|
|
76
|
-
pageContext.userAgent,
|
|
77
|
-
disable:
|
|
78
|
-
// +stream.require is true => default +stream.enable is true
|
|
79
|
-
// +stream.require is false => default +stream.enable is false
|
|
80
|
-
streamSetting.enable === false
|
|
81
|
-
? true
|
|
82
|
-
: /* Don't override disabling when bot is detected.
|
|
83
|
-
false,
|
|
84
|
-
*/
|
|
85
|
-
undefined,
|
|
86
|
-
...renderToStreamOptions,
|
|
87
|
-
});
|
|
66
|
+
const pageHtmlStream = await renderToStream(pageContext.page, getRenderToStreamOptions(pageContext, streamSetting, renderToStreamOptions));
|
|
88
67
|
pageContext.pageHtmlStream = pageHtmlStream;
|
|
89
68
|
}
|
|
90
69
|
}
|
|
@@ -192,8 +171,32 @@ async function getHtmlInjections(pageContext) {
|
|
|
192
171
|
]);
|
|
193
172
|
return { bodyHtmlBegin, bodyHtmlEnd, headHtmlBegin, headHtmlEnd };
|
|
194
173
|
}
|
|
174
|
+
function getRenderToStreamOptions(pageContext, streamSetting, renderToStreamOptions) {
|
|
175
|
+
const options = {};
|
|
176
|
+
if (streamSetting.type) {
|
|
177
|
+
options.webStream = streamSetting.type === 'web';
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// Let react-streaming decide the stream type
|
|
181
|
+
}
|
|
182
|
+
const userAgent = pageContext.headers?.['user-agent'] ||
|
|
183
|
+
// TO-DO/eventually: remove old way of acccessing the User Agent header.
|
|
184
|
+
// @ts-ignore
|
|
185
|
+
pageContext.userAgent;
|
|
186
|
+
if (userAgent)
|
|
187
|
+
options.userAgent = userAgent;
|
|
188
|
+
// +stream.require is true => default +stream.enable is true
|
|
189
|
+
// +stream.require is false => default +stream.enable is false
|
|
190
|
+
if (streamSetting.enable === false) {
|
|
191
|
+
options.disable = true;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
// Let react-streaming disable streaming when it detects a bot
|
|
195
|
+
}
|
|
196
|
+
return { ...options, ...renderToStreamOptions };
|
|
197
|
+
}
|
|
195
198
|
function resolveStreamSetting(pageContext) {
|
|
196
|
-
const { stream,
|
|
199
|
+
const { stream, server,
|
|
197
200
|
// TO-DO/eventually: remove +streamIsRequired
|
|
198
201
|
// - Let's remove it once following last vike-react-{query,apollo} releases using +streamIsRequired can be considered old versions.
|
|
199
202
|
// - Last vike-react-query version that uses +streamIsRequired was 0.1.3
|
|
@@ -232,5 +235,9 @@ function resolveStreamSetting(pageContext) {
|
|
|
232
235
|
isType(setting);
|
|
233
236
|
throw new Error(`Unexpected +stream value ${setting}`);
|
|
234
237
|
});
|
|
238
|
+
// If `+server` is defined, we expect a Web Response
|
|
239
|
+
if (server && streamSetting.enable && !streamSetting.type) {
|
|
240
|
+
streamSetting.type = 'web';
|
|
241
|
+
}
|
|
235
242
|
return streamSetting;
|
|
236
243
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike-react",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.23",
|
|
4
4
|
"repository": "https://github.com/vikejs/vike-react",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"react-dom": "^19.2.1",
|
|
49
49
|
"rimraf": "^5.0.5",
|
|
50
50
|
"typescript": "^5.9.2",
|
|
51
|
-
"vike": "^0.4.
|
|
51
|
+
"vike": "^0.4.259",
|
|
52
52
|
"vite": "^7.3.0"
|
|
53
53
|
},
|
|
54
54
|
"typesVersions": {
|