vike-solid 0.2.7 → 0.2.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.js CHANGED
@@ -28,6 +28,8 @@ const toggleSsrRelatedConfig = ({
28
28
  var _config = {
29
29
  onRenderHtml: "import:vike-solid/renderer/onRenderHtml:onRenderHtml",
30
30
  onRenderClient: "import:vike-solid/renderer/onRenderClient:onRenderClient",
31
+ // TODO/next-major-release: remove pageProps (i.e. tell users to use data() instead of onBeforeRender() to fetch data)
32
+ // TODO/next-major-release: remove support for setting title over onBeforeRender()
31
33
  // A page can define an onBeforeRender() hook to be run on the server, which
32
34
  // can fetch data and return it as additional page context. Typically it will
33
35
  // return the page's root Solid component's props and additional data that can
@@ -1,13 +1,20 @@
1
1
  import { createComponent, Dynamic, mergeProps, memo, hydrate, render } from 'solid-js/web';
2
- import { P as PageContextProvider, u as usePageContext } from './PageContextProvider-gFteWsFt.js';
2
+ import { P as PageContextProvider, u as usePageContext } from './PageContextProvider-OTjP33FZ.js';
3
3
  import { createStore, reconcile } from 'solid-js/store';
4
4
  import 'solid-js';
5
5
 
6
6
  /**
7
7
  * Get the page's title if defined, either from the additional data fetched by
8
- * the page's onBeforeRender() hook or from the config.
8
+ * the page's data() and onBeforeRender() hook or from the config.
9
9
  */
10
10
  function getTitle(pageContext) {
11
+ // from data() hook
12
+ if (pageContext.data?.title !== undefined) {
13
+ return pageContext.data.title;
14
+ }
15
+
16
+ // TODO/next-major-release: remove support for setting title over onBeforeRender()
17
+ // from onBeforeRender() hook
11
18
  if (pageContext.title !== undefined) {
12
19
  return pageContext.title;
13
20
  }
@@ -63,6 +70,7 @@ function Layout(props) {
63
70
  }
64
71
  function Page() {
65
72
  const pageContext = usePageContext();
73
+ // TODO/next-major-release: remove pageProps (i.e. tell users to use data() instead of onBeforeRender() to fetch data)
66
74
  return createComponent(Dynamic, mergeProps({
67
75
  get component() {
68
76
  return pageContext.Page;
@@ -1,13 +1,20 @@
1
1
  import { createComponent, Dynamic, mergeProps, renderToString, renderToStream, generateHydrationScript } from 'solid-js/web';
2
2
  import { version, escapeInject, dangerouslySkipEscape, stampPipe } from 'vike/server';
3
- import { P as PageContextProvider, u as usePageContext } from './PageContextProvider-gFteWsFt.js';
3
+ import { P as PageContextProvider, u as usePageContext } from './PageContextProvider-OTjP33FZ.js';
4
4
  import 'solid-js';
5
5
 
6
6
  /**
7
7
  * Get the page's title if defined, either from the additional data fetched by
8
- * the page's onBeforeRender() hook or from the config.
8
+ * the page's data() and onBeforeRender() hook or from the config.
9
9
  */
10
10
  function getTitle(pageContext) {
11
+ // from data() hook
12
+ if (pageContext.data?.title !== undefined) {
13
+ return pageContext.data.title;
14
+ }
15
+
16
+ // TODO/next-major-release: remove support for setting title over onBeforeRender()
17
+ // from onBeforeRender() hook
11
18
  if (pageContext.title !== undefined) {
12
19
  return pageContext.title;
13
20
  }
@@ -63,6 +70,7 @@ function Layout(props) {
63
70
  }
64
71
  function Page() {
65
72
  const pageContext = usePageContext();
73
+ // TODO/next-major-release: remove pageProps (i.e. tell users to use data() instead of onBeforeRender() to fetch data)
66
74
  return createComponent(Dynamic, mergeProps({
67
75
  get component() {
68
76
  return pageContext.Page;
@@ -32,5 +32,17 @@ function usePageContext() {
32
32
  if (!pageContext) throw new Error("<PageContextProvider> is needed for being able to use usePageContext()");
33
33
  return pageContext;
34
34
  }
35
+ /** Access `pageContext.data` from any SolidJS component
36
+ *
37
+ * See
38
+ * - https://vike.dev/data
39
+ * - https://vike.dev/pageContext-anywhere
40
+ */
41
+ function useData() {
42
+ const {
43
+ data
44
+ } = usePageContext();
45
+ return data;
46
+ }
35
47
 
36
- export { PageContextProvider as P, usePageContext as u };
48
+ export { PageContextProvider as P, useData as a, usePageContext as u };
@@ -0,0 +1,2 @@
1
+ export { a as useData } from '../useData-UNVtqljj.js';
2
+ import 'vike/types';
@@ -1,6 +1,2 @@
1
- import { PageContext } from 'vike/types';
2
-
3
- /** Access the pageContext from any SolidJS component */
4
- declare function usePageContext(): PageContext;
5
-
6
- export { usePageContext };
1
+ export { u as usePageContext } from '../useData-UNVtqljj.js';
2
+ import 'vike/types';
@@ -7,10 +7,14 @@ declare global {
7
7
  namespace Vike {
8
8
  interface PageContext {
9
9
  Page?: Page;
10
- /** Properties of the page's root Solid component. */
10
+ /** Properties of the page's root Solid component - e.g. set by onBeforeRender() hook */
11
11
  pageProps?: Record<string, unknown>;
12
- /** &lt;title>${title}&lt;/title> - has precedence over the config */
12
+ /** &lt;title>${title}&lt;/title> - set by onBeforeRender() hook, has precedence over the config */
13
13
  title?: string;
14
+ data?: {
15
+ /** &lt;title>${title}&lt;/title> - set by data() hook, has precedence over the onBeforeRender() hook */
16
+ title?: string;
17
+ };
14
18
  }
15
19
  }
16
20
  }
@@ -0,0 +1,13 @@
1
+ import { PageContext } from 'vike/types';
2
+
3
+ /** Access the pageContext from any SolidJS component */
4
+ declare function usePageContext(): PageContext;
5
+ /** Access `pageContext.data` from any SolidJS component
6
+ *
7
+ * See
8
+ * - https://vike.dev/data
9
+ * - https://vike.dev/pageContext-anywhere
10
+ */
11
+ declare function useData<Data>(): Data;
12
+
13
+ export { useData as a, usePageContext as u };
@@ -0,0 +1,3 @@
1
+ export { a as useData } from './PageContextProvider-OTjP33FZ.js';
2
+ import 'solid-js/web';
3
+ import 'solid-js';
@@ -1,3 +1,3 @@
1
- export { u as usePageContext } from './PageContextProvider-gFteWsFt.js';
1
+ export { u as usePageContext } from './PageContextProvider-OTjP33FZ.js';
2
2
  import 'solid-js/web';
3
3
  import 'solid-js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike-solid",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "vite-plugin-solid": "^2.8.0"
@@ -11,26 +11,27 @@
11
11
  "vike": "^0.4.152"
12
12
  },
13
13
  "devDependencies": {
14
- "@babel/core": "^7.23.6",
15
- "@babel/preset-env": "^7.23.6",
14
+ "@babel/core": "^7.23.7",
15
+ "@babel/preset-env": "^7.23.7",
16
16
  "@babel/preset-typescript": "^7.23.3",
17
17
  "@rollup/plugin-babel": "^6.0.4",
18
18
  "@rollup/plugin-node-resolve": "^15.2.3",
19
19
  "@types/node": "^18.17.4",
20
20
  "babel-preset-solid": "^1.8.6",
21
21
  "bumpp": "^9.2.1",
22
- "rollup": "^4.9.1",
22
+ "rollup": "^4.9.2",
23
23
  "rollup-plugin-dts": "^6.1.0",
24
24
  "solid-js": "^1.8.7",
25
25
  "tslib": "^2.6.2",
26
26
  "typescript": "^5.3.3",
27
27
  "vite": "^5.0.10",
28
- "vike": "^0.4.152"
28
+ "vike": "^0.4.153"
29
29
  },
30
30
  "exports": {
31
31
  ".": "./dist/+config.js",
32
32
  "./vite": "./dist/vite-plugin-vike-solid.js",
33
33
  "./usePageContext": "./dist/usePageContext.js",
34
+ "./useData": "./dist/useData.js",
34
35
  "./ClientOnly": "./dist/ClientOnly.js",
35
36
  "./renderer/onRenderHtml": "./dist/+onRenderHtml.js",
36
37
  "./renderer/onRenderClient": "./dist/+onRenderClient.js"
@@ -49,6 +50,9 @@
49
50
  "usePageContext": [
50
51
  "dist/components/usePageContext.d.ts"
51
52
  ],
53
+ "useData": [
54
+ "dist/components/useData.d.ts"
55
+ ],
52
56
  "ClientOnly": [
53
57
  "dist/components/ClientOnly.d.ts"
54
58
  ]