@batijs/cli 0.0.149 → 0.0.150

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.
Files changed (43) hide show
  1. package/dist/boilerplates/@batijs/compiled/files/$package.json.js +1 -1
  2. package/dist/boilerplates/@batijs/eslint/files/$package.json.js +2 -2
  3. package/dist/boilerplates/@batijs/express/files/$package.json.js +2 -2
  4. package/dist/boilerplates/@batijs/h3/files/$package.json.js +2 -2
  5. package/dist/boilerplates/@batijs/hattip/files/$package.json.js +5 -5
  6. package/dist/boilerplates/@batijs/react/files/$package.json.js +2 -2
  7. package/dist/boilerplates/@batijs/react/types/pages/+config.h.d.ts +2 -61
  8. package/dist/boilerplates/@batijs/shared/files/package.json +1 -1
  9. package/dist/boilerplates/@batijs/solid/files/$package.json.js +22 -28
  10. package/dist/boilerplates/@batijs/solid/files/layouts/HeadDefault.tsx +5 -0
  11. package/dist/boilerplates/@batijs/solid/files/layouts/LayoutDefault.tsx +1 -1
  12. package/dist/boilerplates/@batijs/solid/files/pages/+config.h.ts +2 -4
  13. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/@id/+Page.tsx +8 -6
  14. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/@id/+data.ts +22 -0
  15. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/@id/+title.ts +7 -0
  16. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+Page.tsx +6 -4
  17. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+data.ts +22 -0
  18. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+title.ts +7 -0
  19. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/types.ts +1 -4
  20. package/dist/boilerplates/@batijs/solid/types/pages/+config.h.d.ts +2 -8
  21. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/@id/+Page.d.ts +1 -4
  22. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/@id/+data.d.ts +4 -0
  23. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/@id/+title.d.ts +3 -0
  24. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/index/+Page.d.ts +1 -4
  25. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/index/+data.d.ts +3 -0
  26. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/index/+title.d.ts +3 -0
  27. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/types.d.ts +1 -4
  28. package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +1 -1
  29. package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +1 -1
  30. package/dist/boilerplates/@batijs/vercel/files/$package.json.js +1 -1
  31. package/dist/boilerplates/@batijs/vue/files/$package.json.js +1 -1
  32. package/dist/index.js +2 -2
  33. package/package.json +6 -6
  34. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/@id/+onBeforeRender.ts +0 -27
  35. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/filterMovieData.ts +0 -11
  36. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+onBeforePrerenderStart.ts +0 -40
  37. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+onBeforeRender.ts +0 -81
  38. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/getStarWarsMovies.ts +0 -29
  39. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/@id/+onBeforeRender.d.ts +0 -11
  40. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/filterMovieData.d.ts +0 -3
  41. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/index/+onBeforePrerenderStart.d.ts +0 -18
  42. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/index/+onBeforeRender.d.ts +0 -10
  43. package/dist/boilerplates/@batijs/solid/types/pages/star-wars/index/getStarWarsMovies.d.ts +0 -7
@@ -48,7 +48,7 @@ var require_package = __commonJS({
48
48
  },
49
49
  dependencies: {
50
50
  "@batijs/core": "workspace:*",
51
- "@compiled/react": "^0.16.8"
51
+ "@compiled/react": "^0.16.9"
52
52
  },
53
53
  files: [
54
54
  "dist/"
@@ -42,8 +42,8 @@ var require_package = __commonJS({
42
42
  },
43
43
  devDependencies: {
44
44
  "@batijs/compile": "workspace:^",
45
- "@typescript-eslint/eslint-plugin": "^6.19.0",
46
- "@typescript-eslint/parser": "^6.19.0",
45
+ "@typescript-eslint/eslint-plugin": "^6.19.1",
46
+ "@typescript-eslint/parser": "^6.19.1",
47
47
  eslint: "^8.56.0"
48
48
  },
49
49
  dependencies: {
@@ -44,14 +44,14 @@ var require_package = __commonJS({
44
44
  "@auth/core": "^0.22.0",
45
45
  "@batijs/compile": "workspace:*",
46
46
  "@batijs/trpc": "workspace:*",
47
- "@hattip/adapter-node": "^0.0.40",
47
+ "@hattip/adapter-node": "^0.0.41",
48
48
  "@trpc/server": "^10.45.0",
49
49
  "@types/express": "^4.17.21",
50
50
  "@types/node": "^18.19.3",
51
51
  express: "^4.18.2",
52
52
  telefunc: "^0.1.70",
53
53
  tsx: "^4.7.0",
54
- vike: "^0.4.159",
54
+ vike: "^0.4.160",
55
55
  "vike-authjs": "^0.1.4",
56
56
  vite: "^5.0.12"
57
57
  },
@@ -44,7 +44,7 @@ var require_package = __commonJS({
44
44
  "@auth/core": "^0.22.0",
45
45
  "@batijs/compile": "workspace:*",
46
46
  "@batijs/trpc": "workspace:^",
47
- "@hattip/polyfills": "^0.0.40",
47
+ "@hattip/polyfills": "^0.0.41",
48
48
  "@trpc/server": "^10.45.0",
49
49
  "@types/node": "^18.19.3",
50
50
  "@types/serve-static": "^1.15.5",
@@ -52,7 +52,7 @@ var require_package = __commonJS({
52
52
  "serve-static": "^1.15.0",
53
53
  telefunc: "^0.1.70",
54
54
  tsx: "^4.7.0",
55
- vike: "^0.4.159",
55
+ vike: "^0.4.160",
56
56
  "vike-authjs": "^0.1.4",
57
57
  vite: "^5.0.12"
58
58
  },
@@ -44,15 +44,15 @@ var require_package = __commonJS({
44
44
  "@auth/core": "^0.22.0",
45
45
  "@batijs/compile": "workspace:*",
46
46
  "@batijs/trpc": "workspace:^",
47
- "@hattip/adapter-node": "^0.0.40",
48
- "@hattip/core": "^0.0.40",
49
- "@hattip/router": "^0.0.40",
50
- "@hattip/vite": "^0.0.40",
47
+ "@hattip/adapter-node": "^0.0.41",
48
+ "@hattip/core": "^0.0.41",
49
+ "@hattip/router": "^0.0.41",
50
+ "@hattip/vite": "^0.0.41",
51
51
  "@trpc/server": "^10.45.0",
52
52
  "@types/node": "^18.19.3",
53
53
  hattip: "^0.0.33",
54
54
  telefunc: "^0.1.70",
55
- vike: "^0.4.159",
55
+ vike: "^0.4.160",
56
56
  "vike-authjs": "^0.1.4",
57
57
  vite: "^5.0.12"
58
58
  },
@@ -55,8 +55,8 @@ var require_package = __commonJS({
55
55
  "react-dom": "^18.2.0",
56
56
  tailwindcss: "^3.4.1",
57
57
  typescript: "^5.3.3",
58
- vike: "^0.4.159",
59
- "vike-react": "^0.4.2",
58
+ vike: "^0.4.160",
59
+ "vike-react": "^0.4.4",
60
60
  vite: "^5.0.12"
61
61
  },
62
62
  dependencies: {
@@ -1,69 +1,10 @@
1
+ import vikeReact from "vike-react";
1
2
  import Head from "../layouts/HeadDefault";
2
3
  import Layout from "../layouts/LayoutDefault";
3
4
  declare const _default: {
4
5
  Layout: typeof Layout;
5
6
  Head: typeof Head;
6
7
  title: string;
7
- extends: {
8
- onRenderHtml: "import:vike-react/renderer/onRenderHtml:onRenderHtml";
9
- onRenderClient: "import:vike-react/renderer/onRenderClient:onRenderClient";
10
- passToClient: string[];
11
- clientRouting: true;
12
- hydrationCanBeAborted: true;
13
- meta: {
14
- Head: {
15
- env: {
16
- server: true;
17
- };
18
- };
19
- Layout: {
20
- env: {
21
- server: true;
22
- client: true;
23
- };
24
- };
25
- title: {
26
- env: {
27
- server: true;
28
- client: true;
29
- };
30
- };
31
- favicon: {
32
- env: {
33
- server: true;
34
- client: true;
35
- };
36
- };
37
- lang: {
38
- env: {
39
- server: true;
40
- client: true;
41
- };
42
- };
43
- ssr: {
44
- env: {
45
- config: true;
46
- };
47
- effect: import("vike/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn").ConfigEffect;
48
- };
49
- stream: {
50
- env: {
51
- server: true;
52
- };
53
- };
54
- VikeReactQueryWrapper: {
55
- env: {
56
- client: true;
57
- server: true;
58
- };
59
- };
60
- Wrapper: {
61
- env: {
62
- client: true;
63
- server: true;
64
- };
65
- };
66
- };
67
- };
8
+ extends: typeof vikeReact;
68
9
  };
69
10
  export default _default;
@@ -12,7 +12,7 @@
12
12
  "author": "",
13
13
  "devDependencies": {
14
14
  "typescript": "^5.3.3",
15
- "vike": "^0.4.159",
15
+ "vike": "^0.4.160",
16
16
  "vite": "^5.0.12"
17
17
  },
18
18
  "dependencies": {}
@@ -45,13 +45,13 @@ var require_package = __commonJS({
45
45
  "@types/node": "^18.19.3",
46
46
  "cross-fetch": "^4.0.0",
47
47
  "eslint-plugin-solid": "^0.13.1",
48
- "solid-js": "^1.8.11",
48
+ "solid-js": "^1.8.12",
49
49
  tailwindcss: "^3.4.1",
50
50
  typescript: "^5.3.3",
51
- vike: "^0.4.159",
52
- "vike-solid": "^0.2.9",
51
+ vike: "^0.4.160",
52
+ "vike-solid": "^0.3.0",
53
53
  vite: "^5.0.12",
54
- "vite-plugin-solid": "^2.8.2"
54
+ "vite-plugin-solid": "^2.9.1"
55
55
  },
56
56
  dependencies: {
57
57
  "@batijs/core": "workspace:*"
@@ -95,26 +95,23 @@ var require_package = __commonJS({
95
95
  "./pages/star-wars/types": {
96
96
  types: "./dist/types/pages/star-wars/types.d.ts"
97
97
  },
98
- "./pages/star-wars/filterMovieData": {
99
- types: "./dist/types/pages/star-wars/filterMovieData.d.ts"
98
+ "./pages/star-wars/@id/+data": {
99
+ types: "./dist/types/pages/star-wars/@id/+data.d.ts"
100
100
  },
101
101
  "./pages/star-wars/@id/+Page": {
102
102
  types: "./dist/types/pages/star-wars/@id/+Page.d.ts"
103
103
  },
104
- "./pages/star-wars/@id/+onBeforeRender": {
105
- types: "./dist/types/pages/star-wars/@id/+onBeforeRender.d.ts"
104
+ "./pages/star-wars/@id/+title": {
105
+ types: "./dist/types/pages/star-wars/@id/+title.d.ts"
106
+ },
107
+ "./pages/star-wars/index/+data": {
108
+ types: "./dist/types/pages/star-wars/index/+data.d.ts"
106
109
  },
107
110
  "./pages/star-wars/index/+Page": {
108
111
  types: "./dist/types/pages/star-wars/index/+Page.d.ts"
109
112
  },
110
- "./pages/star-wars/index/getStarWarsMovies": {
111
- types: "./dist/types/pages/star-wars/index/getStarWarsMovies.d.ts"
112
- },
113
- "./pages/star-wars/index/+onBeforePrerenderStart": {
114
- types: "./dist/types/pages/star-wars/index/+onBeforePrerenderStart.d.ts"
115
- },
116
- "./pages/star-wars/index/+onBeforeRender": {
117
- types: "./dist/types/pages/star-wars/index/+onBeforeRender.d.ts"
113
+ "./pages/star-wars/index/+title": {
114
+ types: "./dist/types/pages/star-wars/index/+title.d.ts"
118
115
  }
119
116
  },
120
117
  typesVersions: {
@@ -149,26 +146,23 @@ var require_package = __commonJS({
149
146
  "pages/star-wars/types": [
150
147
  "./dist/types/pages/star-wars/types.d.ts"
151
148
  ],
152
- "pages/star-wars/filterMovieData": [
153
- "./dist/types/pages/star-wars/filterMovieData.d.ts"
149
+ "pages/star-wars/@id/+data": [
150
+ "./dist/types/pages/star-wars/@id/+data.d.ts"
154
151
  ],
155
152
  "pages/star-wars/@id/+Page": [
156
153
  "./dist/types/pages/star-wars/@id/+Page.d.ts"
157
154
  ],
158
- "pages/star-wars/@id/+onBeforeRender": [
159
- "./dist/types/pages/star-wars/@id/+onBeforeRender.d.ts"
155
+ "pages/star-wars/@id/+title": [
156
+ "./dist/types/pages/star-wars/@id/+title.d.ts"
157
+ ],
158
+ "pages/star-wars/index/+data": [
159
+ "./dist/types/pages/star-wars/index/+data.d.ts"
160
160
  ],
161
161
  "pages/star-wars/index/+Page": [
162
162
  "./dist/types/pages/star-wars/index/+Page.d.ts"
163
163
  ],
164
- "pages/star-wars/index/getStarWarsMovies": [
165
- "./dist/types/pages/star-wars/index/getStarWarsMovies.d.ts"
166
- ],
167
- "pages/star-wars/index/+onBeforePrerenderStart": [
168
- "./dist/types/pages/star-wars/index/+onBeforePrerenderStart.d.ts"
169
- ],
170
- "pages/star-wars/index/+onBeforeRender": [
171
- "./dist/types/pages/star-wars/index/+onBeforeRender.d.ts"
164
+ "pages/star-wars/index/+title": [
165
+ "./dist/types/pages/star-wars/index/+title.d.ts"
172
166
  ]
173
167
  }
174
168
  }
@@ -8,6 +8,8 @@ export default function HeadDefault() {
8
8
  if (BATI.has("plausible.io")) {
9
9
  return (
10
10
  <>
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <meta name="description" content="Demo showcasing Vike" />
11
13
  <link rel="icon" href={logoUrl} />
12
14
  {/* See https://plausible.io/docs/plausible-script */}
13
15
  {/* TODO: update data-domain */}
@@ -18,6 +20,7 @@ export default function HeadDefault() {
18
20
  return (
19
21
  <>
20
22
  <meta name="viewport" content="width=device-width, initial-scale=1" />
23
+ <meta name="description" content="Demo showcasing Vike" />
21
24
  <script
22
25
  async
23
26
  src={`https://www.googletagmanager.com/gtag/js?id=${import.meta.env.PUBLIC_ENV__GOOGLE_ANALYTICS}`}
@@ -34,6 +37,8 @@ export default function HeadDefault() {
34
37
  } else {
35
38
  return (
36
39
  <>
40
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
41
+ <meta name="description" content="Demo showcasing Vike" />
37
42
  <link rel="icon" href={logoUrl} />
38
43
  </>
39
44
  );
@@ -82,7 +82,7 @@ function Logo() {
82
82
  }}
83
83
  >
84
84
  <a href="/">
85
- <img src={logoUrl} height={64} width={64} />
85
+ <img src={logoUrl} height={64} width={64} alt="logo" />
86
86
  </a>
87
87
  </div>
88
88
  );
@@ -1,7 +1,7 @@
1
1
  import vikeSolid from "vike-solid";
2
- import Layout from "../layouts/LayoutDefault";
3
- import Head from "../layouts/HeadDefault";
4
2
  import type { Config } from "vike/types";
3
+ import Head from "../layouts/HeadDefault";
4
+ import Layout from "../layouts/LayoutDefault";
5
5
 
6
6
  // Default config (can be overridden by pages)
7
7
  export default {
@@ -9,7 +9,5 @@ export default {
9
9
  Head,
10
10
  // <title>
11
11
  title: "My Vike App",
12
- // <meta name="description">
13
- description: "Demo showcasing Vike",
14
12
  extends: vikeSolid,
15
13
  } satisfies Config;
@@ -1,14 +1,16 @@
1
- import type { MovieDetails } from "../types";
1
+ import { useData } from "vike-solid/useData";
2
+ import type { Data } from "./+data";
2
3
 
3
- export default function Page(props: { movie: MovieDetails }) {
4
+ export default function Page() {
5
+ const movie = useData<Data>();
4
6
  return (
5
7
  <>
6
- <h1>{props.movie.title}</h1>
7
- Release Date: {props.movie.release_date}
8
+ <h1>{movie.title}</h1>
9
+ Release Date: {movie.release_date}
8
10
  <br />
9
- Director: {props.movie.director}
11
+ Director: {movie.director}
10
12
  <br />
11
- Producer: {props.movie.producer}
13
+ Producer: {movie.producer}
12
14
  </>
13
15
  );
14
16
  }
@@ -0,0 +1,22 @@
1
+ // https://vike.dev/data
2
+
3
+ import fetch from "cross-fetch";
4
+ import type { PageContextServer } from "vike/types";
5
+ import type { MovieDetails } from "../types";
6
+
7
+ export type Data = Awaited<ReturnType<typeof data>>;
8
+
9
+ export const data = async (pageContext: PageContextServer) => {
10
+ const response = await fetch(`https://brillout.github.io/star-wars/api/films/${pageContext.routeParams.id}.json`);
11
+ let movie = (await response.json()) as MovieDetails;
12
+ // We remove data we don't need because the data is passed to
13
+ // the client; we should minimize what is sent over the network.
14
+ movie = minimize(movie);
15
+ return movie;
16
+ };
17
+
18
+ function minimize(movie: MovieDetails): MovieDetails {
19
+ const { id, title, release_date, director, producer } = movie;
20
+ movie = { id, title, release_date, director, producer };
21
+ return movie;
22
+ }
@@ -0,0 +1,7 @@
1
+ import type { PageContext } from "vike/types";
2
+ import type { Data } from "./+data";
3
+
4
+ export function title(pageContext: PageContext<Data>) {
5
+ const movie = pageContext.data;
6
+ return movie.title;
7
+ }
@@ -1,12 +1,14 @@
1
1
  import { For } from "solid-js";
2
- import type { Movie } from "../types";
2
+ import { useData } from "vike-solid/useData";
3
+ import type { Data } from "./+data";
3
4
 
4
- export default function Page(props: { movies: Movie[] }) {
5
+ export default function Page() {
6
+ const movies = useData<Data>();
5
7
  return (
6
8
  <>
7
9
  <h1>Star Wars Movies</h1>
8
10
  <ol>
9
- <For each={props.movies}>
11
+ <For each={movies}>
10
12
  {(movie) => (
11
13
  <li>
12
14
  <a href={`/star-wars/${movie.id}`}>{movie.title}</a> ({movie.release_date})
@@ -15,7 +17,7 @@ export default function Page(props: { movies: Movie[] }) {
15
17
  </For>
16
18
  </ol>
17
19
  <p>
18
- Source: <a href="https://star-wars.brillout.com">star-wars.brillout.com</a>.
20
+ Source: <a href="https://brillout.github.io/star-wars">brillout.github.io/star-wars</a>.
19
21
  </p>
20
22
  </>
21
23
  );
@@ -0,0 +1,22 @@
1
+ // https://vike.dev/data
2
+
3
+ import fetch from "cross-fetch";
4
+ import type { Movie, MovieDetails } from "../types";
5
+
6
+ export type Data = Awaited<ReturnType<typeof data>>;
7
+
8
+ export const data = async () => {
9
+ const response = await fetch("https://brillout.github.io/star-wars/api/films.json");
10
+ const moviesData = (await response.json()) as MovieDetails[];
11
+ // We remove data we don't need because the data is passed to the client; we should
12
+ // minimize what is sent over the network.
13
+ const movies = minimize(moviesData);
14
+ return movies;
15
+ };
16
+
17
+ function minimize(movies: MovieDetails[]): Movie[] {
18
+ return movies.map((movie) => {
19
+ const { title, release_date, id } = movie;
20
+ return { title, release_date, id };
21
+ });
22
+ }
@@ -0,0 +1,7 @@
1
+ import type { PageContext } from "vike/types";
2
+ import type { Data } from "./+data";
3
+
4
+ export function title(pageContext: PageContext<Data>) {
5
+ const movies = pageContext.data;
6
+ return `${movies.length} Star Wars Movies`;
7
+ }
@@ -4,10 +4,7 @@ export type Movie = {
4
4
  release_date: string;
5
5
  };
6
6
 
7
- export type MovieDetails = {
8
- id: string;
9
- title: string;
10
- release_date: string;
7
+ export type MovieDetails = Movie & {
11
8
  director: string;
12
9
  producer: string;
13
10
  };
@@ -1,14 +1,12 @@
1
- import Layout from "../layouts/LayoutDefault";
2
1
  import Head from "../layouts/HeadDefault";
2
+ import Layout from "../layouts/LayoutDefault";
3
3
  declare const _default: {
4
4
  Layout: typeof Layout;
5
5
  Head: typeof Head;
6
6
  title: string;
7
- description: string;
8
7
  extends: {
9
8
  onRenderHtml: "import:vike-solid/renderer/onRenderHtml:onRenderHtml";
10
9
  onRenderClient: "import:vike-solid/renderer/onRenderClient:onRenderClient";
11
- passToClient: string[];
12
10
  clientRouting: true;
13
11
  hydrationCanBeAborted: true;
14
12
  meta: {
@@ -29,14 +27,10 @@ declare const _default: {
29
27
  client: true;
30
28
  };
31
29
  };
32
- description: {
33
- env: {
34
- server: true;
35
- };
36
- };
37
30
  favicon: {
38
31
  env: {
39
32
  server: true;
33
+ client: true;
40
34
  };
41
35
  };
42
36
  lang: {
@@ -1,4 +1 @@
1
- import type { MovieDetails } from "../types";
2
- export default function Page(props: {
3
- movie: MovieDetails;
4
- }): import("solid-js").JSX.Element;
1
+ export default function Page(): import("solid-js").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import type { PageContextServer } from "vike/types";
2
+ import type { MovieDetails } from "../types";
3
+ export type Data = Awaited<ReturnType<typeof data>>;
4
+ export declare const data: (pageContext: PageContextServer) => Promise<MovieDetails>;
@@ -0,0 +1,3 @@
1
+ import type { PageContext } from "vike/types";
2
+ import type { Data } from "./+data";
3
+ export declare function title(pageContext: PageContext<Data>): string;
@@ -1,4 +1 @@
1
- import type { Movie } from "../types";
2
- export default function Page(props: {
3
- movies: Movie[];
4
- }): import("solid-js").JSX.Element;
1
+ export default function Page(): import("solid-js").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Movie } from "../types";
2
+ export type Data = Awaited<ReturnType<typeof data>>;
3
+ export declare const data: () => Promise<Movie[]>;
@@ -0,0 +1,3 @@
1
+ import type { PageContext } from "vike/types";
2
+ import type { Data } from "./+data";
3
+ export declare function title(pageContext: PageContext<Data>): string;
@@ -3,10 +3,7 @@ export type Movie = {
3
3
  title: string;
4
4
  release_date: string;
5
5
  };
6
- export type MovieDetails = {
7
- id: string;
8
- title: string;
9
- release_date: string;
6
+ export type MovieDetails = Movie & {
10
7
  director: string;
11
8
  producer: string;
12
9
  };
@@ -47,7 +47,7 @@ var require_package = __commonJS({
47
47
  daisyui: "^4.6.0",
48
48
  postcss: "^8.4.33",
49
49
  tailwindcss: "^3.4.1",
50
- vike: "^0.4.159",
50
+ vike: "^0.4.160",
51
51
  vite: "^5.0.12"
52
52
  },
53
53
  dependencies: {
@@ -44,7 +44,7 @@ var require_package = __commonJS({
44
44
  "@batijs/compile": "workspace:*",
45
45
  "@types/node": "^18.19.3",
46
46
  telefunc: "^0.1.70",
47
- vike: "^0.4.159",
47
+ vike: "^0.4.160",
48
48
  vite: "^5.0.12"
49
49
  },
50
50
  dependencies: {
@@ -44,7 +44,7 @@ var require_package = __commonJS({
44
44
  "@batijs/compile": "workspace:*",
45
45
  "@types/node": "^18.19.3",
46
46
  "@vite-plugin-vercel/vike": "^3.0.1",
47
- vike: "^0.4.159",
47
+ vike: "^0.4.160",
48
48
  vite: "^5.0.12",
49
49
  "vite-plugin-vercel": "^3.0.1"
50
50
  },
@@ -51,7 +51,7 @@ var require_package = __commonJS({
51
51
  tailwindcss: "^3.4.1",
52
52
  typescript: "^5.3.3",
53
53
  "unplugin-vue-markdown": "^0.25.2",
54
- vike: "^0.4.159",
54
+ vike: "^0.4.160",
55
55
  "vike-vue": "^0.6.0",
56
56
  vite: "^5.0.12",
57
57
  vue: "^3.4.15",
package/dist/index.js CHANGED
@@ -584,7 +584,7 @@ Please report this issue to https://github.com/magne4000/bati`
584
584
  // package.json
585
585
  var package_default = {
586
586
  name: "@batijs/cli",
587
- version: "0.0.149",
587
+ version: "0.0.150",
588
588
  type: "module",
589
589
  scripts: {
590
590
  "check-types": "tsc --noEmit",
@@ -604,7 +604,7 @@ var package_default = {
604
604
  "@types/which": "^3.0.3",
605
605
  citty: "^0.1.5",
606
606
  colorette: "^2.0.20",
607
- esbuild: "^0.19.11",
607
+ esbuild: "^0.19.12",
608
608
  execa: "^8.0.1",
609
609
  rimraf: "^5.0.5",
610
610
  sift: "^17.0.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@batijs/cli",
3
- "version": "0.0.149",
3
+ "version": "0.0.150",
4
4
  "type": "module",
5
5
  "keywords": [],
6
6
  "description": "Next-gen scaffolder. Get started with fully-functional apps, and choose any tool you want",
@@ -12,19 +12,19 @@
12
12
  "@types/which": "^3.0.3",
13
13
  "citty": "^0.1.5",
14
14
  "colorette": "^2.0.20",
15
- "esbuild": "^0.19.11",
15
+ "esbuild": "^0.19.12",
16
16
  "execa": "^8.0.1",
17
17
  "rimraf": "^5.0.5",
18
18
  "sift": "^17.0.1",
19
19
  "tsup": "^8.0.1",
20
20
  "typescript": "^5.3.3",
21
21
  "vite": "^5.0.12",
22
- "@batijs/compile": "0.0.149",
23
- "@batijs/build": "0.0.149"
22
+ "@batijs/compile": "0.0.150",
23
+ "@batijs/build": "0.0.150"
24
24
  },
25
25
  "dependencies": {
26
- "@batijs/core": "0.0.149",
27
- "@batijs/features": "0.0.149"
26
+ "@batijs/core": "0.0.150",
27
+ "@batijs/features": "0.0.150"
28
28
  },
29
29
  "bin": "./dist/index.js",
30
30
  "exports": {
@@ -1,27 +0,0 @@
1
- export default onBeforeRender;
2
-
3
- import fetch from "cross-fetch";
4
- import type { PageContextBuiltInServer } from "vike/types";
5
- import { filterMovieData } from "../filterMovieData";
6
- import type { MovieDetails } from "../types";
7
-
8
- async function onBeforeRender(pageContext: PageContextBuiltInServer) {
9
- const response = await fetch(`https://star-wars.brillout.com/api/films/${pageContext.routeParams.id}.json`);
10
- let movie = (await response.json()) as MovieDetails;
11
-
12
- // We remove data we don't need because we pass `pageContext.movie` to
13
- // the client; we want to minimize what is sent over the network.
14
- movie = filterMovieData(movie);
15
-
16
- const { title } = movie;
17
-
18
- return {
19
- pageContext: {
20
- pageProps: {
21
- movie,
22
- },
23
- // The page's <title>
24
- title,
25
- },
26
- };
27
- }
@@ -1,11 +0,0 @@
1
- import type { MovieDetails } from "./types";
2
-
3
- export { filterMovieData };
4
-
5
- function filterMovieData(
6
- movie: MovieDetails & Record<string, unknown>
7
- ): MovieDetails {
8
- const { id, title, release_date, director, producer } = movie;
9
- movie = { id, title, release_date, director, producer };
10
- return movie;
11
- }
@@ -1,40 +0,0 @@
1
- // https://vike.dev/onBeforePrerenderStart
2
- export default onBeforePrerenderStart;
3
-
4
- import { filterMovieData } from "../filterMovieData";
5
- import { filterMoviesData, getStarWarsMovies, getTitle } from "./getStarWarsMovies.js";
6
-
7
- async function onBeforePrerenderStart() {
8
- const movies = await getStarWarsMovies();
9
-
10
- return [
11
- {
12
- url: "/star-wars",
13
- // We already provide `pageContext` here so that `vike`
14
- // will *not* have to call the `onBeforeRender()` hook defined
15
- // above in this file.
16
- pageContext: {
17
- pageProps: {
18
- movies: filterMoviesData(movies),
19
- },
20
- title: getTitle(movies),
21
- },
22
- },
23
- ...movies.map((movie) => {
24
- const url = `/star-wars/${movie.id}`;
25
- return {
26
- url,
27
- // Note that we can also provide the `pageContext` of other pages.
28
- // This means that `vike` will not call any
29
- // `onBeforeRender()` hook and the Star Wars API will be called
30
- // only once (in this `prerender()` hook).
31
- pageContext: {
32
- pageProps: {
33
- movie: filterMovieData(movie),
34
- },
35
- title: movie.title,
36
- },
37
- };
38
- }),
39
- ];
40
- }
@@ -1,81 +0,0 @@
1
- import fetch from "cross-fetch";
2
- //import { filterMovieData } from '../filterMovieData'
3
- import type { Movie, MovieDetails } from "../types";
4
-
5
- export default onBeforeRender;
6
-
7
- // export { prerender }
8
-
9
- async function onBeforeRender() {
10
- const movies = await getStarWarsMovies();
11
- return {
12
- pageContext: {
13
- pageProps: {
14
- // We remove data we don't need because we pass `pageContext.movies` to
15
- // the client; we want to minimize what is sent over the network.
16
- movies: filterMoviesData(movies),
17
- },
18
- // The page's <title>
19
- title: getTitle(movies),
20
- },
21
- };
22
- }
23
-
24
- async function getStarWarsMovies(): Promise<MovieDetails[]> {
25
- const response = await fetch("https://star-wars.brillout.com/api/films.json");
26
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- let movies: MovieDetails[] = ((await response.json()) as any).results;
28
- movies = movies.map((movie: MovieDetails, i: number) => ({
29
- ...movie,
30
- id: String(i + 1),
31
- }));
32
- return movies;
33
- }
34
-
35
- function filterMoviesData(movies: MovieDetails[]): Movie[] {
36
- return movies.map((movie: MovieDetails) => {
37
- const { title, release_date, id } = movie;
38
- return { title, release_date, id };
39
- });
40
- }
41
-
42
- /*
43
- async function prerender() {
44
- const movies = await getStarWarsMovies()
45
- return [
46
- {
47
- url: '/star-wars',
48
- // We already provide `pageContext` here so that Vike
49
- // will *not* have to call the `onBeforeRender()` hook defined
50
- // above in this file.
51
- pageContext: {
52
- pageProps: {
53
- movies: filterMoviesData(movies)
54
- },
55
- documentProps: { title: getTitle(movies) }
56
- }
57
- },
58
- ...movies.map((movie) => {
59
- const url = `/star-wars/${movie.id}`
60
- return {
61
- url,
62
- // Note that we can also provide the `pageContext` of other pages.
63
- // This means that Vike will not call any
64
- // `onBeforeRender()` hook and the Star Wars API will be called
65
- // only once (in this `prerender()` hook).
66
- pageContext: {
67
- pageProps: {
68
- movie: filterMovieData(movie)
69
- },
70
- documentProps: { title: movie.title }
71
- }
72
- }
73
- })
74
- ]
75
- }
76
- */
77
-
78
- function getTitle(movies: Movie[] | MovieDetails[]): string {
79
- const title = `${movies.length} Star Wars Movies`;
80
- return title;
81
- }
@@ -1,29 +0,0 @@
1
- export { getStarWarsMovies };
2
- export { filterMoviesData };
3
- export { getTitle };
4
-
5
- import fetch from "cross-fetch";
6
- import type { Movie, MovieDetails } from "../types";
7
-
8
- async function getStarWarsMovies(): Promise<MovieDetails[]> {
9
- const response = await fetch("https://star-wars.brillout.com/api/films.json");
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- let movies: MovieDetails[] = ((await response.json()) as any).results;
12
- movies = movies.map((movie: MovieDetails, i: number) => ({
13
- ...movie,
14
- id: String(i + 1),
15
- }));
16
- return movies;
17
- }
18
-
19
- function filterMoviesData(movies: MovieDetails[]): Movie[] {
20
- return movies.map((movie: MovieDetails) => {
21
- const { title, release_date, id } = movie;
22
- return { title, release_date, id };
23
- });
24
- }
25
-
26
- function getTitle(movies: Movie[] | MovieDetails[]): string {
27
- const title = `${movies.length} Star Wars Movies`;
28
- return title;
29
- }
@@ -1,11 +0,0 @@
1
- export default onBeforeRender;
2
- import type { PageContextBuiltInServer } from "vike/types";
3
- import type { MovieDetails } from "../types";
4
- declare function onBeforeRender(pageContext: PageContextBuiltInServer): Promise<{
5
- pageContext: {
6
- pageProps: {
7
- movie: MovieDetails;
8
- };
9
- title: string;
10
- };
11
- }>;
@@ -1,3 +0,0 @@
1
- import type { MovieDetails } from "./types";
2
- export { filterMovieData };
3
- declare function filterMovieData(movie: MovieDetails & Record<string, unknown>): MovieDetails;
@@ -1,18 +0,0 @@
1
- export default onBeforePrerenderStart;
2
- declare function onBeforePrerenderStart(): Promise<({
3
- url: string;
4
- pageContext: {
5
- pageProps: {
6
- movie: import("../types").MovieDetails;
7
- };
8
- title: string;
9
- };
10
- } | {
11
- url: string;
12
- pageContext: {
13
- pageProps: {
14
- movies: import("../types").Movie[];
15
- };
16
- title: string;
17
- };
18
- })[]>;
@@ -1,10 +0,0 @@
1
- import type { Movie } from "../types";
2
- export default onBeforeRender;
3
- declare function onBeforeRender(): Promise<{
4
- pageContext: {
5
- pageProps: {
6
- movies: Movie[];
7
- };
8
- title: string;
9
- };
10
- }>;
@@ -1,7 +0,0 @@
1
- export { getStarWarsMovies };
2
- export { filterMoviesData };
3
- export { getTitle };
4
- import type { Movie, MovieDetails } from "../types";
5
- declare function getStarWarsMovies(): Promise<MovieDetails[]>;
6
- declare function filterMoviesData(movies: MovieDetails[]): Movie[];
7
- declare function getTitle(movies: Movie[] | MovieDetails[]): string;