@batijs/cli 0.0.53 → 0.0.54

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 (31) hide show
  1. package/dist/boilerplates/@batijs/edgedb/files/$package.json.js +1 -1
  2. package/dist/boilerplates/@batijs/edgedb/{package-TLISE4ST.js → package-TEA6O33B.js} +1 -1
  3. package/dist/boilerplates/@batijs/express/files/$package.json.js +1 -1
  4. package/dist/boilerplates/@batijs/express/{package-DCOKTSTT.js → package-VI6I3YOZ.js} +1 -1
  5. package/dist/boilerplates/@batijs/hattip/files/$package.json.js +1 -1
  6. package/dist/boilerplates/@batijs/hattip/{package-AY7V4FWO.js → package-SW72O5IE.js} +1 -1
  7. package/dist/boilerplates/@batijs/prisma/files/$package.json.js +1 -1
  8. package/dist/boilerplates/@batijs/prisma/{package-AURTECWA.js → package-NMSSVOZZ.js} +1 -1
  9. package/dist/boilerplates/@batijs/react/files/$package.json.js +1 -1
  10. package/dist/boilerplates/@batijs/react/files/layouts/LayoutDefault.tsx +1 -0
  11. package/dist/boilerplates/@batijs/react/{package-BXPDDISO.js → package-DWI5TO4Y.js} +2 -2
  12. package/dist/boilerplates/@batijs/react-telefunc/files/database/todoItems.ts +12 -0
  13. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+Page.tsx +26 -0
  14. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+onBeforeRender.ts +15 -0
  15. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.telefunc.ts +8 -0
  16. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.tsx +31 -0
  17. package/dist/boilerplates/@batijs/solid/files/$package.json.js +1 -1
  18. package/dist/boilerplates/@batijs/solid/files/layouts/LayoutDefault.tsx +1 -0
  19. package/dist/boilerplates/@batijs/solid/{package-NH4EKMOL.js → package-T6DNMWAL.js} +1 -1
  20. package/dist/boilerplates/@batijs/solid-telefunc/files/database/todoItems.ts +12 -0
  21. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+Page.tsx +26 -0
  22. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+onBeforeRender.ts +15 -0
  23. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.telefunc.ts +8 -0
  24. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.tsx +29 -0
  25. package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +1 -1
  26. package/dist/boilerplates/@batijs/tailwindcss/{package-NTWITHIQ.js → package-UBTTDMAM.js} +1 -1
  27. package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +1 -1
  28. package/dist/boilerplates/@batijs/telefunc/{package-LMYXQQZ7.js → package-JEX3N3YX.js} +1 -1
  29. package/dist/boilerplates/boilerplates.json +26 -0
  30. package/dist/index.js +17 -6
  31. package/package.json +5 -5
@@ -4,7 +4,7 @@ async function getPackageJson(currentContent) {
4
4
  const packageJson = await loadAsJson(currentContent);
5
5
  packageJson.scripts["edgedb:generate-queries"] = "@edgedb/generate queries";
6
6
  packageJson.scripts["edgedb:generate-edgeql-js"] = "@edgedb/generate edgeql-js";
7
- return addDependency(packageJson, await import("../package-TLISE4ST.js"), {
7
+ return addDependency(packageJson, await import("../package-TEA6O33B.js"), {
8
8
  devDependencies: ["@edgedb/generate"],
9
9
  dependencies: ["edgedb"]
10
10
  });
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/edgedb";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -4,7 +4,7 @@ async function getPackageJson(currentContent, meta) {
4
4
  const packageJson = await loadAsJson(currentContent);
5
5
  packageJson.scripts.dev = "tsx ./express-entry.ts";
6
6
  packageJson.scripts.build = "vite build";
7
- return addDependency(packageJson, await import("../package-DCOKTSTT.js"), {
7
+ return addDependency(packageJson, await import("../package-VI6I3YOZ.js"), {
8
8
  devDependencies: ["@types/express"],
9
9
  dependencies: [
10
10
  "@hattip/adapter-node",
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/express";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -7,7 +7,7 @@ async function getPackageJson(currentContent, meta) {
7
7
  if (packageJson.scripts.preview) {
8
8
  delete packageJson.scripts.preview;
9
9
  }
10
- return addDependency(packageJson, await import("../package-AY7V4FWO.js"), {
10
+ return addDependency(packageJson, await import("../package-SW72O5IE.js"), {
11
11
  devDependencies: ["@hattip/vite", "@hattip/adapter-node"],
12
12
  dependencies: [
13
13
  "@hattip/router",
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/hattip";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -4,7 +4,7 @@ async function getPackageJson(currentContent) {
4
4
  const packageJson = await loadAsJson(currentContent);
5
5
  packageJson.scripts["prisma:studio"] = "prisma studio";
6
6
  packageJson.scripts["prisma:generate"] = "prisma generate";
7
- return addDependency(packageJson, await import("../package-AURTECWA.js"), {
7
+ return addDependency(packageJson, await import("../package-NMSSVOZZ.js"), {
8
8
  devDependencies: ["prisma"],
9
9
  dependencies: ["@prisma/client"]
10
10
  });
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/prisma";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -2,7 +2,7 @@
2
2
  import { addDependency, loadAsJson } from "@batijs/core";
3
3
  async function getPackageJson(currentContent) {
4
4
  const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-BXPDDISO.js"), {
5
+ return addDependency(packageJson, await import("../package-DWI5TO4Y.js"), {
6
6
  devDependencies: ["vite", "@types/react", "@types/react-dom"],
7
7
  dependencies: ["@vitejs/plugin-react", "cross-fetch", "react", "react-dom", "vite-plugin-ssr", "vike-react"]
8
8
  });
@@ -20,6 +20,7 @@ export default function LayoutDefault({ children }: { children: React.ReactNode
20
20
  <Sidebar>
21
21
  <Logo />
22
22
  <Link href="/">Welcome</Link>
23
+ {import.meta.BATI_MODULES?.includes("rpc:telefunc") ? <Link href="/todo">Todo</Link> : undefined}
23
24
  <Link href="/star-wars">Data Fetching</Link>
24
25
  </Sidebar>
25
26
  <Content>{children}</Content>
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/react";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -13,7 +13,7 @@ var license = "MIT";
13
13
  var devDependencies = {
14
14
  "@batijs/tsup": "workspace:*",
15
15
  "@types/node": "^16.18.37",
16
- "@types/react": "^18.2.15",
16
+ "@types/react": "^18.2.16",
17
17
  "@types/react-dom": "^18.2.7",
18
18
  "@vitejs/plugin-react": "^4.0.3",
19
19
  "cross-fetch": "^4.0.0",
@@ -0,0 +1,12 @@
1
+ export { todoItems };
2
+ export type { TodoItem };
3
+
4
+ type TodoItem = { text: string };
5
+ const todoItems: TodoItem[] = [];
6
+ init();
7
+
8
+ // Initial data
9
+ function init() {
10
+ todoItems.push({ text: "Buy milk" });
11
+ todoItems.push({ text: "Buy strawberries" });
12
+ }
@@ -0,0 +1,26 @@
1
+ import React, { useState } from "react";
2
+
3
+ import { TodoList } from "./TodoList";
4
+ import type { TodoItem } from "../../database/todoItems";
5
+
6
+ export default function Page({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
7
+ return (
8
+ <>
9
+ <h1>To-do List</h1>
10
+ <TodoList todoItemsInitial={todoItemsInitial} />
11
+ <Counter />
12
+ </>
13
+ );
14
+ }
15
+
16
+ function Counter() {
17
+ const [count, setCount] = useState(0);
18
+ return (
19
+ <div>
20
+ This page is interactive:
21
+ <button type="button" onClick={() => setCount((count) => count + 1)}>
22
+ Counter {count}
23
+ </button>
24
+ </div>
25
+ );
26
+ }
@@ -0,0 +1,15 @@
1
+ // https://vite-plugin-ssr.com/onBeforeRender
2
+ export default onBeforeRender;
3
+
4
+ import { todoItems } from "../../database/todoItems";
5
+
6
+ function onBeforeRender() {
7
+ const todoItemsInitial = todoItems;
8
+ return {
9
+ pageContext: {
10
+ pageProps: {
11
+ todoItemsInitial,
12
+ },
13
+ },
14
+ };
15
+ }
@@ -0,0 +1,8 @@
1
+ export { onNewTodo };
2
+
3
+ import { type TodoItem, todoItems } from "../../database/todoItems";
4
+
5
+ async function onNewTodo({ text }: TodoItem) {
6
+ todoItems.push({ text });
7
+ return { todoItems };
8
+ }
@@ -0,0 +1,31 @@
1
+ import React, { useState } from "react";
2
+
3
+ import { onNewTodo } from "./TodoList.telefunc.js";
4
+ import type { TodoItem } from "../../database/todoItems.js";
5
+
6
+ export function TodoList({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
7
+ const [todoItems, setTodoItems] = useState(todoItemsInitial);
8
+ const [draft, setDraft] = useState("");
9
+ return (
10
+ <>
11
+ <ul>
12
+ {todoItems.map((todoItem, i) => (
13
+ <li key={i}>{todoItem.text}</li>
14
+ ))}
15
+ <li>
16
+ <form
17
+ onSubmit={async (ev) => {
18
+ ev.preventDefault();
19
+ const { todoItems } = await onNewTodo({ text: draft });
20
+ setDraft("");
21
+ setTodoItems(todoItems);
22
+ }}
23
+ >
24
+ <input type="text" onChange={(ev) => setDraft(ev.target.value)} value={draft} />{" "}
25
+ <button type="submit">Add to-do</button>
26
+ </form>
27
+ </li>
28
+ </ul>
29
+ </>
30
+ );
31
+ }
@@ -2,7 +2,7 @@
2
2
  import { addDependency, loadAsJson } from "@batijs/core";
3
3
  async function getPackageJson(currentContent) {
4
4
  const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-NH4EKMOL.js"), {
5
+ return addDependency(packageJson, await import("../package-T6DNMWAL.js"), {
6
6
  devDependencies: ["vite"],
7
7
  dependencies: ["cross-fetch", "solid-js", "vike-solid"]
8
8
  });
@@ -20,6 +20,7 @@ export default function LayoutDefault(props: { children?: JSX.Element }) {
20
20
  <Sidebar>
21
21
  <Logo />
22
22
  <Link href="/">Welcome</Link>
23
+ {import.meta.BATI_MODULES?.includes("rpc:telefunc") ? <Link href="/todo">Todo</Link> : undefined}
23
24
  <Link href="/star-wars">Data Fetching</Link>
24
25
  </Sidebar>
25
26
  <Content>{props.children}</Content>
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/solid";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -0,0 +1,12 @@
1
+ export { todoItems };
2
+ export type { TodoItem };
3
+
4
+ type TodoItem = { text: string };
5
+ const todoItems: TodoItem[] = [];
6
+ init();
7
+
8
+ // Initial data
9
+ function init() {
10
+ todoItems.push({ text: "Buy milk" });
11
+ todoItems.push({ text: "Buy strawberries" });
12
+ }
@@ -0,0 +1,26 @@
1
+ import { createSignal } from "solid-js";
2
+
3
+ import { TodoList } from "./TodoList";
4
+ import type { TodoItem } from "../../database/todoItems";
5
+
6
+ export default function Page({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
7
+ return (
8
+ <>
9
+ <h1>To-do List</h1>
10
+ <TodoList todoItemsInitial={todoItemsInitial} />
11
+ <Counter />
12
+ </>
13
+ );
14
+ }
15
+
16
+ function Counter() {
17
+ const [count, setCount] = createSignal(0);
18
+ return (
19
+ <div>
20
+ This page is interactive:
21
+ <button type="button" onClick={() => setCount((count) => count + 1)}>
22
+ Counter {count()}
23
+ </button>
24
+ </div>
25
+ );
26
+ }
@@ -0,0 +1,15 @@
1
+ // https://vite-plugin-ssr.com/onBeforeRender
2
+ export default onBeforeRender;
3
+
4
+ import { todoItems } from "../../database/todoItems";
5
+
6
+ function onBeforeRender() {
7
+ const todoItemsInitial = todoItems;
8
+ return {
9
+ pageContext: {
10
+ pageProps: {
11
+ todoItemsInitial,
12
+ },
13
+ },
14
+ };
15
+ }
@@ -0,0 +1,8 @@
1
+ export { onNewTodo };
2
+
3
+ import { type TodoItem, todoItems } from "../../database/todoItems";
4
+
5
+ async function onNewTodo({ text }: TodoItem) {
6
+ todoItems.push({ text });
7
+ return { todoItems };
8
+ }
@@ -0,0 +1,29 @@
1
+ import { createSignal, For, untrack } from "solid-js";
2
+
3
+ import { onNewTodo } from "./TodoList.telefunc.js";
4
+ import type { TodoItem } from "../../database/todoItems.js";
5
+
6
+ export function TodoList({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
7
+ const [todoItems, setTodoItems] = createSignal(todoItemsInitial);
8
+ const [draft, setDraft] = createSignal("");
9
+ return (
10
+ <>
11
+ <ul>
12
+ <For each={todoItems()}>{(todoItem) => <li>{todoItem.text}</li>}</For>
13
+ <li>
14
+ <form
15
+ onSubmit={async (ev) => {
16
+ ev.preventDefault();
17
+ const { todoItems } = await onNewTodo({ text: untrack(draft) });
18
+ setDraft("");
19
+ setTodoItems(todoItems);
20
+ }}
21
+ >
22
+ <input type="text" onChange={(ev) => setDraft(ev.target.value)} value={draft()} />{" "}
23
+ <button type="submit">Add to-do</button>
24
+ </form>
25
+ </li>
26
+ </ul>
27
+ </>
28
+ );
29
+ }
@@ -2,7 +2,7 @@
2
2
  import { addDependency, loadAsJson } from "@batijs/core";
3
3
  async function getPackageJson(currentContent, meta) {
4
4
  const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-NTWITHIQ.js"), {
5
+ return addDependency(packageJson, await import("../package-UBTTDMAM.js"), {
6
6
  devDependencies: ["tailwindcss", "postcss", "autoprefixer"]
7
7
  });
8
8
  }
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/tailwindcss";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -2,7 +2,7 @@
2
2
  import { addDependency, loadAsJson } from "@batijs/core";
3
3
  async function getPackageJson(currentContent) {
4
4
  const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-LMYXQQZ7.js"), {
5
+ return addDependency(packageJson, await import("../package-JEX3N3YX.js"), {
6
6
  dependencies: ["telefunc"]
7
7
  });
8
8
  }
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/telefunc";
3
3
  var private2 = true;
4
- var version = "0.0.53";
4
+ var version = "0.0.54";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -81,6 +81,19 @@
81
81
  "files"
82
82
  ]
83
83
  },
84
+ {
85
+ "config": {
86
+ "includeIf": [
87
+ "react",
88
+ "telefunc"
89
+ ]
90
+ },
91
+ "folder": "@batijs/react-telefunc",
92
+ "description": "",
93
+ "subfolders": [
94
+ "files"
95
+ ]
96
+ },
84
97
  {
85
98
  "config": {},
86
99
  "folder": "@batijs/shared",
@@ -101,6 +114,19 @@
101
114
  "files"
102
115
  ]
103
116
  },
117
+ {
118
+ "config": {
119
+ "includeIf": [
120
+ "solid",
121
+ "telefunc"
122
+ ]
123
+ },
124
+ "folder": "@batijs/solid-telefunc",
125
+ "description": "",
126
+ "subfolders": [
127
+ "files"
128
+ ]
129
+ },
104
130
  {
105
131
  "config": {
106
132
  "flag": "tailwindcss",
package/dist/index.js CHANGED
@@ -540,7 +540,7 @@ Please report this issue to https://github.com/magne4000/bati`
540
540
  // package.json
541
541
  var package_default = {
542
542
  name: "@batijs/cli",
543
- version: "0.0.53",
543
+ version: "0.0.54",
544
544
  type: "module",
545
545
  scripts: {
546
546
  prerelease: "rimraf ./dist",
@@ -564,7 +564,7 @@ var package_default = {
564
564
  espree: "^9.6.1",
565
565
  execa: "^7.1.1",
566
566
  "get-port": "^7.0.0",
567
- "node-fetch": "^3.3.1",
567
+ "node-fetch": "^3.3.2",
568
568
  rimraf: "^5.0.1",
569
569
  "tree-kill": "^1.2.2",
570
570
  tsup: "^7.1.0",
@@ -802,7 +802,9 @@ async function checkArguments(args) {
802
802
  await access(args.project, constants.W_OK);
803
803
  } catch (_) {
804
804
  console.error(
805
- `${yellow("\u26A0")} Target folder ${cyan(args.project)} already exists but is not writable. ${yellow("Aborting")}.`
805
+ `${yellow("\u26A0")} Target folder ${cyan(args.project)} already exists but is not writable. ${yellow(
806
+ "Aborting"
807
+ )}.`
806
808
  );
807
809
  process.exit(3);
808
810
  }
@@ -837,6 +839,15 @@ async function retrieveHooks(hooks) {
837
839
  }
838
840
  return map;
839
841
  }
842
+ function testFlags(flags, bl) {
843
+ if (flags.includes(bl.config.flag)) {
844
+ return true;
845
+ }
846
+ if (Array.isArray(bl.config.includeIf)) {
847
+ return bl.config.includeIf.every((f) => flags.includes(f));
848
+ }
849
+ return false;
850
+ }
840
851
  async function run() {
841
852
  const dir = boilerplatesDir();
842
853
  const boilerplates = await parseBoilerplates(dir);
@@ -857,7 +868,7 @@ async function run() {
857
868
  const hooks = [];
858
869
  const features = [];
859
870
  const flags = Object.entries(args).filter(([, val]) => val === true).map(([key]) => key);
860
- for (const bl of boilerplates.filter((b) => !b.config.flag)) {
871
+ for (const bl of boilerplates.filter((b) => !b.config.flag && !b.config.includeIf)) {
861
872
  if (bl.subfolders.includes("files")) {
862
873
  sources.push(join(dir, bl.folder, "files"));
863
874
  }
@@ -865,8 +876,8 @@ async function run() {
865
876
  hooks.push(join(dir, bl.folder, "hooks"));
866
877
  }
867
878
  }
868
- for (const bl of boilerplates.filter((b) => Boolean(b.config.flag))) {
869
- if (flags.includes(bl.config.flag)) {
879
+ for (const bl of boilerplates.filter((b) => Boolean(b.config.flag) || Array.isArray(b.config.includeIf))) {
880
+ if (testFlags(flags, bl)) {
870
881
  if (bl.subfolders.includes("files")) {
871
882
  sources.push(join(dir, bl.folder, "files"));
872
883
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@batijs/cli",
3
- "version": "0.0.53",
3
+ "version": "0.0.54",
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",
@@ -16,7 +16,7 @@
16
16
  "espree": "^9.6.1",
17
17
  "execa": "^7.1.1",
18
18
  "get-port": "^7.0.0",
19
- "node-fetch": "^3.3.1",
19
+ "node-fetch": "^3.3.2",
20
20
  "rimraf": "^5.0.1",
21
21
  "tree-kill": "^1.2.2",
22
22
  "tsup": "^7.1.0",
@@ -24,11 +24,11 @@
24
24
  "vite": "^4.4.7",
25
25
  "vitest": "^0.33.0",
26
26
  "which": "^3.0.1",
27
- "@batijs/tsup": "0.0.53",
28
- "@batijs/build": "0.0.53"
27
+ "@batijs/build": "0.0.54",
28
+ "@batijs/tsup": "0.0.54"
29
29
  },
30
30
  "dependencies": {
31
- "@batijs/core": "0.0.53"
31
+ "@batijs/core": "0.0.54"
32
32
  },
33
33
  "bin": "./dist/index.js",
34
34
  "exports": {