@batijs/cli 0.0.196 → 0.0.198

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 (121) hide show
  1. package/dist/boilerplates/@batijs/biome/files/$package.json.js +1 -1
  2. package/dist/boilerplates/@batijs/compiled/files/$package.json.js +2 -2
  3. package/dist/boilerplates/@batijs/drizzle/files/$README.md.js +29 -0
  4. package/dist/boilerplates/@batijs/drizzle/files/$package.json.js +112 -0
  5. package/dist/boilerplates/@batijs/drizzle/files/database/db.ts +6 -0
  6. package/dist/boilerplates/@batijs/drizzle/files/database/schema.ts +11 -0
  7. package/dist/boilerplates/@batijs/drizzle/files/database/seed.ts +12 -0
  8. package/dist/boilerplates/@batijs/drizzle/files/drizzle.config.ts +10 -0
  9. package/dist/boilerplates/@batijs/drizzle/types/database/db.d.ts +2 -0
  10. package/dist/boilerplates/@batijs/drizzle/types/database/schema.d.ts +33 -0
  11. package/dist/boilerplates/@batijs/drizzle/types/database/seed.d.ts +1 -0
  12. package/dist/boilerplates/@batijs/drizzle/types/drizzle.config.d.ts +2 -0
  13. package/dist/boilerplates/@batijs/edgedb/files/$package.json.js +1 -1
  14. package/dist/boilerplates/@batijs/eslint/files/$package.json.js +2 -2
  15. package/dist/boilerplates/@batijs/express/files/$package.json.js +7 -5
  16. package/dist/boilerplates/@batijs/express/files/express-entry.ts +5 -0
  17. package/dist/boilerplates/@batijs/fastify/files/$package.json.js +7 -5
  18. package/dist/boilerplates/@batijs/fastify/files/fastify-entry.ts +5 -0
  19. package/dist/boilerplates/@batijs/firebase-auth/files/$package.json.js +3 -3
  20. package/dist/boilerplates/@batijs/h3/files/$package.json.js +7 -5
  21. package/dist/boilerplates/@batijs/h3/files/h3-entry.ts +5 -0
  22. package/dist/boilerplates/@batijs/hattip/files/$package.json.js +6 -4
  23. package/dist/boilerplates/@batijs/hattip/files/hattip-entry.ts +5 -0
  24. package/dist/boilerplates/@batijs/hono/files/$package.json.js +9 -7
  25. package/dist/boilerplates/@batijs/hono/files/hono-entry.ts +5 -0
  26. package/dist/boilerplates/@batijs/hono/types/hono-entry.d.ts +1 -1
  27. package/dist/boilerplates/@batijs/prettier/files/$package.json.js +1 -1
  28. package/dist/boilerplates/@batijs/prisma/files/$package.json.js +2 -2
  29. package/dist/boilerplates/@batijs/react/files/$README.md.js +9 -3
  30. package/dist/boilerplates/@batijs/react/files/$package.json.js +25 -9
  31. package/dist/boilerplates/@batijs/react/files/layouts/LayoutDefault.tsx +1 -2
  32. package/dist/boilerplates/@batijs/react/files/pages/todo/+Page.tsx +14 -0
  33. package/dist/boilerplates/@batijs/react/files/pages/todo/TodoList.tsx +51 -0
  34. package/dist/boilerplates/@batijs/react/types/pages/+config.d.ts +9 -6
  35. package/dist/boilerplates/@batijs/react/types/pages/todo/TodoList.d.ts +5 -0
  36. package/dist/boilerplates/@batijs/shared/files/package.json +3 -3
  37. package/dist/boilerplates/@batijs/shared-no-db/files/$package.json.js +91 -0
  38. package/dist/boilerplates/@batijs/shared-no-db/files/database/todoItems.ts +13 -0
  39. package/dist/boilerplates/@batijs/shared-no-db/types/database/todoItems.d.ts +9 -0
  40. package/dist/boilerplates/@batijs/shared-todo/files/pages/todo/+data.ts +15 -0
  41. package/dist/boilerplates/@batijs/shared-todo/files/server/create-todo-handler.ts +24 -0
  42. package/dist/boilerplates/@batijs/shared-todo/types/pages/todo/+data.d.ts +4 -0
  43. package/dist/boilerplates/@batijs/shared-todo/types/server/create-todo-handler.d.ts +2 -0
  44. package/dist/boilerplates/@batijs/solid/files/$README.md.js +9 -3
  45. package/dist/boilerplates/@batijs/solid/files/$package.json.js +19 -3
  46. package/dist/boilerplates/@batijs/solid/files/layouts/LayoutDefault.tsx +1 -2
  47. package/dist/boilerplates/@batijs/solid/files/pages/todo/+Page.tsx +13 -0
  48. package/dist/boilerplates/@batijs/solid/files/pages/todo/TodoList.tsx +49 -0
  49. package/dist/boilerplates/@batijs/solid/types/pages/todo/TodoList.d.ts +5 -0
  50. package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +4 -4
  51. package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +12 -3
  52. package/dist/boilerplates/@batijs/telefunc/files/pages/todo/TodoList.telefunc.ts +11 -0
  53. package/dist/boilerplates/@batijs/telefunc/types/pages/todo/TodoList.telefunc.d.ts +3 -0
  54. package/dist/boilerplates/@batijs/trpc/files/$package.json.js +4 -2
  55. package/dist/boilerplates/@batijs/trpc/files/trpc/server.ts +8 -3
  56. package/dist/boilerplates/@batijs/trpc/types/trpc/client.d.ts +1 -3
  57. package/dist/boilerplates/@batijs/trpc/types/trpc/server.d.ts +1 -3
  58. package/dist/boilerplates/@batijs/vercel/files/$package.json.js +2 -2
  59. package/dist/boilerplates/@batijs/vue/files/$README.md.js +9 -3
  60. package/dist/boilerplates/@batijs/vue/files/$package.json.js +9 -5
  61. package/dist/boilerplates/@batijs/vue/files/layouts/LayoutDefault.vue +1 -4
  62. package/dist/boilerplates/@batijs/vue/files/pages/todo/+Page.vue +14 -0
  63. package/dist/boilerplates/@batijs/vue/files/pages/todo/TodoList.vue +49 -0
  64. package/dist/boilerplates/@batijs/vue/types/pages/+config.d.ts +95 -2
  65. package/dist/boilerplates/boilerplates.json +23 -98
  66. package/dist/{chunk-5DE3DJHR.js → chunk-TGVSJ5SD.js} +1 -1
  67. package/dist/index.js +21 -30
  68. package/dist/{prompt-YMZWKECL.js → prompt-XFX2ZGRD.js} +27 -54
  69. package/package.json +8 -8
  70. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+Page.tsx +0 -27
  71. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+data.ts +0 -9
  72. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.telefunc.ts +0 -6
  73. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.tsx +0 -30
  74. package/dist/boilerplates/@batijs/react-telefunc/types/pages/todo/+data.d.ts +0 -2
  75. package/dist/boilerplates/@batijs/react-telefunc/types/pages/todo/TodoList.d.ts +0 -4
  76. package/dist/boilerplates/@batijs/react-telefunc/types/pages/todo/TodoList.telefunc.d.ts +0 -4
  77. package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/+Page.tsx +0 -27
  78. package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/+config.ts +0 -5
  79. package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/+data.ts +0 -9
  80. package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/TodoList.tsx +0 -30
  81. package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/+Page.d.ts +0 -1
  82. package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/+config.d.ts +0 -4
  83. package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/+data.d.ts +0 -2
  84. package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/TodoList.d.ts +0 -4
  85. package/dist/boilerplates/@batijs/shared-db/files/database/todoItems.ts +0 -12
  86. package/dist/boilerplates/@batijs/shared-db/types/database/todoItems.d.ts +0 -6
  87. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+Page.tsx +0 -28
  88. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+config.ts +0 -3
  89. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+data.ts +0 -9
  90. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.telefunc.ts +0 -8
  91. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.tsx +0 -28
  92. package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/+config.d.ts +0 -4
  93. package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/+data.d.ts +0 -2
  94. package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/TodoList.d.ts +0 -4
  95. package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/TodoList.telefunc.d.ts +0 -5
  96. package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/+Page.tsx +0 -28
  97. package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/+config.ts +0 -3
  98. package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/+data.ts +0 -9
  99. package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/TodoList.tsx +0 -28
  100. package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/+Page.d.ts +0 -1
  101. package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/+config.d.ts +0 -4
  102. package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/+data.d.ts +0 -2
  103. package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/TodoList.d.ts +0 -4
  104. package/dist/boilerplates/@batijs/vue-telefunc/files/components/TodoList.telefunc.ts +0 -8
  105. package/dist/boilerplates/@batijs/vue-telefunc/files/components/TodoList.vue +0 -33
  106. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+Page.vue +0 -20
  107. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+config.ts +0 -3
  108. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+data.ts +0 -9
  109. package/dist/boilerplates/@batijs/vue-telefunc/types/components/TodoList.telefunc.d.ts +0 -5
  110. package/dist/boilerplates/@batijs/vue-telefunc/types/pages/todo/+config.d.ts +0 -4
  111. package/dist/boilerplates/@batijs/vue-telefunc/types/pages/todo/+data.d.ts +0 -2
  112. package/dist/boilerplates/@batijs/vue-trpc/files/components/TodoListTrpc.vue +0 -31
  113. package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+Page.vue +0 -20
  114. package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+config.ts +0 -3
  115. package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+data.ts +0 -9
  116. package/dist/boilerplates/@batijs/vue-trpc/types/pages/todo-trpc/+config.d.ts +0 -4
  117. package/dist/boilerplates/@batijs/vue-trpc/types/pages/todo-trpc/+data.d.ts +0 -2
  118. /package/dist/boilerplates/@batijs/{react-telefunc → react}/types/pages/todo/+Page.d.ts +0 -0
  119. /package/dist/boilerplates/@batijs/{react-telefunc → shared-todo}/files/pages/todo/+config.ts +0 -0
  120. /package/dist/boilerplates/@batijs/{react-telefunc → shared-todo}/types/pages/todo/+config.d.ts +0 -0
  121. /package/dist/boilerplates/@batijs/{solid-telefunc → solid}/types/pages/todo/+Page.d.ts +0 -0
@@ -1,4 +1,6 @@
1
- import { todoItems } from "@batijs/shared-db/database/todoItems";
1
+ import { db } from "@batijs/drizzle/database/db";
2
+ import { todoTable } from "@batijs/drizzle/database/schema";
3
+ import { lowDb } from "@batijs/shared-no-db/database/todoItems";
2
4
  import { initTRPC } from "@trpc/server";
3
5
 
4
6
  /**
@@ -26,8 +28,11 @@ export const appRouter = router({
26
28
  throw new Error("Input is not a string");
27
29
  })
28
30
  .mutation(async (opts) => {
29
- todoItems.push({ text: opts.input });
30
- return { todoItems };
31
+ if (BATI.has("drizzle")) {
32
+ await db.insert(todoTable).values({ text: opts.input });
33
+ } else {
34
+ await lowDb.update(({ todo }) => todo.push({ text: opts.input }));
35
+ }
31
36
  }),
32
37
  });
33
38
 
@@ -31,8 +31,6 @@ export declare const trpc: {
31
31
  _input_out: string;
32
32
  _output_in: typeof import("@trpc/server").unsetMarker;
33
33
  _output_out: typeof import("@trpc/server").unsetMarker;
34
- }, {
35
- todoItems: import("@batijs/shared-db/database/todoItems").TodoItem[];
36
- }>>;
34
+ }, void>>;
37
35
  };
38
36
  };
@@ -57,8 +57,6 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
57
57
  _input_out: string;
58
58
  _output_in: typeof import("@trpc/server").unsetMarker;
59
59
  _output_out: typeof import("@trpc/server").unsetMarker;
60
- }, {
61
- todoItems: import("@batijs/shared-db/database/todoItems").TodoItem[];
62
- }>;
60
+ }, void>;
63
61
  }>;
64
62
  export type AppRouter = typeof appRouter;
@@ -44,8 +44,8 @@ var require_package = __commonJS({
44
44
  "@batijs/compile": "workspace:*",
45
45
  "@types/node": "^18.19.14",
46
46
  "@vite-plugin-vercel/vike": "^7.0.0",
47
- vike: "^0.4.172",
48
- vite: "^5.2.11",
47
+ vike: "^0.4.174",
48
+ vite: "^5.2.12",
49
49
  "vite-plugin-vercel": "^7.0.0"
50
50
  },
51
51
  dependencies: {
@@ -3,32 +3,38 @@ import { loadReadme } from "@batijs/core";
3
3
  async function getReadme(props) {
4
4
  const content = await loadReadme(props);
5
5
  const about = `
6
+
6
7
  This app is ready to start. It's powered by [Vike](https://vike.dev) and [Vue](https://vuejs.org/guide/quick-start.html).
7
8
 
8
9
  ### \`/pages/+config.ts\`
9
- Such files are [the interface](https://vike.dev/config) between Vike and your code. It defines:
10
+
11
+ Such \`+\` files are [the interface](https://vike.dev/config) between Vike and your code. It defines:
10
12
  - A default [\`<Layout>\` component](https://vike.dev/Layout) (that wraps your [\`<Page>\` components](https://vike.dev/Page)).
11
13
  - A default [\`title\`](https://vike.dev/head).
12
14
  - Default [\`<head>\` tags](https://vike.dev/head).
13
15
 
14
16
  ### Routing
17
+
15
18
  [Vike's built-in router](https://vike.dev/routing) lets you choose between:
16
19
  - [Filesystem Routing](https://vike.dev/filesystem-routing) (the URL of a page is determined based on where its \`+Page.vue\` file is located on the filesystem)
17
20
  - [Route Strings](https://vike.dev/route-string)
18
21
  - [Route Functions](https://vike.dev/route-function)
19
22
 
20
23
  ### \`/pages/_error/+Page.vue\`
24
+
21
25
  The [error page](https://vike.dev/error-page) which is rendered when errors occur.
22
26
 
23
27
  ### \`/pages/+onPageTransitionStart.ts\` and \`/pages/+onPageTransitionEnd.ts\`
28
+
24
29
  The [\`onPageTransitionStart()\` hook](https://vike.dev/onPageTransitionStart), together with [\`onPageTransitionEnd()\`](https://vike.dev/onPageTransitionEnd), enables you to implement page transition animations.
25
30
 
26
31
  ### SSR
32
+
27
33
  SSR is enabled by default. You can [disable it](https://vike.dev/ssr) for all your pages or only for some pages.
28
34
 
29
35
  ### HTML Streaming
30
- You can enable/disable [HTML streaming](https://vike.dev/streaming) for all your pages, or only for some pages while still using it for others.
31
- `;
36
+
37
+ You can enable/disable [HTML streaming](https://vike.dev/streaming) for all your pages, or only for some pages while still using it for others.`;
32
38
  content.addAbout(about);
33
39
  return content.finalize();
34
40
  }
@@ -42,18 +42,22 @@ var require_package = __commonJS({
42
42
  license: "MIT",
43
43
  devDependencies: {
44
44
  "@batijs/compile": "workspace:*",
45
+ "@batijs/drizzle": "workspace:*",
46
+ "@batijs/shared-todo": "workspace:*",
47
+ "@batijs/telefunc": "workspace:*",
48
+ "@batijs/trpc": "workspace:^",
45
49
  "@types/node": "^18.19.14",
46
- "@vitejs/plugin-vue": "^5.0.4",
50
+ "@vitejs/plugin-vue": "^5.0.5",
47
51
  "@vue/compiler-sfc": "^3.4.27",
48
52
  "@vue/server-renderer": "^3.4.27",
49
53
  "cross-fetch": "^4.0.0",
50
54
  "eslint-plugin-vue": "^9.26.0",
51
- tailwindcss: "^3.4.3",
55
+ tailwindcss: "^3.4.4",
52
56
  typescript: "^5.4.5",
53
57
  "unplugin-vue-markdown": "^0.26.2",
54
- vike: "^0.4.172",
55
- "vike-vue": "^0.6.6",
56
- vite: "^5.2.11",
58
+ vike: "^0.4.174",
59
+ "vike-vue": "^0.7.1",
60
+ vite: "^5.2.12",
57
61
  vue: "^3.4.27",
58
62
  "vue-gtag": "^2.0.1"
59
63
  },
@@ -3,10 +3,7 @@
3
3
  <Sidebar>
4
4
  <Logo />
5
5
  <Link href="/"> Welcome </Link>
6
- <!-- BATI.has("telefunc") -->
7
- <Link href="/todo"> Todo (telefunc) </Link>
8
- <!-- BATI.has("trpc") -->
9
- <Link href="/todo-trpc"> Todo (tRPC) </Link>
6
+ <Link href="/todo"> Todo </Link>
10
7
  <Link href="/star-wars"> Data Fetching </Link>
11
8
  </Sidebar>
12
9
  <Content><slot /></Content>
@@ -0,0 +1,14 @@
1
+ <template>
2
+ <div>
3
+ <h1>To-do List</h1>
4
+ <TodoList :initial-todo-items="initialTodoItems" />
5
+ </div>
6
+ </template>
7
+
8
+ <script lang="ts" setup>
9
+ import type { Data } from "@batijs/shared-todo/pages/todo/+data";
10
+ import { useData } from "vike-vue/useData";
11
+ import TodoList from "./TodoList.vue";
12
+
13
+ const initialTodoItems = useData<Data>();
14
+ </script>
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <ul>
3
+ <li v-for="item in todoItems" :key="item.text">
4
+ {{ item.text }}
5
+ </li>
6
+ <li>
7
+ <form @submit.prevent="submitNewTodo()">
8
+ <input v-model="newTodo" type="text" />{{ " " }}
9
+ <button type="submit">Add to-do</button>
10
+ </form>
11
+ </li>
12
+ </ul>
13
+ </template>
14
+
15
+ <script lang="ts" setup>
16
+ import { onNewTodo } from "@batijs/telefunc/pages/todo/TodoList.telefunc";
17
+ import { trpc } from "@batijs/trpc/trpc/client";
18
+ import { ref } from "vue";
19
+
20
+ const props = defineProps<{ initialTodoItems: { text: string }[] }>();
21
+ const todoItems = ref(props.initialTodoItems);
22
+ const newTodo = ref("");
23
+
24
+ const submitNewTodo = async () => {
25
+ // Optimistic UI update
26
+ todoItems.value.push({ text: newTodo.value });
27
+ try {
28
+ if (BATI.has("telefunc")) {
29
+ await onNewTodo({ text: newTodo.value });
30
+ } else if (BATI.has("trpc")) {
31
+ await trpc.onNewTodo.mutate(newTodo.value);
32
+ } else {
33
+ const response = await fetch("/api/todo/create", {
34
+ method: "POST",
35
+ body: JSON.stringify({ text: newTodo.value }),
36
+ headers: {
37
+ "Content-Type": "application/json",
38
+ },
39
+ });
40
+ await response.blob();
41
+ }
42
+ newTodo.value = "";
43
+ } catch (e) {
44
+ console.error(e);
45
+ // rollback
46
+ todoItems.value.slice(0, -1);
47
+ }
48
+ };
49
+ </script>
@@ -1,11 +1,104 @@
1
- import vikeVue from "vike-vue/config";
2
1
  import Head from "../layouts/HeadDefault.vue";
3
2
  declare const _default: {
4
3
  Layout: typeof Head;
5
4
  Head: typeof Head;
6
5
  passToClient: string[];
7
6
  title: string;
8
- extends: typeof vikeVue;
7
+ extends: {
8
+ name: string;
9
+ onRenderHtml: "import:vike-vue/renderer/onRenderHtml:onRenderHtml";
10
+ onRenderClient: "import:vike-vue/renderer/onRenderClient:onRenderClient";
11
+ passToClient: string[];
12
+ clientRouting: true;
13
+ hydrationCanBeAborted: true;
14
+ meta: {
15
+ Head: {
16
+ env: {
17
+ server: true;
18
+ };
19
+ };
20
+ Layout: {
21
+ env: {
22
+ server: true;
23
+ client: true;
24
+ };
25
+ };
26
+ title: {
27
+ env: {
28
+ server: true;
29
+ client: true;
30
+ };
31
+ };
32
+ favicon: {
33
+ env: {
34
+ server: true;
35
+ client: true;
36
+ };
37
+ };
38
+ lang: {
39
+ env: {
40
+ server: true;
41
+ client: true;
42
+ };
43
+ };
44
+ ssr: {
45
+ env: {
46
+ config: true;
47
+ };
48
+ effect: import("vike/types").ConfigEffect;
49
+ };
50
+ stream: {
51
+ env: {
52
+ server: true;
53
+ };
54
+ };
55
+ vuePlugins: {
56
+ env: {
57
+ server: true;
58
+ client: true;
59
+ };
60
+ };
61
+ onCreateApp: {
62
+ env: {
63
+ server: true;
64
+ client: true;
65
+ };
66
+ cumulative: true;
67
+ };
68
+ onAfterRenderHtml: {
69
+ env: {
70
+ server: true;
71
+ };
72
+ cumulative: true;
73
+ };
74
+ onBeforeRenderClient: {
75
+ env: {
76
+ server: false;
77
+ client: true;
78
+ };
79
+ cumulative: true;
80
+ };
81
+ name: {
82
+ env: {
83
+ config: true;
84
+ };
85
+ };
86
+ bodyHtmlStart: {
87
+ env: {
88
+ server: true;
89
+ client: true;
90
+ };
91
+ cumulative: true;
92
+ };
93
+ bodyHtmlEnd: {
94
+ env: {
95
+ server: true;
96
+ client: true;
97
+ };
98
+ cumulative: true;
99
+ };
100
+ };
101
+ };
9
102
  meta: {
10
103
  firebaseApp: {
11
104
  env: {
@@ -48,6 +48,17 @@
48
48
  "files"
49
49
  ]
50
50
  },
51
+ {
52
+ "config": {
53
+ "if": {
54
+ "flag": "drizzle"
55
+ }
56
+ },
57
+ "folder": "@batijs/drizzle",
58
+ "subfolders": [
59
+ "files"
60
+ ]
61
+ },
51
62
  {
52
63
  "config": {
53
64
  "if": {
@@ -196,38 +207,6 @@
196
207
  "files"
197
208
  ]
198
209
  },
199
- {
200
- "config": {
201
- "if": {
202
- "flag": {
203
- "$all": [
204
- "react",
205
- "telefunc"
206
- ]
207
- }
208
- }
209
- },
210
- "folder": "@batijs/react-telefunc",
211
- "subfolders": [
212
- "files"
213
- ]
214
- },
215
- {
216
- "config": {
217
- "if": {
218
- "flag": {
219
- "$all": [
220
- "react",
221
- "trpc"
222
- ]
223
- }
224
- }
225
- },
226
- "folder": "@batijs/react-trpc",
227
- "subfolders": [
228
- "files"
229
- ]
230
- },
231
210
  {
232
211
  "config": {
233
212
  "enforce": "pre"
@@ -241,14 +220,15 @@
241
220
  "config": {
242
221
  "if": {
243
222
  "flag": {
244
- "$in": [
245
- "trpc",
246
- "telefunc"
247
- ]
223
+ "$not": {
224
+ "$in": [
225
+ "drizzle"
226
+ ]
227
+ }
248
228
  }
249
229
  }
250
230
  },
251
- "folder": "@batijs/shared-db",
231
+ "folder": "@batijs/shared-no-db",
252
232
  "subfolders": [
253
233
  "files"
254
234
  ]
@@ -296,27 +276,9 @@
296
276
  },
297
277
  {
298
278
  "config": {
299
- "if": {
300
- "flag": "solid"
301
- }
302
- },
303
- "folder": "@batijs/solid",
304
- "subfolders": [
305
- "files"
306
- ]
307
- },
308
- {
309
- "config": {
310
- "if": {
311
- "flag": {
312
- "$all": [
313
- "solid",
314
- "firebase-auth"
315
- ]
316
- }
317
- }
279
+ "enforce": "pre"
318
280
  },
319
- "folder": "@batijs/solid-firebase-auth",
281
+ "folder": "@batijs/shared-todo",
320
282
  "subfolders": [
321
283
  "files"
322
284
  ]
@@ -324,15 +286,10 @@
324
286
  {
325
287
  "config": {
326
288
  "if": {
327
- "flag": {
328
- "$all": [
329
- "solid",
330
- "telefunc"
331
- ]
332
- }
289
+ "flag": "solid"
333
290
  }
334
291
  },
335
- "folder": "@batijs/solid-telefunc",
292
+ "folder": "@batijs/solid",
336
293
  "subfolders": [
337
294
  "files"
338
295
  ]
@@ -343,12 +300,12 @@
343
300
  "flag": {
344
301
  "$all": [
345
302
  "solid",
346
- "trpc"
303
+ "firebase-auth"
347
304
  ]
348
305
  }
349
306
  }
350
307
  },
351
- "folder": "@batijs/solid-trpc",
308
+ "folder": "@batijs/solid-firebase-auth",
352
309
  "subfolders": [
353
310
  "files"
354
311
  ]
@@ -423,37 +380,5 @@
423
380
  "subfolders": [
424
381
  "files"
425
382
  ]
426
- },
427
- {
428
- "config": {
429
- "if": {
430
- "flag": {
431
- "$all": [
432
- "vue",
433
- "telefunc"
434
- ]
435
- }
436
- }
437
- },
438
- "folder": "@batijs/vue-telefunc",
439
- "subfolders": [
440
- "files"
441
- ]
442
- },
443
- {
444
- "config": {
445
- "if": {
446
- "flag": {
447
- "$all": [
448
- "vue",
449
- "trpc"
450
- ]
451
- }
452
- }
453
- },
454
- "folder": "@batijs/vue-trpc",
455
- "subfolders": [
456
- "files"
457
- ]
458
383
  }
459
384
  ]
@@ -1062,7 +1062,7 @@ function createConsola2(options = {}) {
1062
1062
  defaults: { level },
1063
1063
  stdout: process.stdout,
1064
1064
  stderr: process.stderr,
1065
- prompt: (...args) => import("./prompt-YMZWKECL.js").then((m) => m.prompt(...args)),
1065
+ prompt: (...args) => import("./prompt-XFX2ZGRD.js").then((m) => m.prompt(...args)),
1066
1066
  reporters: options.reporters || [
1067
1067
  options.fancy ?? !(isCI2 || isTest) ? new FancyReporter() : new BasicReporter()
1068
1068
  ],
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  __toESM,
5
5
  colors,
6
6
  consola
7
- } from "./chunk-5DE3DJHR.js";
7
+ } from "./chunk-TGVSJ5SD.js";
8
8
 
9
9
  // ../../node_modules/.pnpm/which-pm-runs@1.1.0/node_modules/which-pm-runs/index.js
10
10
  var require_which_pm_runs = __commonJS({
@@ -99,19 +99,16 @@ async function safeWriteFile(destination, content) {
99
99
  await writeFile(destination, content, { encoding: "utf-8" });
100
100
  }
101
101
  async function* walk(dir) {
102
- if (!existsSync(dir))
103
- return;
102
+ if (!existsSync(dir)) return;
104
103
  for await (const d of await opendir(dir)) {
105
104
  const entry = path.join(dir, d.name);
106
105
  if (d.isDirectory()) {
107
106
  yield* walk(entry);
108
- } else if (d.isFile())
109
- yield entry;
107
+ } else if (d.isFile()) yield entry;
110
108
  }
111
109
  }
112
110
  function transformFileAfterExec(filepath, fileContent) {
113
- if (fileContent === void 0 || fileContent === null)
114
- return null;
111
+ if (fileContent === void 0 || fileContent === null) return null;
115
112
  const parsed = path.parse(filepath);
116
113
  const toTest = [parsed.base, parsed.ext, parsed.name].filter(Boolean);
117
114
  for (const ext of toTest) {
@@ -781,9 +778,7 @@ var extendStatics = function(d, b) {
781
778
  extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
782
779
  d2.__proto__ = b2;
783
780
  } || function(d2, b2) {
784
- for (var p in b2)
785
- if (Object.prototype.hasOwnProperty.call(b2, p))
786
- d2[p] = b2[p];
781
+ for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
787
782
  };
788
783
  return extendStatics(d, b);
789
784
  };
@@ -1564,7 +1559,7 @@ var import_which_pm_runs = __toESM(require_which_pm_runs(), 1);
1564
1559
  // package.json
1565
1560
  var package_default = {
1566
1561
  name: "@batijs/cli",
1567
- version: "0.0.196",
1562
+ version: "0.0.198",
1568
1563
  type: "module",
1569
1564
  scripts: {
1570
1565
  "check-types": "tsc --noEmit",
@@ -1581,7 +1576,7 @@ var package_default = {
1581
1576
  "@batijs/build": "workspace:*",
1582
1577
  "@batijs/compile": "workspace:*",
1583
1578
  "@types/node": "^18.19.14",
1584
- "@types/which": "^3.0.3",
1579
+ "@types/which": "^3.0.4",
1585
1580
  "@types/which-pm-runs": "^1.0.2",
1586
1581
  citty: "^0.1.6",
1587
1582
  colorette: "^2.0.20",
@@ -1589,9 +1584,9 @@ var package_default = {
1589
1584
  execa: "^9.1.0",
1590
1585
  rimraf: "^5.0.7",
1591
1586
  sift: "^17.1.3",
1592
- tsup: "^8.0.2",
1587
+ tsup: "^8.1.0",
1593
1588
  typescript: "^5.4.5",
1594
- vite: "^5.2.11",
1589
+ vite: "^5.2.12",
1595
1590
  "which-pm-runs": "^1.1.0"
1596
1591
  },
1597
1592
  dependencies: {
@@ -1630,7 +1625,10 @@ var rulesMessages = {
1630
1625
  [RulesMessage.ERROR_COMPILED_R_REACT]: error(
1631
1626
  `${inverse(bold("React"))} is required when using ${inverse(bold("Compiled"))}.`
1632
1627
  ),
1633
- [RulesMessage.INFO_HATTIP]: info(`${inverse(bold("HatTip"))} is an experimental project`)
1628
+ [RulesMessage.INFO_HATTIP]: info(`${inverse(bold("HatTip"))} is an experimental project`),
1629
+ [RulesMessage.ERROR_DRIZZLE_R_SERVER]: error(
1630
+ `A ${inverse(bold("Server"))} is required when using ${inverse(bold("Drizzle"))}.`
1631
+ )
1634
1632
  };
1635
1633
 
1636
1634
  // index.ts
@@ -1650,8 +1648,7 @@ async function parseBoilerplates(dir) {
1650
1648
  return JSON.parse(await readFile3(join(dir, "boilerplates.json"), "utf-8"));
1651
1649
  }
1652
1650
  function toArg(flag, description) {
1653
- if (!flag)
1654
- return {};
1651
+ if (!flag) return {};
1655
1652
  return {
1656
1653
  [flag]: {
1657
1654
  type: "boolean",
@@ -1662,8 +1659,7 @@ function toArg(flag, description) {
1662
1659
  }
1663
1660
  function findDescription(key) {
1664
1661
  const feat = features.find((f) => f.flag === key);
1665
- if (!feat)
1666
- return;
1662
+ if (!feat) return;
1667
1663
  if (feat.description) {
1668
1664
  return feat.description;
1669
1665
  } else if (feat.label && feat.url) {
@@ -1681,11 +1677,10 @@ function printOK(dist, flags) {
1681
1677
  console.log(list3(green("Vike")));
1682
1678
  for (const key of flags) {
1683
1679
  const feature = features.find((f) => f.flag === key);
1684
- if (!feature || !feature.label)
1685
- continue;
1680
+ if (!feature || !feature.label) continue;
1686
1681
  console.log(list3(green(feature.label)));
1687
1682
  }
1688
- console.log("\n" + bold(arrow0("Ready to start you app:")));
1683
+ console.log("\n" + bold(arrow0("Ready to start your app:")));
1689
1684
  console.log(cmd3(`cd ${dist}`));
1690
1685
  switch (pm?.name) {
1691
1686
  case "bun": {
@@ -1844,14 +1839,10 @@ async function run() {
1844
1839
  }).flat(1);
1845
1840
  checkRules(flags);
1846
1841
  boilerplates.sort((b1, b2) => {
1847
- if (b1.config.enforce === "pre")
1848
- return -1;
1849
- if (b1.config.enforce === "post")
1850
- return 1;
1851
- if (b2.config.enforce === "pre")
1852
- return 1;
1853
- if (b2.config.enforce === "post")
1854
- return -1;
1842
+ if (b1.config.enforce === "pre") return -1;
1843
+ if (b1.config.enforce === "post") return 1;
1844
+ if (b2.config.enforce === "pre") return 1;
1845
+ if (b2.config.enforce === "post") return -1;
1855
1846
  return 0;
1856
1847
  });
1857
1848
  for (const bl of boilerplates) {