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?: undefined;
27
+ argsFrom?: never;
28
28
  };
29
- replace?: undefined;
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?: undefined;
43
- prop?: undefined;
42
+ arg?: never;
43
+ prop?: never;
44
44
  };
45
- replace?: undefined;
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?: undefined;
52
+ args?: never;
53
53
  };
54
54
  replace: {
55
55
  with: boolean;
56
56
  };
57
- remove?: undefined;
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.21",
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.253",
51
+ "vike": "^0.4.259",
52
52
  "vite": "^7.3.0"
53
53
  },
54
54
  "typesVersions": {