vike-react 0.4.11 → 0.4.13
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 +9 -6
- package/dist/+config.js +10 -5
- package/dist/renderer/getPageElement.js +6 -6
- package/dist/renderer/onRenderHtml.js +13 -7
- package/dist/types/Config.d.ts +17 -7
- package/package.json +6 -6
package/dist/+config.d.ts
CHANGED
@@ -2,6 +2,9 @@ import { ssrEffect } from './renderer/ssrEffect.js';
|
|
2
2
|
import './types/index.js';
|
3
3
|
declare const _default: {
|
4
4
|
name: string;
|
5
|
+
require: {
|
6
|
+
vike: string;
|
7
|
+
};
|
5
8
|
onRenderHtml: "import:vike-react/renderer/onRenderHtml:onRenderHtml";
|
6
9
|
onRenderClient: "import:vike-react/renderer/onRenderClient:onRenderClient";
|
7
10
|
passToClient: string[];
|
@@ -48,7 +51,7 @@ declare const _default: {
|
|
48
51
|
server: true;
|
49
52
|
};
|
50
53
|
};
|
51
|
-
|
54
|
+
streamIsRequired: {
|
52
55
|
env: {
|
53
56
|
server: true;
|
54
57
|
};
|
@@ -63,19 +66,19 @@ declare const _default: {
|
|
63
66
|
client: true;
|
64
67
|
};
|
65
68
|
};
|
66
|
-
|
69
|
+
Wrapper: {
|
70
|
+
cumulative: true;
|
67
71
|
env: {
|
68
72
|
client: true;
|
69
73
|
server: true;
|
70
74
|
};
|
71
75
|
};
|
72
|
-
|
76
|
+
name: {
|
73
77
|
env: {
|
74
|
-
|
75
|
-
server: true;
|
78
|
+
config: true;
|
76
79
|
};
|
77
80
|
};
|
78
|
-
|
81
|
+
require: {
|
79
82
|
env: {
|
80
83
|
config: true;
|
81
84
|
};
|
package/dist/+config.js
CHANGED
@@ -4,6 +4,9 @@ import { ssrEffect } from './renderer/ssrEffect.js';
|
|
4
4
|
import './types/index.js';
|
5
5
|
export default {
|
6
6
|
name: 'vike-react',
|
7
|
+
require: {
|
8
|
+
vike: '>=0.4.173'
|
9
|
+
},
|
7
10
|
// https://vike.dev/onRenderHtml
|
8
11
|
onRenderHtml: 'import:vike-react/renderer/onRenderHtml:onRenderHtml',
|
9
12
|
// https://vike.dev/onRenderClient
|
@@ -39,7 +42,7 @@ export default {
|
|
39
42
|
stream: {
|
40
43
|
env: { server: true }
|
41
44
|
},
|
42
|
-
|
45
|
+
streamIsRequired: {
|
43
46
|
env: { server: true }
|
44
47
|
},
|
45
48
|
onBeforeRenderClient: {
|
@@ -48,16 +51,18 @@ export default {
|
|
48
51
|
onAfterRenderClient: {
|
49
52
|
env: { client: true }
|
50
53
|
},
|
51
|
-
VikeReactQueryWrapper: {
|
52
|
-
env: { client: true, server: true }
|
53
|
-
},
|
54
54
|
Wrapper: {
|
55
|
+
cumulative: true,
|
55
56
|
env: { client: true, server: true }
|
56
57
|
},
|
57
|
-
// Vike already defines the setting 'name', but we redundantly define it here for older Vike versions (otherwise older Vike versions will complain that 'name` is an unknown config).
|
58
|
+
// Vike already defines the setting 'name', but we redundantly define it here for older Vike versions (otherwise older Vike versions will complain that 'name` is an unknown config). TODO/eventually: remove this once <=0.4.172 versions become rare (also because we use the `require` setting starting from `0.4.173`).
|
58
59
|
name: {
|
59
60
|
env: { config: true }
|
60
61
|
},
|
62
|
+
// Vike already defines the setting 'require', but we redundantly define it here for older Vike versions (otherwise older Vike versions will complain that 'require` is an unknown config). TODO/eventually: remove this once <=0.4.172 versions become rare (also because we use the `require` setting starting from `0.4.173`).
|
63
|
+
require: {
|
64
|
+
env: { config: true }
|
65
|
+
},
|
61
66
|
reactStrictMode: {
|
62
67
|
env: { client: true, server: true }
|
63
68
|
}
|
@@ -2,14 +2,14 @@ export { getPageElement };
|
|
2
2
|
import React from 'react';
|
3
3
|
import { PageContextProvider } from '../hooks/usePageContext.js';
|
4
4
|
function getPageElement(pageContext) {
|
5
|
+
// Main component
|
5
6
|
const Layout = pageContext.config.Layout ?? PassThrough;
|
6
|
-
const Wrapper = pageContext.config.Wrapper ?? PassThrough;
|
7
|
-
const VikeReactQueryWrapper = pageContext.config.VikeReactQueryWrapper ?? PassThrough;
|
8
7
|
const { Page } = pageContext;
|
9
|
-
let page = (React.createElement(
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
let page = React.createElement(Layout, null, Page ? React.createElement(Page, null) : null);
|
9
|
+
(pageContext.config.Wrapper || []).forEach((Wrapper) => {
|
10
|
+
page = React.createElement(Wrapper, null, page);
|
11
|
+
});
|
12
|
+
page = React.createElement(PageContextProvider, { pageContext: pageContext }, page);
|
13
13
|
if (pageContext.config.reactStrictMode !== false) {
|
14
14
|
page = React.createElement(React.StrictMode, null, page);
|
15
15
|
}
|
@@ -28,15 +28,18 @@ const onRenderHtml = async (pageContext) => {
|
|
28
28
|
}
|
29
29
|
else {
|
30
30
|
const page = getPageElement(pageContext);
|
31
|
-
const { stream,
|
32
|
-
|
33
|
-
_streamIsRequied } = pageContext.config;
|
34
|
-
if (!stream && !_streamIsRequied) {
|
31
|
+
const { stream, streamIsRequired } = pageContext.config;
|
32
|
+
if (!stream && !streamIsRequired) {
|
35
33
|
pageView = dangerouslySkipEscape(renderToString(page));
|
36
34
|
}
|
37
35
|
else {
|
38
36
|
const disable = stream === false ? true : undefined;
|
39
|
-
pageView = await renderToStream(page, {
|
37
|
+
pageView = await renderToStream(page, {
|
38
|
+
userAgent: pageContext.headers?.['user-agent'] ||
|
39
|
+
// Deprecated way of acccessing User Agent header. Eventually remove it.
|
40
|
+
pageContext.userAgent,
|
41
|
+
disable
|
42
|
+
});
|
40
43
|
}
|
41
44
|
}
|
42
45
|
const documentHtml = escapeInject `<!DOCTYPE html>
|
@@ -53,6 +56,8 @@ const onRenderHtml = async (pageContext) => {
|
|
53
56
|
</html>`;
|
54
57
|
return documentHtml;
|
55
58
|
};
|
59
|
+
// We don't need this anymore starting from vike@0.4.173 which added the `require` setting.
|
60
|
+
// TODO/eventually: remove this once <=0.4.172 versions become rare.
|
56
61
|
function checkVikeVersion() {
|
57
62
|
if (version) {
|
58
63
|
const versionParts = version.split('.').map((s) => parseInt(s, 10));
|
@@ -60,10 +65,11 @@ function checkVikeVersion() {
|
|
60
65
|
return;
|
61
66
|
if (versionParts[1] > 4)
|
62
67
|
return;
|
63
|
-
if (versionParts[2] >=
|
68
|
+
if (versionParts[2] >= 173)
|
64
69
|
return;
|
65
70
|
}
|
66
|
-
|
71
|
+
// We can leave it 0.4.173 until we entirely remove checkVikeVersion() (because starting vike@0.4.173 we use the new `require` setting).
|
72
|
+
throw new Error('Update Vike to 0.4.173 or above');
|
67
73
|
}
|
68
74
|
// Used by:
|
69
75
|
// - react-streaming (to improve error messages, see https://github.com/brillout/react-streaming/blob/70c168de1e97b9c4385a4c3002b5013f1e406341/src/utils/isVikeReactApp.ts#L4)
|
package/dist/types/Config.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
import type { PageContextClient } from 'vike/types';
|
1
|
+
import type { ImportString, PageContextClient } from 'vike/types';
|
2
2
|
declare global {
|
3
|
-
namespace
|
4
|
-
interface
|
3
|
+
namespace Vike {
|
4
|
+
interface Config {
|
5
5
|
/** The page's root React component */
|
6
6
|
Page?: () => React.ReactNode;
|
7
7
|
/** React element rendered and appended into <head></head> */
|
@@ -21,9 +21,7 @@ declare global {
|
|
21
21
|
*
|
22
22
|
* https://vike.dev/Wrapper
|
23
23
|
*/
|
24
|
-
Wrapper?:
|
25
|
-
children: React.ReactNode;
|
26
|
-
}) => React.ReactNode;
|
24
|
+
Wrapper?: Wrapper | ImportString;
|
27
25
|
/** <title>${title}</title> */
|
28
26
|
title?: string;
|
29
27
|
/** <link rel="icon" href="${favicon}" /> */
|
@@ -54,6 +52,12 @@ declare global {
|
|
54
52
|
*
|
55
53
|
*/
|
56
54
|
stream?: boolean;
|
55
|
+
/**
|
56
|
+
* Whether the existence of the React SSR stream is required (some integrations require it).
|
57
|
+
*
|
58
|
+
* HTML Streaming can still be disabled: the SSR stream is awaited and converted to a string.
|
59
|
+
*/
|
60
|
+
streamIsRequired?: boolean;
|
57
61
|
/**
|
58
62
|
* Whether to use `<StrictMode>`.
|
59
63
|
*
|
@@ -74,7 +78,13 @@ declare global {
|
|
74
78
|
* https://vike.dev/onAfterRenderClient
|
75
79
|
*/
|
76
80
|
onAfterRenderClient?: (pageContext: PageContextClient) => void;
|
77
|
-
|
81
|
+
}
|
82
|
+
interface ConfigResolved {
|
83
|
+
Wrapper?: Wrapper[];
|
78
84
|
}
|
79
85
|
}
|
80
86
|
}
|
87
|
+
type Wrapper = (props: {
|
88
|
+
children: React.ReactNode;
|
89
|
+
}) => React.ReactNode;
|
90
|
+
export {};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "vike-react",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.13",
|
4
4
|
"type": "module",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"types": "./dist/index.d.ts",
|
@@ -21,10 +21,10 @@
|
|
21
21
|
"release:commit": "release-me commit"
|
22
22
|
},
|
23
23
|
"peerDependencies": {
|
24
|
-
"react": "18.
|
25
|
-
"react-dom": "18.
|
26
|
-
"vike": "
|
27
|
-
"vite": "
|
24
|
+
"react": ">=18.0.0",
|
25
|
+
"react-dom": ">=18.0.0",
|
26
|
+
"vike": ">=0.4.173",
|
27
|
+
"vite": ">=4.3.8"
|
28
28
|
},
|
29
29
|
"devDependencies": {
|
30
30
|
"@biomejs/biome": "^1.6.4",
|
@@ -36,7 +36,7 @@
|
|
36
36
|
"react-dom": "^18.2.0",
|
37
37
|
"rimraf": "^5.0.5",
|
38
38
|
"typescript": "^5.3.3",
|
39
|
-
"vike": "^0.4.
|
39
|
+
"vike": "^0.4.173"
|
40
40
|
},
|
41
41
|
"dependencies": {
|
42
42
|
"react-streaming": "^0.3.27"
|