@batijs/cli 0.0.145 → 0.0.149

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 (46) hide show
  1. package/dist/boilerplates/@batijs/compiled/files/$package.json.js +1 -1
  2. package/dist/boilerplates/@batijs/express/files/$package.json.js +1 -1
  3. package/dist/boilerplates/@batijs/h3/files/$package.json.js +1 -1
  4. package/dist/boilerplates/@batijs/hattip/files/$package.json.js +1 -1
  5. package/dist/boilerplates/@batijs/react/files/$package.json.js +1 -1
  6. package/dist/boilerplates/@batijs/solid/files/$package.json.js +1 -1
  7. package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +1 -1
  8. package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +1 -1
  9. package/dist/boilerplates/@batijs/trpc/files/$package.json.js +1 -1
  10. package/dist/boilerplates/@batijs/vercel/files/$package.json.js +1 -1
  11. package/dist/boilerplates/@batijs/vue/files/$package.json.js +20 -14
  12. package/dist/boilerplates/@batijs/vue/files/layouts/HeadDefault.vue +5 -1
  13. package/dist/boilerplates/@batijs/vue/files/pages/+config.h.ts +2 -7
  14. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/@id/+Page.vue +6 -8
  15. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/@id/+data.ts +22 -0
  16. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/@id/+title.ts +7 -0
  17. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+Page.vue +6 -11
  18. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+data.ts +22 -0
  19. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+title.ts +7 -0
  20. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/types.ts +1 -4
  21. package/dist/boilerplates/@batijs/vue/types/pages/+config.h.d.ts +4 -10
  22. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/@id/+data.d.ts +4 -0
  23. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/@id/+title.d.ts +3 -0
  24. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/index/+data.d.ts +3 -0
  25. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/index/+title.d.ts +3 -0
  26. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/types.d.ts +1 -4
  27. package/dist/boilerplates/@batijs/vue-telefunc/files/components/TodoList.vue +4 -2
  28. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+Page.vue +3 -2
  29. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+data.ts +9 -0
  30. package/dist/boilerplates/@batijs/vue-telefunc/types/pages/todo/+data.d.ts +2 -0
  31. package/dist/boilerplates/@batijs/vue-trpc/files/components/TodoListTrpc.vue +4 -2
  32. package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+Page.vue +3 -2
  33. package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+data.ts +9 -0
  34. package/dist/boilerplates/@batijs/vue-trpc/types/pages/todo-trpc/+data.d.ts +2 -0
  35. package/dist/index.js +8 -3
  36. package/package.json +6 -6
  37. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/@id/+onBeforeRender.ts +0 -27
  38. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/filterMovieData.ts +0 -11
  39. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+onBeforeRender.ts +0 -81
  40. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/@id/+onBeforeRender.d.ts +0 -11
  41. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/filterMovieData.d.ts +0 -3
  42. package/dist/boilerplates/@batijs/vue/types/pages/star-wars/index/+onBeforeRender.d.ts +0 -10
  43. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+onBeforeRender.ts +0 -15
  44. package/dist/boilerplates/@batijs/vue-telefunc/types/pages/todo/+onBeforeRender.d.ts +0 -8
  45. package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+onBeforeRender.ts +0 -15
  46. package/dist/boilerplates/@batijs/vue-trpc/types/pages/todo-trpc/+onBeforeRender.d.ts +0 -8
@@ -43,7 +43,7 @@ var require_package = __commonJS({
43
43
  devDependencies: {
44
44
  "@batijs/compile": "workspace:*",
45
45
  "@types/node": "^18.19.3",
46
- vite: "^5.0.11",
46
+ vite: "^5.0.12",
47
47
  "vite-plugin-compiled-react": "^1.1.1"
48
48
  },
49
49
  dependencies: {
@@ -53,7 +53,7 @@ var require_package = __commonJS({
53
53
  tsx: "^4.7.0",
54
54
  vike: "^0.4.159",
55
55
  "vike-authjs": "^0.1.4",
56
- vite: "^5.0.11"
56
+ vite: "^5.0.12"
57
57
  },
58
58
  dependencies: {
59
59
  "@batijs/core": "workspace:*"
@@ -54,7 +54,7 @@ var require_package = __commonJS({
54
54
  tsx: "^4.7.0",
55
55
  vike: "^0.4.159",
56
56
  "vike-authjs": "^0.1.4",
57
- vite: "^5.0.11"
57
+ vite: "^5.0.12"
58
58
  },
59
59
  dependencies: {
60
60
  "@batijs/core": "workspace:*"
@@ -54,7 +54,7 @@ var require_package = __commonJS({
54
54
  telefunc: "^0.1.70",
55
55
  vike: "^0.4.159",
56
56
  "vike-authjs": "^0.1.4",
57
- vite: "^5.0.11"
57
+ vite: "^5.0.12"
58
58
  },
59
59
  dependencies: {
60
60
  "@batijs/core": "workspace:*"
@@ -57,7 +57,7 @@ var require_package = __commonJS({
57
57
  typescript: "^5.3.3",
58
58
  vike: "^0.4.159",
59
59
  "vike-react": "^0.4.2",
60
- vite: "^5.0.11"
60
+ vite: "^5.0.12"
61
61
  },
62
62
  dependencies: {
63
63
  "@batijs/core": "workspace:*"
@@ -50,7 +50,7 @@ var require_package = __commonJS({
50
50
  typescript: "^5.3.3",
51
51
  vike: "^0.4.159",
52
52
  "vike-solid": "^0.2.9",
53
- vite: "^5.0.11",
53
+ vite: "^5.0.12",
54
54
  "vite-plugin-solid": "^2.8.2"
55
55
  },
56
56
  dependencies: {
@@ -48,7 +48,7 @@ var require_package = __commonJS({
48
48
  postcss: "^8.4.33",
49
49
  tailwindcss: "^3.4.1",
50
50
  vike: "^0.4.159",
51
- vite: "^5.0.11"
51
+ vite: "^5.0.12"
52
52
  },
53
53
  dependencies: {
54
54
  "@batijs/core": "workspace:*"
@@ -45,7 +45,7 @@ var require_package = __commonJS({
45
45
  "@types/node": "^18.19.3",
46
46
  telefunc: "^0.1.70",
47
47
  vike: "^0.4.159",
48
- vite: "^5.0.11"
48
+ vite: "^5.0.12"
49
49
  },
50
50
  dependencies: {
51
51
  "@batijs/core": "workspace:*"
@@ -46,7 +46,7 @@ var require_package = __commonJS({
46
46
  "@trpc/client": "^10.45.0",
47
47
  "@trpc/server": "^10.45.0",
48
48
  "@types/node": "^18.19.3",
49
- vite: "^5.0.11"
49
+ vite: "^5.0.12"
50
50
  },
51
51
  dependencies: {
52
52
  "@batijs/core": "workspace:*"
@@ -45,7 +45,7 @@ var require_package = __commonJS({
45
45
  "@types/node": "^18.19.3",
46
46
  "@vite-plugin-vercel/vike": "^3.0.1",
47
47
  vike: "^0.4.159",
48
- vite: "^5.0.11",
48
+ vite: "^5.0.12",
49
49
  "vite-plugin-vercel": "^3.0.1"
50
50
  },
51
51
  dependencies: {
@@ -52,8 +52,8 @@ var require_package = __commonJS({
52
52
  typescript: "^5.3.3",
53
53
  "unplugin-vue-markdown": "^0.25.2",
54
54
  vike: "^0.4.159",
55
- "vike-vue": "^0.5.4",
56
- vite: "^5.0.11",
55
+ "vike-vue": "^0.6.0",
56
+ vite: "^5.0.12",
57
57
  vue: "^3.4.15",
58
58
  "vue-gtag": "^2.0.1"
59
59
  },
@@ -84,14 +84,17 @@ var require_package = __commonJS({
84
84
  "./pages/star-wars/types": {
85
85
  types: "./dist/types/pages/star-wars/types.d.ts"
86
86
  },
87
- "./pages/star-wars/filterMovieData": {
88
- types: "./dist/types/pages/star-wars/filterMovieData.d.ts"
87
+ "./pages/star-wars/@id/+data": {
88
+ types: "./dist/types/pages/star-wars/@id/+data.d.ts"
89
89
  },
90
- "./pages/star-wars/@id/+onBeforeRender": {
91
- types: "./dist/types/pages/star-wars/@id/+onBeforeRender.d.ts"
90
+ "./pages/star-wars/@id/+title": {
91
+ types: "./dist/types/pages/star-wars/@id/+title.d.ts"
92
92
  },
93
- "./pages/star-wars/index/+onBeforeRender": {
94
- types: "./dist/types/pages/star-wars/index/+onBeforeRender.d.ts"
93
+ "./pages/star-wars/index/+data": {
94
+ types: "./dist/types/pages/star-wars/index/+data.d.ts"
95
+ },
96
+ "./pages/star-wars/index/+title": {
97
+ types: "./dist/types/pages/star-wars/index/+title.d.ts"
95
98
  }
96
99
  },
97
100
  typesVersions: {
@@ -111,14 +114,17 @@ var require_package = __commonJS({
111
114
  "pages/star-wars/types": [
112
115
  "./dist/types/pages/star-wars/types.d.ts"
113
116
  ],
114
- "pages/star-wars/filterMovieData": [
115
- "./dist/types/pages/star-wars/filterMovieData.d.ts"
117
+ "pages/star-wars/@id/+data": [
118
+ "./dist/types/pages/star-wars/@id/+data.d.ts"
119
+ ],
120
+ "pages/star-wars/@id/+title": [
121
+ "./dist/types/pages/star-wars/@id/+title.d.ts"
116
122
  ],
117
- "pages/star-wars/@id/+onBeforeRender": [
118
- "./dist/types/pages/star-wars/@id/+onBeforeRender.d.ts"
123
+ "pages/star-wars/index/+data": [
124
+ "./dist/types/pages/star-wars/index/+data.d.ts"
119
125
  ],
120
- "pages/star-wars/index/+onBeforeRender": [
121
- "./dist/types/pages/star-wars/index/+onBeforeRender.d.ts"
126
+ "pages/star-wars/index/+title": [
127
+ "./dist/types/pages/star-wars/index/+title.d.ts"
122
128
  ]
123
129
  }
124
130
  }
@@ -2,6 +2,8 @@
2
2
 
3
3
  <template>
4
4
  <meta name="viewport" content="width=device-width, initial-scale=1" />
5
+ <meta name="description" content="Demo showcasing Vike" />
6
+ <link rel="icon" :href="logoUrl" />
5
7
 
6
8
  <!-- BATI.has("plausible.io") -->
7
9
  <!-- See https://plausible.io/docs/plausible-script -->
@@ -9,4 +11,6 @@
9
11
  <component :is="'script'" defer data-domain="yourdomain.com" src="https://plausible.io/js/script.js" />
10
12
  </template>
11
13
 
12
- <script setup lang="ts"></script>
14
+ <script setup lang="ts">
15
+ import logoUrl from "../assets/logo.svg";
16
+ </script>
@@ -1,8 +1,7 @@
1
+ import vikeVue from "vike-vue";
1
2
  import type { Config } from "vike/types";
2
- import Layout from "../layouts/LayoutDefault.vue";
3
3
  import Head from "../layouts/HeadDefault.vue";
4
- import logoUrl from "../assets/logo.svg";
5
- import vikeVue from "vike-vue";
4
+ import Layout from "../layouts/LayoutDefault.vue";
6
5
 
7
6
  // Default config (can be overridden by pages)
8
7
  export default {
@@ -10,9 +9,5 @@ export default {
10
9
  Head,
11
10
  // <title>
12
11
  title: "My Vike App",
13
- // <meta name="description">
14
- description: "Demo showcasing Vike",
15
- // <link rel="icon" href="${favicon}" />
16
- favicon: logoUrl,
17
12
  extends: vikeVue,
18
13
  } satisfies Config;
@@ -1,17 +1,15 @@
1
1
  <template>
2
2
  <h1>{{ movie.title }}</h1>
3
3
  Release Date: {{ movie.release_date }}
4
- <br>
4
+ <br />
5
5
  Director: {{ movie.director }}
6
- <br>
6
+ <br />
7
7
  Producer: {{ movie.producer }}
8
8
  </template>
9
9
 
10
10
  <script lang="ts" setup>
11
- defineProps({
12
- movie: {
13
- type: Object,
14
- required: true,
15
- },
16
- })
11
+ import { useData } from "vike-vue/useData";
12
+ import type { Data } from "./+data";
13
+
14
+ const movie = useData<Data>();
17
15
  </script>
@@ -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,21 +1,16 @@
1
1
  <template>
2
2
  <h1>Star Wars Movies</h1>
3
3
  <ol>
4
- <li
5
- v-for="item in movies"
6
- :key="item.id"
7
- >
4
+ <li v-for="item in movies" :key="item.id">
8
5
  <a :href="'/star-wars/' + item.id">{{ item.title }}</a> ({{ item.release_date }})
9
6
  </li>
10
7
  </ol>
11
- <p>Source: <a href="https://star-wars.brillout.com">star-wars.brillout.com</a>.</p>
8
+ <p>Source: <a href="https://brillout.github.io/star-wars">brillout.github.io/star-wars</a>.</p>
12
9
  </template>
13
10
 
14
11
  <script lang="ts" setup>
15
- defineProps({
16
- movies: {
17
- type: Array,
18
- required: true,
19
- },
20
- })
12
+ import { useData } from "vike-vue/useData";
13
+ import type { Data } from "./+data";
14
+
15
+ const movies = useData<Data>();
21
16
  </script>
@@ -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,10 +1,8 @@
1
- import Layout from "../layouts/LayoutDefault.vue";
1
+ import Head from "../layouts/HeadDefault.vue";
2
2
  declare const _default: {
3
- Layout: typeof Layout;
4
- Head: typeof Layout;
3
+ Layout: typeof Head;
4
+ Head: typeof Head;
5
5
  title: string;
6
- description: string;
7
- favicon: string;
8
6
  extends: {
9
7
  onRenderHtml: "import:vike-vue/renderer/onRenderHtml:onRenderHtml";
10
8
  onRenderClient: "import:vike-vue/renderer/onRenderClient:onRenderClient";
@@ -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: {
@@ -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;
@@ -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
  };
@@ -13,12 +13,14 @@
13
13
  </template>
14
14
 
15
15
  <script lang="ts" setup>
16
- import { ref, useAttrs } from "vue";
16
+ import { ref, useAttrs, type Ref } from "vue";
17
17
  import { onNewTodo } from "./TodoList.telefunc.js";
18
18
 
19
+ type TodoItem = { text: string };
20
+
19
21
  const attrs = useAttrs();
20
22
 
21
- const todoItems = ref(attrs["todo-items-initial"]);
23
+ const todoItems = ref(attrs["todo-items-initial"]) as Ref<TodoItem[]>;
22
24
  const draft = ref("");
23
25
 
24
26
  const submitDraft = async () => {
@@ -6,9 +6,10 @@
6
6
  </template>
7
7
 
8
8
  <script lang="ts" setup>
9
- import { useAttrs } from "vue";
9
+ import { useData } from "vike-vue/useData";
10
+ import type { Data } from "./+data";
10
11
 
11
- const { todoItemsInitial } = useAttrs();
12
+ const todoItemsInitial = useData<Data>();
12
13
  </script>
13
14
 
14
15
  <script lang="ts">
@@ -0,0 +1,9 @@
1
+ // https://vike.dev/data
2
+ import { todoItems } from "@batijs/shared-db/database/todoItems";
3
+
4
+ export type Data = ReturnType<typeof data>;
5
+
6
+ export default function data() {
7
+ const todoItemsInitial = todoItems;
8
+ return todoItemsInitial;
9
+ }
@@ -0,0 +1,2 @@
1
+ export type Data = ReturnType<typeof data>;
2
+ export default function data(): import("@batijs/shared-db/database/todoItems").TodoItem[];
@@ -14,11 +14,13 @@
14
14
 
15
15
  <script lang="ts" setup>
16
16
  import { trpc } from "@batijs/trpc/trpc/client";
17
- import { ref, useAttrs } from "vue";
17
+ import { ref, useAttrs, type Ref } from "vue";
18
+
19
+ type TodoItem = { text: string };
18
20
 
19
21
  const attrs = useAttrs();
20
22
 
21
- const todoItems = ref(attrs["todo-items-initial"]);
23
+ const todoItems = ref(attrs["todo-items-initial"]) as Ref<TodoItem[]>;
22
24
  const draft = ref("");
23
25
 
24
26
  const submitDraft = async () => {
@@ -6,9 +6,10 @@
6
6
  </template>
7
7
 
8
8
  <script lang="ts" setup>
9
- import { useAttrs } from "vue";
9
+ import { useData } from "vike-vue/useData";
10
+ import type { Data } from "./+data";
10
11
 
11
- const { todoItemsInitial } = useAttrs();
12
+ const todoItemsInitial = useData<Data>();
12
13
  </script>
13
14
 
14
15
  <script lang="ts">
@@ -0,0 +1,9 @@
1
+ // https://vike.dev/data
2
+ import { todoItems } from "@batijs/shared-db/database/todoItems";
3
+
4
+ export type Data = ReturnType<typeof data>;
5
+
6
+ export default function data() {
7
+ const todoItemsInitial = todoItems;
8
+ return todoItemsInitial;
9
+ }
@@ -0,0 +1,2 @@
1
+ export type Data = ReturnType<typeof data>;
2
+ export default function data(): import("@batijs/shared-db/database/todoItems").TodoItem[];
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.145",
587
+ version: "0.0.149",
588
588
  type: "module",
589
589
  scripts: {
590
590
  "check-types": "tsc --noEmit",
@@ -610,7 +610,7 @@ var package_default = {
610
610
  sift: "^17.0.1",
611
611
  tsup: "^8.0.1",
612
612
  typescript: "^5.3.3",
613
- vite: "^5.0.11"
613
+ vite: "^5.0.12"
614
614
  },
615
615
  dependencies: {
616
616
  "@batijs/core": "workspace:*",
@@ -1611,6 +1611,11 @@ var defaultDef = {
1611
1611
  description: "Project directory",
1612
1612
  required: false,
1613
1613
  default: "my-app"
1614
+ },
1615
+ force: {
1616
+ type: "boolean",
1617
+ description: "If true, does no check if target directory already exists",
1618
+ required: false
1614
1619
  }
1615
1620
  };
1616
1621
  function yn(value, default_) {
@@ -1645,7 +1650,7 @@ async function checkArguments(args) {
1645
1650
  );
1646
1651
  process.exit(3);
1647
1652
  }
1648
- if ((await readdir(args.project)).length > 0) {
1653
+ if (!args.force && (await readdir(args.project)).length > 0) {
1649
1654
  console.error(
1650
1655
  `${yellow("\u26A0")} Target folder ${cyan(
1651
1656
  args.project
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@batijs/cli",
3
- "version": "0.0.145",
3
+ "version": "0.0.149",
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",
@@ -18,13 +18,13 @@
18
18
  "sift": "^17.0.1",
19
19
  "tsup": "^8.0.1",
20
20
  "typescript": "^5.3.3",
21
- "vite": "^5.0.11",
22
- "@batijs/build": "0.0.145",
23
- "@batijs/compile": "0.0.145"
21
+ "vite": "^5.0.12",
22
+ "@batijs/compile": "0.0.149",
23
+ "@batijs/build": "0.0.149"
24
24
  },
25
25
  "dependencies": {
26
- "@batijs/core": "0.0.145",
27
- "@batijs/features": "0.0.145"
26
+ "@batijs/core": "0.0.149",
27
+ "@batijs/features": "0.0.149"
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 { filterMovieData } from "../filterMovieData";
5
- import type { PageContextBuiltInServer } from "vike/types";
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,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,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,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,15 +0,0 @@
1
- import { todoItems } from "@batijs/shared-db/database/todoItems";
2
-
3
- // https://vike.dev/onBeforeRender
4
- export default onBeforeRender;
5
-
6
- function onBeforeRender() {
7
- const todoItemsInitial = todoItems;
8
- return {
9
- pageContext: {
10
- pageProps: {
11
- todoItemsInitial,
12
- },
13
- },
14
- };
15
- }
@@ -1,8 +0,0 @@
1
- export default onBeforeRender;
2
- declare function onBeforeRender(): {
3
- pageContext: {
4
- pageProps: {
5
- todoItemsInitial: import("@batijs/shared-db/database/todoItems").TodoItem[];
6
- };
7
- };
8
- };
@@ -1,15 +0,0 @@
1
- import { todoItems } from "@batijs/shared-db/database/todoItems";
2
-
3
- // https://vike.dev/onBeforeRender
4
- export default onBeforeRender;
5
-
6
- function onBeforeRender() {
7
- const todoItemsInitial = todoItems;
8
- return {
9
- pageContext: {
10
- pageProps: {
11
- todoItemsInitial,
12
- },
13
- },
14
- };
15
- }
@@ -1,8 +0,0 @@
1
- export default onBeforeRender;
2
- declare function onBeforeRender(): {
3
- pageContext: {
4
- pageProps: {
5
- todoItemsInitial: import("@batijs/shared-db/database/todoItems").TodoItem[];
6
- };
7
- };
8
- };