@batijs/cli 0.0.86 → 0.0.88

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 (76) hide show
  1. package/dist/boilerplates/@batijs/edgedb/files/$package.json.js +3 -3
  2. package/dist/boilerplates/@batijs/edgedb/{package-KT5MTOEW.js → package-Z3MWAXVW.js} +2 -2
  3. package/dist/boilerplates/@batijs/eslint/files/$package.json.js +17 -0
  4. package/dist/boilerplates/@batijs/eslint/files/.eslintignore +7 -0
  5. package/dist/boilerplates/@batijs/eslint/files/.eslintrc.json +10 -0
  6. package/dist/boilerplates/@batijs/eslint/package-6IZEDCMJ.js +61 -0
  7. package/dist/boilerplates/@batijs/express/files/$package.json.js +4 -4
  8. package/dist/boilerplates/@batijs/express/files/express-entry.ts +1 -1
  9. package/dist/boilerplates/@batijs/express/{package-SRLMDQOG.js → package-TAXLRPPG.js} +4 -4
  10. package/dist/boilerplates/@batijs/h3/files/$package.json.js +4 -4
  11. package/dist/boilerplates/@batijs/h3/files/h3-entry.ts +1 -1
  12. package/dist/boilerplates/@batijs/h3/{package-FGRNBFRV.js → package-GAI6KFVK.js} +4 -4
  13. package/dist/boilerplates/@batijs/hattip/files/$package.json.js +4 -4
  14. package/dist/boilerplates/@batijs/hattip/files/$vite.config.ts.js +2 -2
  15. package/dist/boilerplates/@batijs/hattip/{package-QHKHWIGI.js → package-3BN33DJA.js} +4 -4
  16. package/dist/boilerplates/@batijs/prisma/files/$.env.js +2 -2
  17. package/dist/boilerplates/@batijs/prisma/files/$package.json.js +3 -3
  18. package/dist/boilerplates/@batijs/prisma/{package-ZSTKB5SK.js → package-5JR5MUIX.js} +3 -3
  19. package/dist/boilerplates/@batijs/react/files/$.eslintrc.json.js +16 -0
  20. package/dist/boilerplates/@batijs/react/files/$package.json.js +8 -3
  21. package/dist/boilerplates/@batijs/react/files/$tsconfig.json.js +2 -2
  22. package/dist/boilerplates/@batijs/react/files/$vite.config.ts.js +6 -4
  23. package/dist/boilerplates/@batijs/react/files/components/Link.tsx +8 -10
  24. package/dist/boilerplates/@batijs/react/files/layouts/LayoutDefault.tsx +1 -1
  25. package/dist/boilerplates/@batijs/react/files/pages/_error/+Page.tsx +1 -3
  26. package/dist/boilerplates/@batijs/react/files/pages/index/Counter.tsx +1 -3
  27. package/dist/boilerplates/@batijs/react/files/pages/star-wars/@id/+Page.tsx +1 -3
  28. package/dist/boilerplates/@batijs/react/files/pages/star-wars/@id/+onBeforeRender.ts +2 -4
  29. package/dist/boilerplates/@batijs/react/files/pages/star-wars/filterMovieData.ts +1 -5
  30. package/dist/boilerplates/@batijs/react/files/pages/star-wars/index/+Page.tsx +1 -3
  31. package/dist/boilerplates/@batijs/react/files/pages/star-wars/index/+onBeforeRender.ts +2 -5
  32. package/dist/boilerplates/@batijs/react/{package-7UIWNLCR.js → package-EYTH4VNP.js} +9 -5
  33. package/dist/boilerplates/@batijs/react-telefunc/files/database/todoItems.ts +2 -5
  34. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+config.h.ts +3 -1
  35. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+onBeforeRender.ts +1 -3
  36. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.telefunc.ts +2 -4
  37. package/dist/boilerplates/@batijs/shared/files/$index.html.js +2 -2
  38. package/dist/boilerplates/@batijs/shared/files/package.json +1 -1
  39. package/dist/boilerplates/@batijs/solid/files/$.eslintrc.json.js +13 -0
  40. package/dist/boilerplates/@batijs/solid/files/$package.json.js +8 -3
  41. package/dist/boilerplates/@batijs/solid/files/$tsconfig.json.js +2 -2
  42. package/dist/boilerplates/@batijs/solid/files/$vite.config.ts.js +3 -3
  43. package/dist/boilerplates/@batijs/solid/files/layouts/HeadDefault.tsx +1 -1
  44. package/dist/boilerplates/@batijs/solid/files/pages/_error/+Page.tsx +17 -16
  45. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+Page.tsx +1 -1
  46. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+onBeforeRender.ts +3 -2
  47. package/dist/boilerplates/@batijs/solid/{package-4C6WDKEK.js → package-3SC4XVSR.js} +5 -4
  48. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+Page.tsx +3 -4
  49. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+onBeforeRender.ts +2 -2
  50. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.tsx +3 -4
  51. package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +3 -3
  52. package/dist/boilerplates/@batijs/tailwindcss/{package-V23T5FWL.js → package-GTN2QH7M.js} +3 -3
  53. package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +3 -3
  54. package/dist/boilerplates/@batijs/telefunc/files/$vite.config.ts.js +2 -2
  55. package/dist/boilerplates/@batijs/telefunc/{package-FVE6G445.js → package-3G2SQFKV.js} +3 -3
  56. package/dist/boilerplates/@batijs/vercel/files/$package.json.js +3 -3
  57. package/dist/boilerplates/@batijs/vercel/files/$vite.config.ts.js +2 -2
  58. package/dist/boilerplates/@batijs/vercel/{package-4ZQYRTJA.js → package-2NMHCJGC.js} +5 -5
  59. package/dist/boilerplates/@batijs/vue/files/$.eslintrc.json.js +16 -0
  60. package/dist/boilerplates/@batijs/vue/files/$package.json.js +15 -4
  61. package/dist/boilerplates/@batijs/vue/files/$tsconfig.json.js +2 -2
  62. package/dist/boilerplates/@batijs/vue/files/$vite.config.ts.js +2 -2
  63. package/dist/boilerplates/@batijs/vue/files/components/Counter.vue +2 -2
  64. package/dist/boilerplates/@batijs/vue/files/components/Link.vue +13 -11
  65. package/dist/boilerplates/@batijs/vue/files/components/Logo.vue +5 -1
  66. package/dist/boilerplates/@batijs/vue/files/layouts/HeadDefault.vue +9 -2
  67. package/dist/boilerplates/@batijs/vue/files/layouts/LayoutDefault.vue +9 -3
  68. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/@id/+Page.vue +8 -3
  69. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+Page.vue +10 -2
  70. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+onBeforeRender.ts +3 -2
  71. package/dist/boilerplates/@batijs/vue/{package-BURNOCV3.js → package-SEZV7AAY.js} +5 -4
  72. package/dist/boilerplates/@batijs/vue-telefunc/files/components/TodoList.vue +15 -4
  73. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+Page.vue +3 -2
  74. package/dist/boilerplates/boilerplates.json +15 -1
  75. package/dist/index.js +85 -53
  76. package/package.json +5 -12
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/vue";
3
3
  var private2 = true;
4
- var version = "0.0.86";
4
+ var version = "0.0.88";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -13,17 +13,18 @@ var license = "MIT";
13
13
  var devDependencies = {
14
14
  "@batijs/tsup": "workspace:*",
15
15
  "@types/node": "^16.18.40",
16
- "@vitejs/plugin-vue": "^4.3.4",
16
+ "@vitejs/plugin-vue": "^4.4.0",
17
17
  "@vue/compiler-sfc": "^3.3.4",
18
18
  "@vue/server-renderer": "^3.3.4",
19
19
  "cross-fetch": "^4.0.0",
20
+ "eslint-plugin-vue": "^9.17.0",
20
21
  tailwindcss: "^3.3.3",
21
22
  tsup: "^7.2.0",
22
23
  typescript: "^5.2.2",
23
24
  "unplugin-vue-markdown": "^0.24.3",
25
+ vike: "^0.4.143",
24
26
  "vike-vue": "^0.4.0",
25
- vite: "^4.4.9",
26
- vike: "^0.4.142",
27
+ vite: "^4.4.11",
27
28
  vue: "^3.3.4"
28
29
  };
29
30
  var dependencies = {
@@ -1,18 +1,29 @@
1
1
  <template>
2
2
  <ul>
3
- <li v-for="item in todoItems">{{ item.text }}</li>
3
+ <li
4
+ v-for="item in todoItems"
5
+ :key="item.text"
6
+ >
7
+ {{ item.text }}
8
+ </li>
4
9
  <li>
5
10
  <form @submit.prevent="submitDraft()">
6
- <input type="text" v-model="draft" />{{ " " }}
7
- <button type="submit">Add to-do</button>
11
+ <input
12
+ v-model="draft"
13
+ type="text"
14
+ >{{ " " }}
15
+ <button type="submit">
16
+ Add to-do
17
+ </button>
8
18
  </form>
9
19
  </li>
10
20
  </ul>
11
21
  </template>
12
22
 
13
23
  <script lang="ts" setup>
24
+ import { ref, useAttrs } from "vue";
14
25
  import { onNewTodo } from "./TodoList.telefunc.js";
15
- import { ref, useAttrs } from 'vue';
26
+
16
27
  const { todoItemsInitial } = useAttrs();
17
28
 
18
29
  const todoItems = ref(todoItemsInitial);
@@ -1,13 +1,14 @@
1
1
  <template>
2
2
  <div>
3
3
  <h1>To-do List</h1>
4
- <TodoList :todoItemsInitial="todoItemsInitial" />
4
+ <TodoList :todo-items-initial="todoItemsInitial" />
5
5
  <Counter />
6
6
  </div>
7
7
  </template>
8
8
 
9
9
  <script lang="ts" setup>
10
- import { useAttrs } from 'vue';
10
+ import { useAttrs } from "vue";
11
+
11
12
  const { todoItemsInitial } = useAttrs();
12
13
  </script>
13
14
 
@@ -22,6 +22,18 @@
22
22
  "hooks"
23
23
  ]
24
24
  },
25
+ {
26
+ "config": {
27
+ "flag": "eslint",
28
+ "name": "ESLint",
29
+ "homepage": "https://eslint.org"
30
+ },
31
+ "folder": "@batijs/eslint",
32
+ "description": "",
33
+ "subfolders": [
34
+ "files"
35
+ ]
36
+ },
25
37
  {
26
38
  "config": {
27
39
  "flag": "express",
@@ -107,7 +119,9 @@
107
119
  ]
108
120
  },
109
121
  {
110
- "config": {},
122
+ "config": {
123
+ "enforce": "pre"
124
+ },
111
125
  "folder": "@batijs/shared",
112
126
  "description": "",
113
127
  "subfolders": [
package/dist/index.js CHANGED
@@ -448,11 +448,25 @@ async function runMain(cmd, opts = {}) {
448
448
  }
449
449
  }
450
450
 
451
- // ../build/dist/exec.js
452
- import { loadFile, renderSquirrelly, transformAstAndGenerate } from "@batijs/core";
451
+ // ../build/dist/index.js
453
452
  import { existsSync } from "fs";
454
453
  import { copyFile, mkdir, opendir, readFile, writeFile } from "fs/promises";
455
454
  import path from "path";
455
+ import { loadFile, renderSquirrelly, transformAstAndGenerate } from "@batijs/core";
456
+ function queue() {
457
+ const tasks = [];
458
+ return {
459
+ add(task) {
460
+ tasks.push(task);
461
+ },
462
+ async run() {
463
+ let task;
464
+ while (task = tasks.shift()) {
465
+ await task();
466
+ }
467
+ }
468
+ };
469
+ }
456
470
  var reIgnoreFile = /^(chunk-|asset-|#)/gi;
457
471
  var isWin = process.platform === "win32";
458
472
  function toDist(filepath, source, dist) {
@@ -508,9 +522,16 @@ async function fileContainsBatiMeta(filepath) {
508
522
  const code = await readFile(filepath, { encoding: "utf-8" });
509
523
  return code.includes("import.meta.BATI_");
510
524
  }
525
+ async function importTransformer(p) {
526
+ const importFile = isWin ? "file://" + p : p;
527
+ const f = await import(importFile);
528
+ return f.default;
529
+ }
511
530
  async function main(options, meta) {
512
531
  const sources = Array.isArray(options.source) ? options.source : [options.source];
513
532
  const targets = /* @__PURE__ */ new Set();
533
+ const simpleCopyQ = queue();
534
+ const transformAndWriteQ = queue();
514
535
  for (const source of sources) {
515
536
  for await (const p of walk(source)) {
516
537
  const target = toDist(p, source, options.dist);
@@ -523,53 +544,67 @@ async function main(options, meta) {
523
544
  Please report this issue to https://github.com/magne4000/bati`
524
545
  );
525
546
  } else if (parsed.name.startsWith("$") && parsed.ext.match(/\.jsx?$/)) {
526
- const importFile = isWin ? "file://" + p : p;
527
- const f = await import(importFile);
528
- const fileContent = transformFileAfterExec(
529
- target,
530
- await f.default(targets.has(target) ? () => readFile(target, { encoding: "utf-8" }) : void 0, meta)
531
- );
532
- if (fileContent !== null) {
533
- await safeWriteFile(target, fileContent);
534
- }
535
- targets.add(target);
547
+ transformAndWriteQ.add(async () => {
548
+ const transformer = await importTransformer(p);
549
+ const rf = () => {
550
+ return readFile(target, { encoding: "utf-8" });
551
+ };
552
+ const fileContent = transformFileAfterExec(
553
+ target,
554
+ await transformer({
555
+ readfile: targets.has(target) ? rf : void 0,
556
+ meta,
557
+ source,
558
+ target
559
+ })
560
+ );
561
+ if (fileContent !== null) {
562
+ await safeWriteFile(target, fileContent);
563
+ targets.add(target);
564
+ }
565
+ });
536
566
  } else if (await fileContainsBatiMeta(p)) {
537
- let fileContent = "";
538
- if (parsed.ext.match(/\.[tj]sx?$/)) {
539
- const mod = await loadFile(p);
540
- fileContent = await transformAstAndGenerate(mod.$ast, meta, {
541
- filepath: p
542
- });
543
- } else {
544
- const template = await readFile(p, { encoding: "utf-8" });
545
- try {
546
- fileContent = renderSquirrelly(template, meta);
547
- } catch (e) {
548
- console.error("SquirrellyJS error while rendering", p);
549
- throw e;
567
+ transformAndWriteQ.add(async () => {
568
+ let fileContent = "";
569
+ if (parsed.ext.match(/\.[tj]sx?$/)) {
570
+ const mod = await loadFile(p);
571
+ fileContent = await transformAstAndGenerate(mod.$ast, meta, {
572
+ filepath: p
573
+ });
574
+ } else {
575
+ const template = await readFile(p, { encoding: "utf-8" });
576
+ try {
577
+ fileContent = renderSquirrelly(template, meta);
578
+ } catch (e) {
579
+ console.error("SquirrellyJS error while rendering", p);
580
+ throw e;
581
+ }
550
582
  }
551
- }
552
- if (fileContent) {
553
- await safeWriteFile(target, fileContent);
554
- }
555
- targets.add(target);
583
+ if (fileContent) {
584
+ await safeWriteFile(target, fileContent);
585
+ targets.add(target);
586
+ }
587
+ });
556
588
  } else {
557
- await safeCopyFile(p, target);
558
- targets.add(target);
589
+ simpleCopyQ.add(async () => {
590
+ await safeCopyFile(p, target);
591
+ targets.add(target);
592
+ });
559
593
  }
560
594
  }
561
595
  }
596
+ await simpleCopyQ.run();
597
+ await transformAndWriteQ.run();
562
598
  }
563
599
 
564
600
  // package.json
565
601
  var package_default = {
566
602
  name: "@batijs/cli",
567
- version: "0.0.86",
603
+ version: "0.0.88",
568
604
  type: "module",
569
605
  scripts: {
570
606
  prerelease: "rimraf ./dist",
571
607
  prepublishOnly: "pnpm run build",
572
- test: "pnpm run build && vitest run",
573
608
  build: "rimraf ./dist && tsup"
574
609
  },
575
610
  keywords: [],
@@ -585,17 +620,11 @@ var package_default = {
585
620
  citty: "^0.1.4",
586
621
  colorette: "^2.0.20",
587
622
  esbuild: "^0.19.4",
588
- espree: "^9.6.1",
589
623
  execa: "^8.0.1",
590
- "get-port": "^7.0.0",
591
- "node-fetch": "^3.3.2",
592
624
  rimraf: "^5.0.5",
593
- "tree-kill": "^1.2.2",
594
625
  tsup: "^7.2.0",
595
626
  typescript: "^5.2.2",
596
- vite: "^4.4.9",
597
- vitest: "^0.34.6",
598
- which: "^4.0.0"
627
+ vite: "^4.4.11"
599
628
  },
600
629
  dependencies: {
601
630
  "@batijs/core": "workspace:*"
@@ -907,13 +936,13 @@ async function retrieveHooks(hooks) {
907
936
  return map;
908
937
  }
909
938
  function testFlags(flags, bl) {
910
- if (flags.includes(bl.config.flag)) {
911
- return true;
939
+ if (bl.config.flag) {
940
+ return flags.includes(bl.config.flag);
912
941
  }
913
942
  if (Array.isArray(bl.config.includeIf)) {
914
943
  return bl.config.includeIf.every((f) => flags.includes(f));
915
944
  }
916
- return false;
945
+ return true;
917
946
  }
918
947
  async function run() {
919
948
  const dir = boilerplatesDir();
@@ -936,15 +965,18 @@ async function run() {
936
965
  const features = [];
937
966
  const flags = Object.entries(args).filter(([, val]) => val === true).map(([key]) => key);
938
967
  checkRules(flags);
939
- for (const bl of boilerplates.filter((b) => !b.config.flag && !b.config.includeIf)) {
940
- if (bl.subfolders.includes("files")) {
941
- sources.push(join(dir, bl.folder, "files"));
942
- }
943
- if (bl.subfolders.includes("hooks")) {
944
- hooks.push(join(dir, bl.folder, "hooks"));
945
- }
946
- }
947
- for (const bl of boilerplates.filter((b) => Boolean(b.config.flag) || Array.isArray(b.config.includeIf))) {
968
+ boilerplates.sort((b1, b2) => {
969
+ if (b1.config.enforce === "pre")
970
+ return -1;
971
+ if (b1.config.enforce === "post")
972
+ return 1;
973
+ if (b2.config.enforce === "pre")
974
+ return 1;
975
+ if (b2.config.enforce === "post")
976
+ return -1;
977
+ return 0;
978
+ });
979
+ for (const bl of boilerplates) {
948
980
  if (testFlags(flags, bl)) {
949
981
  if (bl.subfolders.includes("files")) {
950
982
  sources.push(join(dir, bl.folder, "files"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@batijs/cli",
3
- "version": "0.0.86",
3
+ "version": "0.0.88",
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",
@@ -13,22 +13,16 @@
13
13
  "citty": "^0.1.4",
14
14
  "colorette": "^2.0.20",
15
15
  "esbuild": "^0.19.4",
16
- "espree": "^9.6.1",
17
16
  "execa": "^8.0.1",
18
- "get-port": "^7.0.0",
19
- "node-fetch": "^3.3.2",
20
17
  "rimraf": "^5.0.5",
21
- "tree-kill": "^1.2.2",
22
18
  "tsup": "^7.2.0",
23
19
  "typescript": "^5.2.2",
24
- "vite": "^4.4.9",
25
- "vitest": "^0.34.6",
26
- "which": "^4.0.0",
27
- "@batijs/build": "0.0.86",
28
- "@batijs/tsup": "0.0.86"
20
+ "vite": "^4.4.11",
21
+ "@batijs/build": "0.0.88",
22
+ "@batijs/tsup": "0.0.88"
29
23
  },
30
24
  "dependencies": {
31
- "@batijs/core": "0.0.86"
25
+ "@batijs/core": "0.0.88"
32
26
  },
33
27
  "bin": "./dist/index.js",
34
28
  "exports": {
@@ -39,7 +33,6 @@
39
33
  ],
40
34
  "scripts": {
41
35
  "prerelease": "rimraf ./dist",
42
- "test": "pnpm run build && vitest run",
43
36
  "build": "rimraf ./dist && tsup"
44
37
  }
45
38
  }