vike-solid 0.0.8 → 0.1.0
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.js +28 -0
- package/dist/+onRenderClient.js +1 -1
- package/dist/+onRenderHtml.js +2 -1
- package/dist/components/usePageContext.d.ts +2 -2
- package/dist/renderer/+config.d.ts +26 -12
- package/package.json +14 -14
package/dist/+config.js
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
// alias
|
|
2
|
+
|
|
3
|
+
// Depending on the value of `config.meta.ssr`, set other config options' `env`
|
|
4
|
+
// accordingly.
|
|
5
|
+
// See https://vite-plugin-ssr.com/meta#modify-existing-configurations
|
|
6
|
+
const toggleSsrRelatedConfig = ({
|
|
7
|
+
configDefinedAt,
|
|
8
|
+
configValue
|
|
9
|
+
}) => {
|
|
10
|
+
if (typeof configValue !== "boolean") {
|
|
11
|
+
throw new Error(`${configDefinedAt} should be a boolean`);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
meta: {
|
|
15
|
+
// When the SSR flag is false, we want to render the page only in the
|
|
16
|
+
// browser. We achieve this by then making the `Page` implementation
|
|
17
|
+
// accessible only in the client's renderer.
|
|
18
|
+
Page: {
|
|
19
|
+
env: configValue ? "server-and-client" // default
|
|
20
|
+
: "client-only"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
};
|
|
1
25
|
var _config = {
|
|
2
26
|
onRenderHtml: "import:vike-solid/renderer/onRenderHtml",
|
|
3
27
|
onRenderClient: "import:vike-solid/renderer/onRenderClient",
|
|
@@ -19,6 +43,10 @@ var _config = {
|
|
|
19
43
|
},
|
|
20
44
|
lang: {
|
|
21
45
|
env: "server-only"
|
|
46
|
+
},
|
|
47
|
+
ssr: {
|
|
48
|
+
env: "config-only",
|
|
49
|
+
effect: toggleSsrRelatedConfig
|
|
22
50
|
}
|
|
23
51
|
}
|
|
24
52
|
};
|
package/dist/+onRenderClient.js
CHANGED
|
@@ -94,7 +94,7 @@ async function onRenderClient(pageContext) {
|
|
|
94
94
|
if (dispose) dispose();
|
|
95
95
|
setPageContext(pageContext);
|
|
96
96
|
const container = document.getElementById("page-view");
|
|
97
|
-
if (pageContext.isHydration) {
|
|
97
|
+
if (container.innerHTML !== "" && pageContext.isHydration) {
|
|
98
98
|
dispose = hydrate(() => getPageElement(pageContextStore), container);
|
|
99
99
|
} else {
|
|
100
100
|
dispose = render(() => getPageElement(pageContextStore), container);
|
package/dist/+onRenderHtml.js
CHANGED
|
@@ -101,7 +101,8 @@ async function onRenderHtml(pageContext) {
|
|
|
101
101
|
}));
|
|
102
102
|
const {
|
|
103
103
|
pipe
|
|
104
|
-
} = renderToStream(() =>
|
|
104
|
+
} = renderToStream(() => !pageContext.Page ? [] // the ssr config flag is false
|
|
105
|
+
: getPageElement(pageContext));
|
|
105
106
|
// const asString = renderToString(() => page);
|
|
106
107
|
stampPipe(pipe, "node-stream");
|
|
107
108
|
const lang = pageContext.config.lang || "en";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PageContextBuiltIn, PageContextBuiltInClientWithClientRouting } from 'vite-plugin-ssr/types';
|
|
2
|
-
import {
|
|
2
|
+
import { Config } from '../renderer/+config.js';
|
|
3
3
|
import { JSX } from 'solid-js';
|
|
4
4
|
|
|
5
5
|
type Page = (pageProps: PageProps) => JSX.Element;
|
|
@@ -16,7 +16,7 @@ type PageContextCommon = {
|
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
type PageContextServer = PageContextBuiltIn<Page> & PageContextCommon & {
|
|
19
|
-
config: Partial<
|
|
19
|
+
config: Partial<Config>;
|
|
20
20
|
};
|
|
21
21
|
type PageContextClient = PageContextBuiltInClientWithClientRouting<Page> & PageContextCommon;
|
|
22
22
|
type PageContext = PageContextClient | PageContextServer;
|
|
@@ -1,21 +1,31 @@
|
|
|
1
|
-
import { Config } from 'vite-plugin-ssr/types';
|
|
2
|
-
export * from 'vite-plugin-ssr/types';
|
|
1
|
+
import { Config as Config$1, Effect } from 'vite-plugin-ssr/types';
|
|
3
2
|
import { Component } from 'solid-js';
|
|
4
3
|
|
|
5
|
-
type
|
|
6
|
-
Page: Component;
|
|
7
|
-
}>;
|
|
8
|
-
type VikeSolidConfig = {
|
|
4
|
+
type Config = Config$1 & {
|
|
9
5
|
/** Solid element renderer and appended into <head></head> */
|
|
10
|
-
Head
|
|
11
|
-
Layout
|
|
12
|
-
title
|
|
13
|
-
description
|
|
6
|
+
Head?: Component;
|
|
7
|
+
Layout?: Component;
|
|
8
|
+
title?: string;
|
|
9
|
+
description?: string;
|
|
14
10
|
/**
|
|
15
11
|
* @default 'en'
|
|
16
12
|
*/
|
|
17
|
-
lang
|
|
13
|
+
lang?: string;
|
|
14
|
+
/**
|
|
15
|
+
* If true, render mode is SSR or pre-rendering (aka SSG). In other words, the
|
|
16
|
+
* page's HTML will be rendered at build-time or request-time.
|
|
17
|
+
* If false, render mode is SPA. In other words, the page will only be
|
|
18
|
+
* rendered in the browser.
|
|
19
|
+
*
|
|
20
|
+
* See https://vite-plugin-ssr.com/render-modes
|
|
21
|
+
*
|
|
22
|
+
* @default true
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
ssr?: boolean;
|
|
26
|
+
Page?: Component;
|
|
18
27
|
};
|
|
28
|
+
type UserConfig = Config;
|
|
19
29
|
declare const _default: {
|
|
20
30
|
onRenderHtml: "import:vike-solid/renderer/onRenderHtml";
|
|
21
31
|
onRenderClient: "import:vike-solid/renderer/onRenderClient";
|
|
@@ -38,7 +48,11 @@ declare const _default: {
|
|
|
38
48
|
lang: {
|
|
39
49
|
env: "server-only";
|
|
40
50
|
};
|
|
51
|
+
ssr: {
|
|
52
|
+
env: "config-only";
|
|
53
|
+
effect: Effect;
|
|
54
|
+
};
|
|
41
55
|
};
|
|
42
56
|
};
|
|
43
57
|
|
|
44
|
-
export {
|
|
58
|
+
export { Config, UserConfig, _default as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike-solid",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/+config.js",
|
|
@@ -10,27 +10,27 @@
|
|
|
10
10
|
"./renderer/onRenderClient": "./dist/+onRenderClient.js"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"vite": "^4.
|
|
13
|
+
"vite": "^4.4.9",
|
|
14
14
|
"vite-plugin-solid": "^2.7.0",
|
|
15
|
-
"vite-plugin-ssr": "^0.4.
|
|
15
|
+
"vite-plugin-ssr": "^0.4.135"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"solid-js": "^1.7.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@babel/core": "^7.22.
|
|
22
|
-
"@babel/preset-env": "^7.22.
|
|
23
|
-
"@babel/preset-typescript": "^7.
|
|
21
|
+
"@babel/core": "^7.22.10",
|
|
22
|
+
"@babel/preset-env": "^7.22.10",
|
|
23
|
+
"@babel/preset-typescript": "^7.22.5",
|
|
24
24
|
"@rollup/plugin-babel": "^6.0.3",
|
|
25
|
-
"@rollup/plugin-node-resolve": "^15.0
|
|
26
|
-
"@types/node": "^18.
|
|
27
|
-
"babel-preset-solid": "^1.7.
|
|
28
|
-
"bumpp": "^9.1.
|
|
25
|
+
"@rollup/plugin-node-resolve": "^15.1.0",
|
|
26
|
+
"@types/node": "^18.17.4",
|
|
27
|
+
"babel-preset-solid": "^1.7.7",
|
|
28
|
+
"bumpp": "^9.1.1",
|
|
29
29
|
"rollup": "3.20.4",
|
|
30
|
-
"rollup-plugin-dts": "^5.3.
|
|
31
|
-
"solid-js": "^1.7.
|
|
32
|
-
"tslib": "^2.
|
|
33
|
-
"typescript": "^5.
|
|
30
|
+
"rollup-plugin-dts": "^5.3.1",
|
|
31
|
+
"solid-js": "^1.7.10",
|
|
32
|
+
"tslib": "^2.6.1",
|
|
33
|
+
"typescript": "^5.1.6"
|
|
34
34
|
},
|
|
35
35
|
"typesVersions": {
|
|
36
36
|
"*": {
|