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 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
  };
@@ -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);
@@ -101,7 +101,8 @@ async function onRenderHtml(pageContext) {
101
101
  }));
102
102
  const {
103
103
  pipe
104
- } = renderToStream(() => getPageElement(pageContext));
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 { VikeSolidConfig } from '../renderer/+config.js';
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<VikeSolidConfig>;
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 UserConfig = Config & Partial<VikeSolidConfig & {
6
- Page: Component;
7
- }>;
8
- type VikeSolidConfig = {
4
+ type Config = Config$1 & {
9
5
  /** Solid element renderer and appended into &lt;head>&lt;/head> */
10
- Head: Component;
11
- Layout: Component;
12
- title: string;
13
- description: string;
6
+ Head?: Component;
7
+ Layout?: Component;
8
+ title?: string;
9
+ description?: string;
14
10
  /**
15
11
  * @default 'en'
16
12
  */
17
- lang: string;
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 { UserConfig, VikeSolidConfig, _default as default };
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.8",
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.3.9",
13
+ "vite": "^4.4.9",
14
14
  "vite-plugin-solid": "^2.7.0",
15
- "vite-plugin-ssr": "^0.4.132"
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.1",
22
- "@babel/preset-env": "^7.22.4",
23
- "@babel/preset-typescript": "^7.21.5",
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.2",
26
- "@types/node": "^18.16.16",
27
- "babel-preset-solid": "^1.7.4",
28
- "bumpp": "^9.1.0",
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.0",
31
- "solid-js": "^1.7.5",
32
- "tslib": "^2.5.2",
33
- "typescript": "^5.0.4"
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
  "*": {