vike-react 0.4.7 → 0.4.8
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 +5 -0
- package/dist/+config.js +3 -0
- package/dist/renderer/onRenderClient.js +12 -2
- package/dist/renderer/onRenderHtml.js +16 -4
- package/package.json +6 -6
package/dist/+config.d.ts
CHANGED
package/dist/+config.js
CHANGED
@@ -6,15 +6,25 @@ import { getPageElement } from './getPageElement.js';
|
|
6
6
|
let root;
|
7
7
|
const onRenderClient = (pageContext) => {
|
8
8
|
const page = getPageElement(pageContext);
|
9
|
+
// TODO: implement this? So that, upon errors, onRenderClient() throws an error and Vike can render the error. As of April 2024 it isn't released yet.
|
10
|
+
// - https://react-dev-git-fork-rickhanlonii-rh-root-options-fbopensource.vercel.app/reference/react-dom/client/createRoot#show-a-dialog-for-uncaught-errors
|
11
|
+
// - https://react-dev-git-fork-rickhanlonii-rh-root-options-fbopensource.vercel.app/reference/react-dom/client/hydrateRoot#show-a-dialog-for-uncaught-errors
|
12
|
+
const onUncaughtError = (_error, _errorInfo) => { };
|
9
13
|
const container = document.getElementById('react-root');
|
10
14
|
if (container.innerHTML !== '' && pageContext.isHydration) {
|
11
15
|
// First render (hydration)
|
12
|
-
root = ReactDOM.hydrateRoot(container, page
|
16
|
+
root = ReactDOM.hydrateRoot(container, page, {
|
17
|
+
// @ts-expect-error
|
18
|
+
onUncaughtError
|
19
|
+
});
|
13
20
|
}
|
14
21
|
else {
|
15
22
|
if (!root) {
|
16
23
|
// First render (not hydration)
|
17
|
-
root = ReactDOM.createRoot(container
|
24
|
+
root = ReactDOM.createRoot(container, {
|
25
|
+
// @ts-expect-error
|
26
|
+
onUncaughtError
|
27
|
+
});
|
18
28
|
}
|
19
29
|
else {
|
20
30
|
// Client-side navigation
|
@@ -26,9 +26,16 @@ const onRenderHtml = async (pageContext) => {
|
|
26
26
|
}
|
27
27
|
else {
|
28
28
|
const page = getPageElement(pageContext);
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
const { stream,
|
30
|
+
// @ts-expect-error
|
31
|
+
_streamIsRequied } = pageContext.config;
|
32
|
+
if (!stream && !_streamIsRequied) {
|
33
|
+
pageView = dangerouslySkipEscape(renderToString(page));
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
const disable = stream === false ? true : undefined;
|
37
|
+
pageView = await renderToStream(page, { userAgent: pageContext.userAgent, disable });
|
38
|
+
}
|
32
39
|
}
|
33
40
|
const documentHtml = escapeInject `<!DOCTYPE html>
|
34
41
|
<html lang='${lang}'>
|
@@ -60,5 +67,10 @@ function checkVikeVersion() {
|
|
60
67
|
// - react-streaming (to improve error messages, see https://github.com/brillout/react-streaming/blob/70c168de1e97b9c4385a4c3002b5013f1e406341/src/utils/isVikeReactApp.ts#L4)
|
61
68
|
function addEcosystemStamp() {
|
62
69
|
const g = globalThis;
|
63
|
-
g._isVikeReactApp =
|
70
|
+
g._isVikeReactApp =
|
71
|
+
/* Don't set to true so that consumers do `!!globalThis._isVikeApp` instead of `globalThis._isVikeApp === true`.
|
72
|
+
true
|
73
|
+
*/
|
74
|
+
// We use an object so that we can eventually, in the future, add helpful information as needed. (E.g. the vike-react version.)
|
75
|
+
{};
|
64
76
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "vike-react",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.8",
|
4
4
|
"type": "module",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"types": "./dist/index.d.ts",
|
@@ -16,9 +16,9 @@
|
|
16
16
|
"scripts": {
|
17
17
|
"dev": "tsc --watch",
|
18
18
|
"build": "rm -rf dist/ && tsc",
|
19
|
-
"release": "release-me --git-prefix vike-react
|
20
|
-
"release:minor": "release-me --git-prefix vike-react
|
21
|
-
"release:commit": "release-me --git-prefix vike-react
|
19
|
+
"release": "release-me --git-tag-prefix vike-react patch",
|
20
|
+
"release:minor": "release-me --git-tag-prefix vike-react minor",
|
21
|
+
"release:commit": "release-me --git-tag-prefix vike-react commit"
|
22
22
|
},
|
23
23
|
"peerDependencies": {
|
24
24
|
"react": "18.x.x",
|
@@ -28,7 +28,7 @@
|
|
28
28
|
},
|
29
29
|
"devDependencies": {
|
30
30
|
"@biomejs/biome": "^1.6.4",
|
31
|
-
"@brillout/release-me": "^0.1
|
31
|
+
"@brillout/release-me": "^0.2.1",
|
32
32
|
"@types/node": "^20.11.17",
|
33
33
|
"@types/react": "^18.2.55",
|
34
34
|
"@types/react-dom": "^18.2.19",
|
@@ -38,7 +38,7 @@
|
|
38
38
|
"vike": "^0.4.168"
|
39
39
|
},
|
40
40
|
"dependencies": {
|
41
|
-
"react-streaming": "^0.3.
|
41
|
+
"react-streaming": "^0.3.27"
|
42
42
|
},
|
43
43
|
"typesVersions": {
|
44
44
|
"*": {
|