task-script-support-cli 0.1.1 → 0.2.4

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 (246) hide show
  1. package/assets/yargs-template/task-runner/.prettierignore +3 -0
  2. package/assets/yargs-template/task-runner/.prettierrc +1 -0
  3. package/assets/yargs-template/task-runner/.vscode/launch.json +34 -0
  4. package/assets/yargs-template/task-runner/eslint.config.ts +11 -0
  5. package/assets/yargs-template/task-runner/install-link.sh +21 -0
  6. package/assets/yargs-template/task-runner/package-lock.json +3387 -0
  7. package/assets/yargs-template/task-runner/package.json +51 -0
  8. package/assets/yargs-template/task-runner/src/commands/verify.ts +10 -0
  9. package/assets/yargs-template/task-runner/src/index.ts +46 -0
  10. package/assets/yargs-template/task-runner/src/services/banner-service.ts +38 -0
  11. package/assets/yargs-template/task-runner/src/services/log-service.ts +48 -0
  12. package/assets/yargs-template/task-runner/src/services/spawn-service.ts +87 -0
  13. package/assets/yargs-template/task-runner/src/services/util-service.ts +28 -0
  14. package/assets/yargs-template/task-runner/src/tasks/check-env.ts +49 -0
  15. package/assets/yargs-template/task-runner/src/tasks/log-state.ts +22 -0
  16. package/assets/yargs-template/task-runner/src/tasks/print-banner.ts +73 -0
  17. package/assets/yargs-template/task-runner/src/types/process.ts +9 -0
  18. package/assets/yargs-template/task-runner/src/types/state.ts +31 -0
  19. package/assets/yargs-template/task-runner/src/wrappers/app-task.ts +42 -0
  20. package/assets/yargs-template/task-runner/src/wrappers/command.ts +20 -0
  21. package/assets/yargs-template/task-runner/src/wrappers/dependencies.ts +24 -0
  22. package/assets/yargs-template/task-runner/task-runner +3 -0
  23. package/assets/yargs-template/task-runner/templater.sh +57 -0
  24. package/assets/yargs-template/task-runner/tests/commands/verify.test.ts +42 -0
  25. package/assets/yargs-template/task-runner/tests/services/spawn-service.test.ts +132 -0
  26. package/assets/yargs-template/task-runner/tests/services/util-service.test.ts +36 -0
  27. package/assets/yargs-template/task-runner/tests/setup.ts +1 -0
  28. package/assets/yargs-template/task-runner/tests/tasks/check-env.test.ts +30 -0
  29. package/assets/yargs-template/task-runner/tsconfig.json +27 -0
  30. package/assets/yargs-template/task-runner/vitest.config.ts +14 -0
  31. package/dist/assets/yargs-template/task-runner/.prettierignore +3 -0
  32. package/dist/assets/yargs-template/task-runner/.prettierrc +1 -0
  33. package/dist/assets/yargs-template/task-runner/.vscode/launch.json +34 -0
  34. package/dist/assets/yargs-template/task-runner/eslint.config.ts +11 -0
  35. package/dist/assets/yargs-template/task-runner/install-link.sh +21 -0
  36. package/dist/assets/yargs-template/task-runner/package-lock.json +3387 -0
  37. package/dist/assets/yargs-template/task-runner/package.json +51 -0
  38. package/dist/assets/yargs-template/task-runner/src/commands/verify.ts +10 -0
  39. package/dist/assets/yargs-template/task-runner/src/index.ts +46 -0
  40. package/dist/assets/yargs-template/task-runner/src/services/banner-service.ts +38 -0
  41. package/dist/assets/yargs-template/task-runner/src/services/log-service.ts +48 -0
  42. package/dist/assets/yargs-template/task-runner/src/services/spawn-service.ts +87 -0
  43. package/dist/assets/yargs-template/task-runner/src/services/util-service.ts +28 -0
  44. package/dist/assets/yargs-template/task-runner/src/tasks/check-env.ts +49 -0
  45. package/dist/assets/yargs-template/task-runner/src/tasks/log-state.ts +22 -0
  46. package/dist/assets/yargs-template/task-runner/src/tasks/print-banner.ts +73 -0
  47. package/dist/assets/yargs-template/task-runner/src/types/process.ts +9 -0
  48. package/dist/assets/yargs-template/task-runner/src/types/state.ts +31 -0
  49. package/dist/assets/yargs-template/task-runner/src/wrappers/app-task.ts +42 -0
  50. package/dist/assets/yargs-template/task-runner/src/wrappers/command.ts +20 -0
  51. package/dist/assets/yargs-template/task-runner/src/wrappers/dependencies.ts +24 -0
  52. package/dist/assets/yargs-template/task-runner/task-runner +3 -0
  53. package/dist/assets/yargs-template/task-runner/templater.sh +57 -0
  54. package/dist/assets/yargs-template/task-runner/tests/commands/verify.test.ts +42 -0
  55. package/dist/assets/yargs-template/task-runner/tests/services/spawn-service.test.ts +132 -0
  56. package/dist/assets/yargs-template/task-runner/tests/services/util-service.test.ts +36 -0
  57. package/dist/assets/yargs-template/task-runner/tests/setup.ts +1 -0
  58. package/dist/assets/yargs-template/task-runner/tests/tasks/check-env.test.ts +30 -0
  59. package/dist/assets/yargs-template/task-runner/tsconfig.json +27 -0
  60. package/dist/assets/yargs-template/task-runner/vitest.config.ts +14 -0
  61. package/dist/package.json +9 -3
  62. package/dist/src/commands/about.d.ts +2 -2
  63. package/dist/src/commands/about.d.ts.map +1 -1
  64. package/dist/src/commands/about.js +2 -2
  65. package/dist/src/commands/about.js.map +1 -1
  66. package/dist/src/commands/configure.d.ts +8 -0
  67. package/dist/src/commands/configure.d.ts.map +1 -0
  68. package/dist/src/commands/configure.js +25 -0
  69. package/dist/src/commands/configure.js.map +1 -0
  70. package/dist/src/commands/gen.d.ts +9 -7
  71. package/dist/src/commands/gen.d.ts.map +1 -1
  72. package/dist/src/commands/gen.js +10 -6
  73. package/dist/src/commands/gen.js.map +1 -1
  74. package/dist/src/commands/new.d.ts +8 -0
  75. package/dist/src/commands/new.d.ts.map +1 -0
  76. package/dist/src/commands/new.js +25 -0
  77. package/dist/src/commands/new.js.map +1 -0
  78. package/dist/src/index.js +10 -0
  79. package/dist/src/index.js.map +1 -1
  80. package/dist/src/services/cache-service.d.ts +11 -0
  81. package/dist/src/services/cache-service.d.ts.map +1 -0
  82. package/dist/src/services/cache-service.js +64 -0
  83. package/dist/src/services/cache-service.js.map +1 -0
  84. package/dist/src/services/file-service.d.ts +8 -2
  85. package/dist/src/services/file-service.d.ts.map +1 -1
  86. package/dist/src/services/file-service.js +38 -6
  87. package/dist/src/services/file-service.js.map +1 -1
  88. package/dist/src/services/log-service.d.ts +1 -0
  89. package/dist/src/services/log-service.d.ts.map +1 -1
  90. package/dist/src/services/log-service.js +14 -1
  91. package/dist/src/services/log-service.js.map +1 -1
  92. package/dist/src/services/project-service.d.ts +3 -3
  93. package/dist/src/services/project-service.d.ts.map +1 -1
  94. package/dist/src/services/project-service.js +10 -10
  95. package/dist/src/services/project-service.js.map +1 -1
  96. package/dist/src/services/prompt-service.d.ts +34 -0
  97. package/dist/src/services/prompt-service.d.ts.map +1 -0
  98. package/dist/src/services/prompt-service.js +80 -0
  99. package/dist/src/services/prompt-service.js.map +1 -0
  100. package/dist/src/services/spawn-service.d.ts +2 -1
  101. package/dist/src/services/spawn-service.d.ts.map +1 -1
  102. package/dist/src/services/spawn-service.js +16 -1
  103. package/dist/src/services/spawn-service.js.map +1 -1
  104. package/dist/src/services/util-service.d.ts +2 -0
  105. package/dist/src/services/util-service.d.ts.map +1 -1
  106. package/dist/src/services/util-service.js +4 -0
  107. package/dist/src/services/util-service.js.map +1 -1
  108. package/dist/src/tasks/check-env.d.ts +3 -2
  109. package/dist/src/tasks/check-env.d.ts.map +1 -1
  110. package/dist/src/tasks/check-env.js +11 -3
  111. package/dist/src/tasks/check-env.js.map +1 -1
  112. package/dist/src/tasks/configure.d.ts +44 -0
  113. package/dist/src/tasks/configure.d.ts.map +1 -0
  114. package/dist/src/tasks/configure.js +102 -0
  115. package/dist/src/tasks/configure.js.map +1 -0
  116. package/dist/src/tasks/create-new-project.d.ts +26 -0
  117. package/dist/src/tasks/create-new-project.d.ts.map +1 -0
  118. package/dist/src/tasks/create-new-project.js +76 -0
  119. package/dist/src/tasks/create-new-project.js.map +1 -0
  120. package/dist/src/tasks/generate/generate-command.d.ts +35 -0
  121. package/dist/src/tasks/generate/generate-command.d.ts.map +1 -0
  122. package/dist/src/tasks/generate/generate-command.js +128 -0
  123. package/dist/src/tasks/generate/generate-command.js.map +1 -0
  124. package/dist/src/tasks/generate/generate-service.d.ts +30 -0
  125. package/dist/src/tasks/generate/generate-service.d.ts.map +1 -0
  126. package/dist/src/tasks/{generate-service.js → generate/generate-service.js} +32 -31
  127. package/dist/src/tasks/generate/generate-service.js.map +1 -0
  128. package/dist/src/tasks/generate/generate-task.d.ts +30 -0
  129. package/dist/src/tasks/generate/generate-task.d.ts.map +1 -0
  130. package/dist/src/tasks/{generate-task.js → generate/generate-task.js} +32 -31
  131. package/dist/src/tasks/generate/generate-task.js.map +1 -0
  132. package/dist/src/tasks/generate/select-gen-target-name.d.ts +15 -0
  133. package/dist/src/tasks/generate/select-gen-target-name.d.ts.map +1 -0
  134. package/dist/src/tasks/generate/select-gen-target-name.js +59 -0
  135. package/dist/src/tasks/generate/select-gen-target-name.js.map +1 -0
  136. package/dist/src/tasks/generate/select-gen-target.d.ts +14 -0
  137. package/dist/src/tasks/generate/select-gen-target.d.ts.map +1 -0
  138. package/dist/src/tasks/generate/select-gen-target.js +60 -0
  139. package/dist/src/tasks/generate/select-gen-target.js.map +1 -0
  140. package/dist/src/tasks/{print-about-information.d.ts → stdout/print-about-information.d.ts} +1 -1
  141. package/dist/src/tasks/stdout/print-about-information.d.ts.map +1 -0
  142. package/dist/src/tasks/{print-about-information.js → stdout/print-about-information.js} +2 -2
  143. package/dist/src/tasks/stdout/print-about-information.js.map +1 -0
  144. package/dist/src/tasks/stdout/print-banner.d.ts +12 -0
  145. package/dist/src/tasks/stdout/print-banner.d.ts.map +1 -0
  146. package/dist/src/tasks/{print-banner.js → stdout/print-banner.js} +15 -11
  147. package/dist/src/tasks/stdout/print-banner.js.map +1 -0
  148. package/dist/src/tasks/{print-generated-results.d.ts → stdout/print-generated-results.d.ts} +2 -2
  149. package/dist/src/tasks/stdout/print-generated-results.d.ts.map +1 -0
  150. package/dist/src/tasks/{print-generated-results.js → stdout/print-generated-results.js} +16 -12
  151. package/dist/src/tasks/stdout/print-generated-results.js.map +1 -0
  152. package/dist/src/tasks/sync-configuration.d.ts +38 -0
  153. package/dist/src/tasks/sync-configuration.d.ts.map +1 -0
  154. package/dist/src/tasks/sync-configuration.js +121 -0
  155. package/dist/src/tasks/sync-configuration.js.map +1 -0
  156. package/dist/src/tasks/test-task.d.ts +10 -0
  157. package/dist/src/tasks/test-task.d.ts.map +1 -0
  158. package/dist/src/tasks/test-task.js +36 -0
  159. package/dist/src/tasks/test-task.js.map +1 -0
  160. package/dist/src/templates/command.js +2 -2
  161. package/dist/src/templates/command.js.map +1 -1
  162. package/dist/src/templates/service.js +1 -1
  163. package/dist/src/templates/service.js.map +1 -1
  164. package/dist/src/types/process.d.ts +2 -1
  165. package/dist/src/types/process.d.ts.map +1 -1
  166. package/dist/src/types/process.js +1 -0
  167. package/dist/src/types/process.js.map +1 -1
  168. package/dist/src/types/project.d.ts +12 -0
  169. package/dist/src/types/project.d.ts.map +1 -0
  170. package/dist/src/types/project.js +3 -0
  171. package/dist/src/types/project.js.map +1 -0
  172. package/dist/src/types/state.d.ts +5 -1
  173. package/dist/src/types/state.d.ts.map +1 -1
  174. package/dist/src/types/state.js +1 -0
  175. package/dist/src/types/state.js.map +1 -1
  176. package/dist/src/wrappers/app-task.d.ts +1 -0
  177. package/dist/src/wrappers/app-task.d.ts.map +1 -1
  178. package/dist/src/wrappers/app-task.js +4 -0
  179. package/dist/src/wrappers/app-task.js.map +1 -1
  180. package/dist/vitest.config.d.ts +3 -0
  181. package/dist/vitest.config.d.ts.map +1 -0
  182. package/dist/vitest.config.js +16 -0
  183. package/dist/vitest.config.js.map +1 -0
  184. package/package.json +9 -3
  185. package/src/commands/about.ts +2 -2
  186. package/src/commands/configure.ts +10 -0
  187. package/src/commands/gen.ts +10 -6
  188. package/src/commands/new.ts +10 -0
  189. package/src/index.ts +12 -0
  190. package/src/services/cache-service.ts +50 -0
  191. package/src/services/file-service.ts +46 -5
  192. package/src/services/log-service.ts +14 -1
  193. package/src/services/project-service.ts +8 -5
  194. package/src/services/prompt-service.ts +71 -0
  195. package/src/services/spawn-service.ts +15 -1
  196. package/src/services/util-service.ts +5 -0
  197. package/src/tasks/check-env.ts +10 -2
  198. package/src/tasks/configure.ts +105 -0
  199. package/src/tasks/create-new-project.ts +66 -0
  200. package/src/tasks/generate/generate-command.ts +136 -0
  201. package/src/tasks/generate/generate-service.ts +78 -0
  202. package/src/tasks/generate/generate-task.ts +79 -0
  203. package/src/tasks/generate/select-gen-target-name.ts +44 -0
  204. package/src/tasks/generate/select-gen-target.ts +46 -0
  205. package/src/tasks/{print-about-information.ts → stdout/print-about-information.ts} +2 -2
  206. package/src/tasks/stdout/print-banner.ts +41 -0
  207. package/src/tasks/stdout/print-generated-results.ts +37 -0
  208. package/src/tasks/sync-configuration.ts +129 -0
  209. package/src/tasks/test-task.ts +20 -0
  210. package/src/templates/command.ts +2 -2
  211. package/src/templates/service.ts +1 -1
  212. package/src/types/process.ts +1 -0
  213. package/src/types/project.ts +12 -0
  214. package/src/types/state.ts +7 -1
  215. package/src/wrappers/app-task.ts +5 -0
  216. package/tests/index.spec.ts +8 -0
  217. package/tests/setup.ts +1 -0
  218. package/tsconfig.json +1 -1
  219. package/vitest.config.ts +14 -0
  220. package/dist/src/tasks/generate-command.d.ts +0 -23
  221. package/dist/src/tasks/generate-command.d.ts.map +0 -1
  222. package/dist/src/tasks/generate-command.js +0 -91
  223. package/dist/src/tasks/generate-command.js.map +0 -1
  224. package/dist/src/tasks/generate-service.d.ts +0 -26
  225. package/dist/src/tasks/generate-service.d.ts.map +0 -1
  226. package/dist/src/tasks/generate-service.js.map +0 -1
  227. package/dist/src/tasks/generate-task.d.ts +0 -26
  228. package/dist/src/tasks/generate-task.d.ts.map +0 -1
  229. package/dist/src/tasks/generate-task.js.map +0 -1
  230. package/dist/src/tasks/print-about-information.d.ts.map +0 -1
  231. package/dist/src/tasks/print-about-information.js.map +0 -1
  232. package/dist/src/tasks/print-banner.d.ts +0 -12
  233. package/dist/src/tasks/print-banner.d.ts.map +0 -1
  234. package/dist/src/tasks/print-banner.js.map +0 -1
  235. package/dist/src/tasks/print-generated-results.d.ts.map +0 -1
  236. package/dist/src/tasks/print-generated-results.js.map +0 -1
  237. package/dist/src/tasks/select-gen-target.d.ts +0 -9
  238. package/dist/src/tasks/select-gen-target.d.ts.map +0 -1
  239. package/dist/src/tasks/select-gen-target.js +0 -44
  240. package/dist/src/tasks/select-gen-target.js.map +0 -1
  241. package/src/tasks/generate-command.ts +0 -87
  242. package/src/tasks/generate-service.ts +0 -82
  243. package/src/tasks/generate-task.ts +0 -83
  244. package/src/tasks/print-banner.ts +0 -37
  245. package/src/tasks/print-generated-results.ts +0 -36
  246. package/src/tasks/select-gen-target.ts +0 -29
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const tsyringe_1 = require("tsyringe");
16
+ const app_task_1 = require("../wrappers/app-task");
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ const prompt_service_1 = require("../services/prompt-service");
19
+ let TestTask = class TestTask extends app_task_1.AppTask {
20
+ promptService;
21
+ loggerName = "Testing Things";
22
+ constructor(promptService) {
23
+ super();
24
+ this.promptService = promptService;
25
+ }
26
+ async run() {
27
+ // test task
28
+ console.log(chalk_1.default.magentaBright(JSON.stringify(this.state)));
29
+ }
30
+ };
31
+ TestTask = __decorate([
32
+ (0, tsyringe_1.autoInjectable)(),
33
+ __metadata("design:paramtypes", [prompt_service_1.PromptService])
34
+ ], TestTask);
35
+ exports.default = TestTask;
36
+ //# sourceMappingURL=test-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-task.js","sourceRoot":"./src/","sources":["src/tasks/test-task.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAA0C;AAE1C,mDAA+C;AAC/C,kDAA0B;AAC1B,+DAA2D;AAG5C,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,kBAAO;IAGvB;IAFpB,UAAU,GAAG,gBAAgB,CAAC;IAE9B,YAAoB,aAA4B;QAC9C,KAAK,EAAE,CAAC;QADU,kBAAa,GAAb,aAAa,CAAe;IAEhD,CAAC;IAED,KAAK,CAAC,GAAG;QACP,YAAY;QAEZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF,CAAA;AAZoB,QAAQ;IAD5B,IAAA,yBAAc,GAAE;qCAIoB,8BAAa;GAH7B,QAAQ,CAY5B;kBAZoB,QAAQ"}
@@ -6,12 +6,12 @@ import { Command } from "../wrappers/command";
6
6
  ${tasks
7
7
  .keys()
8
8
  .toArray()
9
- .map((k) => `import { ${k} } from "${tasks.get(k)}";`)
9
+ .map((k) => `import ${k} from "${tasks.get(k)}";`)
10
10
  .join("\n")}
11
11
 
12
12
  @singleton()
13
13
  export class ${className} extends Command {
14
- tasks = [${tasks.keys().toArray().join(",")}];
14
+ tasks = [${tasks.keys().toArray().join(", ")}];
15
15
  }
16
16
 
17
17
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"./src/","sources":["src/templates/command.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAChC,SAAiB,EACjB,QAA6B,IAAI,GAAG,EAAE,EACtC,EAAE,CACF;;EAEA,KAAK;KACJ,IAAI,EAAE;KACN,OAAO,EAAE;KACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;KACrD,IAAI,CAAC,IAAI,CAAC;;;eAGE,SAAS;aACX,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;;;CAG5C,CAAC;AAjBW,QAAA,kBAAkB,sBAiB7B"}
1
+ {"version":3,"file":"command.js","sourceRoot":"./src/","sources":["src/templates/command.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAChC,SAAiB,EACjB,QAA6B,IAAI,GAAG,EAAE,EACtC,EAAE,CACF;;EAEA,KAAK;KACJ,IAAI,EAAE;KACN,OAAO,EAAE;KACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;KACjD,IAAI,CAAC,IAAI,CAAC;;;eAGE,SAAS;aACX,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAG7C,CAAC;AAjBW,QAAA,kBAAkB,sBAiB7B"}
@@ -7,7 +7,7 @@ const getServiceTemplate = (className) => `import { singleton } from "tsyringe";
7
7
  * ${className}
8
8
  */
9
9
  @singleton()
10
- export default class ${className} {
10
+ export class ${className} {
11
11
  constructor() {}
12
12
  }
13
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"./src/","sources":["src/templates/service.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACtD;;;KAGG,SAAS;;;uBAGS,SAAS;;;;CAI/B,CAAC;AAXW,QAAA,kBAAkB,sBAW7B"}
1
+ {"version":3,"file":"service.js","sourceRoot":"./src/","sources":["src/templates/service.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACtD;;;KAGG,SAAS;;;eAGC,SAAS;;;;CAIvB,CAAC;AAXW,QAAA,kBAAkB,sBAW7B"}
@@ -11,6 +11,7 @@ export declare enum CLIOptions {
11
11
  service = "service",
12
12
  command = "command",
13
13
  task = "task",
14
- targetName = "targetName"
14
+ targetName = "targetName",
15
+ name = "name"
15
16
  }
16
17
  //# sourceMappingURL=process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"./src/","sources":["src/types/process.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACpD;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAEnD,oBAAY,UAAU;IACpB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"./src/","sources":["src/types/process.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACpD;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAEnD,oBAAY,UAAU;IACpB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,IAAI,SAAS;CACd"}
@@ -8,5 +8,6 @@ var CLIOptions;
8
8
  CLIOptions["command"] = "command";
9
9
  CLIOptions["task"] = "task";
10
10
  CLIOptions["targetName"] = "targetName";
11
+ CLIOptions["name"] = "name";
11
12
  })(CLIOptions || (exports.CLIOptions = CLIOptions = {}));
12
13
  //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"./src/","sources":["src/types/process.ts"],"names":[],"mappings":";;;AAWA,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,2BAAa,CAAA;IACb,uCAAyB,CAAA;AAC3B,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB"}
1
+ {"version":3,"file":"process.js","sourceRoot":"./src/","sources":["src/types/process.ts"],"names":[],"mappings":";;;AAWA,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,2BAAa,CAAA;IACb,uCAAyB,CAAA;IACzB,2BAAa,CAAA;AACf,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB"}
@@ -0,0 +1,12 @@
1
+ export interface ProjectConfig {
2
+ rootDir: string;
3
+ taskDestination?: string | undefined;
4
+ serviceDestination?: string | undefined;
5
+ commandDestination?: string | undefined;
6
+ }
7
+ export interface ProjectData {
8
+ taskFolders: string[];
9
+ serviceFolders: string[];
10
+ commandFolders: string[];
11
+ }
12
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"./src/","sources":["src/types/project.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"./src/","sources":["src/types/project.ts"],"names":[],"mappings":""}
@@ -1,17 +1,20 @@
1
1
  import { CLIArg } from "./process";
2
2
  import { AppState as State, TaskClass } from "task-script-support";
3
+ import { ProjectConfig, ProjectData } from "./project";
3
4
  export declare enum GenTargetType {
4
5
  Command = "command",
5
6
  Service = "service",
6
7
  Task = "task"
7
8
  }
8
9
  export interface AppStateData {
9
- readonly errorMessages?: string[];
10
10
  readonly banner?: {
11
11
  readonly font?: string;
12
12
  };
13
13
  readonly genTargetType?: GenTargetType;
14
+ readonly genTargetName?: string;
14
15
  readonly environmentValidated?: boolean;
16
+ readonly project?: ProjectConfig & ProjectData;
17
+ readonly errorMessages?: string[];
15
18
  readonly outputDestination?: string;
16
19
  }
17
20
  export declare const EnvironmentConfigKeys: {
@@ -20,6 +23,7 @@ export declare const EnvironmentConfigKeys: {
20
23
  NODE_ENV: string;
21
24
  PINO_LOG_FILENAME: string;
22
25
  PINO_LOG_TARGET: string;
26
+ TSSC_SILENCE_BANNER: string;
23
27
  };
24
28
  export type AppState = State<AppStateData, CLIArg[]>;
25
29
  export type AppTaskClass = TaskClass<AppStateData, CLIArg[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEnE,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,qBAAqB;;;;;;CAMjC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEvD,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;IAE/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,qBAAqB;;;;;;;CAOjC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC"}
@@ -13,5 +13,6 @@ exports.EnvironmentConfigKeys = {
13
13
  NODE_ENV: "NODE_ENV",
14
14
  PINO_LOG_FILENAME: "PINO_LOG_FILENAME",
15
15
  PINO_LOG_TARGET: "PINO_LOG_TARGET",
16
+ TSSC_SILENCE_BANNER: "TSSC_SILENCE_BANNER",
16
17
  };
17
18
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":";;;AAGA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAYY,QAAA,qBAAqB,GAAG;IACnC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;CACnC,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":";;;AAIA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAgBY,QAAA,qBAAqB,GAAG;IACnC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;CAC3C,CAAC"}
@@ -14,6 +14,7 @@ export declare class AppTask extends Task<AppStateData, CLIArg[]> {
14
14
  constructor(_logService?: LogService | undefined, _argService?: ArgService | undefined, _commandService?: CommandService<AppStateData, CLIArg[]> | undefined);
15
15
  initialize(): Promise<void>;
16
16
  run(state: AppState): Promise<Partial<AppState> | void>;
17
+ postRun(): Promise<void>;
17
18
  setData(data: Partial<AppStateData>): AppState;
18
19
  }
19
20
  //# sourceMappingURL=app-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-task.d.ts","sourceRoot":"./src/","sources":["src/wrappers/app-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBACa,OAAQ,SAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAgB9C,WAAW,CAAC,EAAE,UAAU;IACxB,WAAW,CAAC,EAAE,UAAU;IACxB,eAAe,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAjBjE,KAAK,EAAE,QAAQ,CAIb;IACF,UAAU,EAAE,MAAM,CAAM;IAExB,IAAI,UAAU,eAEb;IACD,IAAI,MAAM,IAAI,UAAU,CAEvB;gBAGQ,WAAW,CAAC,EAAE,UAAU,YAAA,EACxB,WAAW,CAAC,EAAE,UAAU,YAAA,EACxB,eAAe,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,YAAA;IAM3D,UAAU;IAOV,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAI7D,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;CAIpC"}
1
+ {"version":3,"file":"app-task.d.ts","sourceRoot":"./src/","sources":["src/wrappers/app-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBACa,OAAQ,SAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAgB9C,WAAW,CAAC,EAAE,UAAU;IACxB,WAAW,CAAC,EAAE,UAAU;IACxB,eAAe,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAjBjE,KAAK,EAAE,QAAQ,CAIb;IACF,UAAU,EAAE,MAAM,CAAM;IAExB,IAAI,UAAU,eAEb;IACD,IAAI,MAAM,IAAI,UAAU,CAEvB;gBAGQ,WAAW,CAAC,EAAE,UAAU,YAAA,EACxB,WAAW,CAAC,EAAE,UAAU,YAAA,EACxB,eAAe,CAAC,EAAE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,YAAA;IAM3D,UAAU;IAOV,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAKvD,OAAO;IAIb,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;CAIpC"}
@@ -46,6 +46,10 @@ let AppTask = class AppTask extends task_script_support_1.Task {
46
46
  async run(state) {
47
47
  throw new Error(`run not implemented (${state.id})`);
48
48
  }
49
+ //@override
50
+ async postRun() {
51
+ await this.logger.flush();
52
+ }
49
53
  setData(data) {
50
54
  this.state = this._commandService.setData(this.state, data);
51
55
  return this.state;
@@ -1 +1 @@
1
- {"version":3,"file":"app-task.js","sourceRoot":"./src/","sources":["src/wrappers/app-task.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA0C;AAC1C,6DAA2D;AAC3D,yDAAqD;AACrD,yDAAqD;AAK9C,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,0BAA4B;IAgB9C;IACA;IACA;IAjBT,KAAK,GAAa;QAChB,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT,CAAC;IACF,UAAU,GAAW,EAAE,CAAC;IAExB,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAY,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAY,CAAC;IAC3B,CAAC;IAED,YACS,WAAwB,EACxB,WAAwB,EACxB,eAAwD;QAE/D,KAAK,EAAE,CAAC;QAJD,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,oBAAe,GAAf,eAAe,CAAyC;IAGjE,CAAC;IAED,WAAW;IACX,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,WAAW;IACX,KAAK,CAAC,GAAG,CAAC,KAAe;QACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,IAA2B;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF,CAAA;AAvCY,0BAAO;kBAAP,OAAO;IADnB,IAAA,yBAAc,GAAE;qCAiBQ,wBAAU;QACV,wBAAU;QACN,oCAAc;GAlB9B,OAAO,CAuCnB"}
1
+ {"version":3,"file":"app-task.js","sourceRoot":"./src/","sources":["src/wrappers/app-task.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA0C;AAC1C,6DAA2D;AAC3D,yDAAqD;AACrD,yDAAqD;AAK9C,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,0BAA4B;IAgB9C;IACA;IACA;IAjBT,KAAK,GAAa;QAChB,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT,CAAC;IACF,UAAU,GAAW,EAAE,CAAC;IAExB,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAY,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAY,CAAC;IAC3B,CAAC;IAED,YACS,WAAwB,EACxB,WAAwB,EACxB,eAAwD;QAE/D,KAAK,EAAE,CAAC;QAJD,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,oBAAe,GAAf,eAAe,CAAyC;IAGjE,CAAC;IAED,WAAW;IACX,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,WAAW;IACX,KAAK,CAAC,GAAG,CAAC,KAAe;QACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,WAAW;IACX,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,IAA2B;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF,CAAA;AA5CY,0BAAO;kBAAP,OAAO;IADnB,IAAA,yBAAc,GAAE;qCAiBQ,wBAAU;QACV,wBAAU;QACN,oCAAc;GAlB9B,OAAO,CA4CnB"}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=vitest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"./src/","sources":["vitest.config.ts"],"names":[],"mappings":";AAEA,wBAWG"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const { defineConfig, configDefaults } = require("vitest/config");
4
+ exports.default = defineConfig({
5
+ test: {
6
+ globals: true,
7
+ environment: "node",
8
+ setupFiles: "./tests/setup.ts",
9
+ exclude: [...configDefaults.exclude, "assets/**/*", "dist/**/*"],
10
+ coverage: {
11
+ provider: "v8",
12
+ reporter: ["text", "json", "html"],
13
+ },
14
+ },
15
+ });
16
+ //# sourceMappingURL=vitest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"./src/","sources":["vitest.config.ts"],"names":[],"mappings":";;AAAA,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAElE,kBAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC;QAChE,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SACnC;KACF;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "task-script-support-cli",
3
- "version": "0.1.1",
3
+ "version": "0.2.4",
4
4
  "main": "index.js",
5
5
  "type": "commonjs",
6
6
  "preferGlobal": true,
@@ -12,13 +12,13 @@
12
12
  "dev": "npm run build && node dist/src/index.js",
13
13
  "clean": "rm -rf ./dist",
14
14
  "lint": "eslint --config eslint.config.ts",
15
- "cpsh": "cp ./tssc ./dist/",
15
+ "cp-assets": "cp ./tssc ./dist/ && cp -R ./assets ./dist/",
16
16
  "watch": "onchange './*{.json,.sh,.ts}' 'src/*.ts' -- npm run build",
17
17
  "format": "prettier --write ./",
18
18
  "format-check": "prettier --check .",
19
19
  "hooks-one-time-setup": "npx simple-git-hooks",
20
20
  "prettier-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}",
21
- "build": "rm -rf ./dist && npx tsc && node dist/src/index.js -v && npm run cpsh",
21
+ "build": "rm -rf ./dist && npx tsc && node dist/src/index.js -v && npm run cp-assets",
22
22
  "test": "vitest run",
23
23
  "test-watch": "vitest"
24
24
  },
@@ -30,11 +30,16 @@
30
30
  "pre-commit": "npx pretty-quick --staged && npm run lint"
31
31
  },
32
32
  "dependencies": {
33
+ "@inquirer/prompts": "^8.4.1",
34
+ "@inquirer/search": "^4.1.7",
33
35
  "chalk": "^4.1.2",
34
36
  "commander": "^14.0.2",
35
37
  "dotenv": "^17.2.3",
36
38
  "figlet": "^1.9.4",
37
39
  "immutable": "^5.1.4",
40
+ "inquirer-sortable-checkbox": "^1.0.1",
41
+ "lodash": "^4.18.1",
42
+ "node-persist": "^4.0.4",
38
43
  "reflect-metadata": "^0.2.2",
39
44
  "task-script-support": "^2.3.0",
40
45
  "tsyringe": "^4.10.0"
@@ -42,6 +47,7 @@
42
47
  "devDependencies": {
43
48
  "@eslint/js": "^9.39.3",
44
49
  "@types/node": "^24.10.1",
50
+ "@types/node-persist": "^3.1.8",
45
51
  "eslint": "^10.0.3",
46
52
  "jiti": "^2.6.1",
47
53
  "onchange": "^7.1.0",
@@ -1,7 +1,7 @@
1
1
  import { singleton } from "tsyringe";
2
2
  import { Command } from "../wrappers/command";
3
- import PrintAboutInformation from "../tasks/print-about-information";
4
- import PrintBanner from "../tasks/print-banner";
3
+ import PrintAboutInformation from "../tasks/stdout/print-about-information";
4
+ import PrintBanner from "../tasks/stdout/print-banner";
5
5
 
6
6
  @singleton()
7
7
  export class AboutCommand extends Command {
@@ -0,0 +1,10 @@
1
+ import { singleton } from "tsyringe";
2
+ import { Command } from "../wrappers/command";
3
+ import CheckEnv from "../tasks/check-env";
4
+ import ConfigureCache from "../tasks/configure";
5
+ import PrintBanner from "../tasks/stdout/print-banner";
6
+
7
+ @singleton()
8
+ export class ConfigureCommand extends Command {
9
+ tasks = [PrintBanner, CheckEnv, ConfigureCache];
10
+ }
@@ -1,12 +1,14 @@
1
1
  import { singleton } from "tsyringe";
2
2
  import { Command } from "../wrappers/command";
3
3
  import CheckEnvironment from "../tasks/check-env";
4
- import PrintBanner from "../tasks/print-banner";
5
- import SelectGenTarget from "../tasks/select-gen-target";
6
- import GenerateService from "../tasks/generate-service";
7
- import GenerateCommand from "../tasks/generate-command";
8
- import GenerateTask from "../tasks/generate-task";
9
- import PrintGeneratedResults from "../tasks/print-generated-results";
4
+ import PrintBanner from "../tasks/stdout/print-banner";
5
+ import SelectGenTarget from "../tasks/generate/select-gen-target";
6
+ import GenerateService from "../tasks/generate/generate-service";
7
+ import GenerateCommand from "../tasks/generate/generate-command";
8
+ import GenerateTask from "../tasks/generate/generate-task";
9
+ import PrintGeneratedResults from "../tasks/stdout/print-generated-results";
10
+ import SyncConfiguration from "../tasks/sync-configuration";
11
+ import SelectGenTargetName from "../tasks/generate/select-gen-target-name";
10
12
 
11
13
  @singleton()
12
14
  export class GenCommand extends Command {
@@ -14,6 +16,8 @@ export class GenCommand extends Command {
14
16
  PrintBanner,
15
17
  CheckEnvironment,
16
18
  SelectGenTarget,
19
+ SyncConfiguration,
20
+ SelectGenTargetName,
17
21
  [GenerateCommand, GenerateService, GenerateTask],
18
22
  PrintGeneratedResults,
19
23
  ];
@@ -0,0 +1,10 @@
1
+ import { singleton } from "tsyringe";
2
+ import { Command } from "../wrappers/command";
3
+ import PrintBanner from "../tasks/stdout/print-banner";
4
+ import CreateNewProject from "../tasks/create-new-project";
5
+ import PrintGeneratedResults from "../tasks/stdout/print-generated-results";
6
+
7
+ @singleton()
8
+ export class NewCommand extends Command {
9
+ tasks = [PrintBanner, CreateNewProject, PrintGeneratedResults];
10
+ }
package/src/index.ts CHANGED
@@ -13,6 +13,8 @@ UtilService.initializeDependencies();
13
13
 
14
14
  import { AboutCommand } from "./commands/about";
15
15
  import { GenCommand } from "./commands/gen";
16
+ import { NewCommand } from "./commands/new";
17
+ import { ConfigureCommand } from "./commands/configure";
16
18
 
17
19
  const { program } = commander;
18
20
  const name = UtilService.getAppName();
@@ -35,4 +37,14 @@ program
35
37
  .option("-t, --task", "Generate a task")
36
38
  .action(container.resolve(GenCommand).handler);
37
39
 
40
+ program
41
+ .command("new")
42
+ .option("-n, --name <name>", "Name of the New Project")
43
+ // .option("-d, --dest", "target destination path")
44
+ .action(container.resolve(NewCommand).handler);
45
+
46
+ program
47
+ .command("configure")
48
+ .action(container.resolve(ConfigureCommand).handler);
49
+
38
50
  program.parse(process.argv);
@@ -0,0 +1,50 @@
1
+ import nodePersist from "node-persist";
2
+ import { singleton } from "tsyringe";
3
+ import { ProjectConfig } from "../types/project";
4
+ import _ from "lodash";
5
+ import chalk from "chalk";
6
+ import { LogService } from "./log-service";
7
+ import path from "path";
8
+
9
+ @singleton()
10
+ export class CacheService {
11
+ private storageInitialized = false;
12
+ constructor(private logger: LogService) {
13
+ logger.setPrefix(`${this.constructor.name} :: `);
14
+ }
15
+
16
+ async initialize() {
17
+ if (this.storageInitialized) {
18
+ return;
19
+ }
20
+ const appDataFolder =
21
+ process.env.APPDATA ||
22
+ (process.platform === "darwin"
23
+ ? `${process.env.HOME}/Library/Preferences`
24
+ : `${process.env.HOME}/.config`);
25
+
26
+ const location = path.join(appDataFolder, "tssc");
27
+ this.logger.debug(chalk.dim(`Using cache: ${location}`));
28
+
29
+ await nodePersist.init({ dir: location });
30
+ this.storageInitialized = true;
31
+ }
32
+
33
+ async getProject(rootDir: string): Promise<ProjectConfig | null> {
34
+ await this.initialize();
35
+ const project = await nodePersist.getItem(rootDir);
36
+ return project;
37
+ }
38
+
39
+ async writeProject(project: ProjectConfig): Promise<void> {
40
+ await this.initialize();
41
+ const projectKeys: (keyof ProjectConfig)[] = [
42
+ "rootDir",
43
+ "taskDestination",
44
+ "serviceDestination",
45
+ "commandDestination",
46
+ ];
47
+ const cleanedProject: ProjectConfig = _.pick(project, projectKeys);
48
+ await nodePersist.setItem(project.rootDir, cleanedProject);
49
+ }
50
+ }
@@ -6,16 +6,36 @@ import { singleton } from "tsyringe";
6
6
  const ignoredDirectories = new Set(["node_modules", "dist"]);
7
7
 
8
8
  @singleton()
9
- export default class FileService {
9
+ export class FileService {
10
10
  getRunnerDir(): string {
11
11
  return process.cwd();
12
12
  }
13
13
 
14
+ join(path1: string, path2: string) {
15
+ return path.join(path1, path2);
16
+ }
17
+
18
+ toRelativePath(fromPath: string, toPath: string) {
19
+ return path.relative(fromPath, toPath);
20
+ }
21
+
22
+ toFullPath(relativePath: string) {
23
+ return path.resolve(relativePath);
24
+ }
25
+
26
+ getFilename = (somePath: string) => path.basename(somePath);
27
+ getFilenameNoExt(somePath: string) {
28
+ const filename = path.basename(somePath);
29
+ return filename.includes(".") ? filename.split(".")[0] || "" : filename;
30
+ }
31
+
14
32
  getFilesInDir(dirPath: string): string[] {
15
33
  if (!fs.existsSync(dirPath) || !fs.statSync(dirPath).isDirectory()) {
16
34
  throw new Error(`Directory not found: ${dirPath}`);
17
35
  }
18
- return fs.readdirSync(dirPath);
36
+ const files: string[] = [];
37
+ this.getFilesRecursively(dirPath, (file) => files.push(file));
38
+ return files;
19
39
  }
20
40
 
21
41
  getRunnerRootDir(): string {
@@ -56,7 +76,7 @@ export default class FileService {
56
76
 
57
77
  private findDirsByName(dirPath: string, dirNameSuffix: string): string[] {
58
78
  const dirs: string[] = [];
59
- this.traverseDir(dirPath, (dir) => {
79
+ this.getDirectoriesRecursively(dirPath, (dir) => {
60
80
  if (path.basename(dir).includes(dirNameSuffix) && !dirs.includes(dir)) {
61
81
  dirs.push(dir);
62
82
  }
@@ -64,15 +84,36 @@ export default class FileService {
64
84
  return dirs;
65
85
  }
66
86
 
67
- private traverseDir(dirPath: string, callback: (dir: string) => void) {
87
+ private getDirectoriesRecursively(
88
+ dirPath: string,
89
+ callback: (dir: string) => void,
90
+ ) {
68
91
  const entries = fs.readdirSync(dirPath, { withFileTypes: true });
69
92
  for (const entry of entries) {
70
93
  const fullPath = path.join(dirPath, entry.name);
71
94
  if (entry.isDirectory() && !ignoredDirectories.has(entry.name)) {
72
- this.traverseDir(fullPath, callback);
95
+ this.getDirectoriesRecursively(fullPath, callback);
73
96
  } else {
74
97
  callback(path.dirname(fullPath));
75
98
  }
76
99
  }
77
100
  }
101
+
102
+ private getFilesRecursively(
103
+ dirPath: string,
104
+ callback: (dir: string) => void,
105
+ ) {
106
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
107
+ for (const entry of entries) {
108
+ if (ignoredDirectories.has(entry.name)) {
109
+ continue;
110
+ }
111
+ const fullPath = path.join(dirPath, entry.name);
112
+ if (entry.isDirectory()) {
113
+ this.getFilesRecursively(fullPath, callback);
114
+ } else {
115
+ callback(fullPath);
116
+ }
117
+ }
118
+ }
78
119
  }
@@ -17,8 +17,21 @@ export class LogService {
17
17
  }
18
18
  }
19
19
 
20
+ flush(): Promise<void> {
21
+ return new Promise((res, rej) => {
22
+ this.logger.flush((err?: Error) => {
23
+ return err ? rej(err) : res();
24
+ });
25
+ });
26
+ }
27
+
20
28
  setPrefix(prefix: string) {
21
- this.logger = this.pinoLogger.getLogger(prefix);
29
+ if (!LogService.ParentInstance) {
30
+ this.logger = this.pinoLogger.getLogger(prefix);
31
+ LogService.ParentInstance = this.logger;
32
+ } else {
33
+ this.logger = LogService.ParentInstance.child({}, { msgPrefix: prefix });
34
+ }
22
35
  }
23
36
 
24
37
  public info(msg: string, obj?: unknown): void {
@@ -1,10 +1,10 @@
1
1
  import { autoInjectable } from "tsyringe";
2
- import FileService from "./file-service";
2
+ import { FileService } from "./file-service";
3
3
  import { CaseType } from "../types/format";
4
4
  import { UtilService } from "./util-service";
5
5
 
6
6
  @autoInjectable()
7
- export default class ProjectService {
7
+ export class ProjectService {
8
8
  static defaults = {
9
9
  targetName: "Foo-Bar-Baz",
10
10
  sampleFile: "test-file.ts",
@@ -51,16 +51,19 @@ export default class ProjectService {
51
51
  * the first found convention or the default one if it can't be detected.
52
52
  *
53
53
  * @param existingFiles the files to check for a convention on.
54
- * @returns
54
+ * @returns the first found case type convention or the default one
55
55
  */
56
56
  getConvention(): CaseType {
57
57
  const existingFiles: string[] = this.getSourceFiles();
58
58
 
59
- if (!existingFiles || !existingFiles.length)
59
+ if (!existingFiles || !existingFiles.length) {
60
60
  return ProjectService.defaults.convention;
61
+ }
62
+
61
63
  let convention: CaseType | null = null;
62
64
  for (const file of existingFiles) {
63
- convention = this.utilService.detectCase(file);
65
+ const filename = this.fileService.getFilename(file);
66
+ convention = this.utilService.detectCase(filename);
64
67
  if (convention !== null) {
65
68
  break;
66
69
  }