task-script-support-cli 0.1.1

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 (151) hide show
  1. package/.prettierignore +3 -0
  2. package/.prettierrc +1 -0
  3. package/.vscode/launch.json +34 -0
  4. package/README.md +3 -0
  5. package/dist/eslint.config.d.ts +3 -0
  6. package/dist/eslint.config.d.ts.map +1 -0
  7. package/dist/eslint.config.js +16 -0
  8. package/dist/eslint.config.js.map +1 -0
  9. package/dist/package.json +55 -0
  10. package/dist/src/commands/about.d.ts +7 -0
  11. package/dist/src/commands/about.d.ts.map +1 -0
  12. package/dist/src/commands/about.js +24 -0
  13. package/dist/src/commands/about.js.map +1 -0
  14. package/dist/src/commands/gen.d.ts +12 -0
  15. package/dist/src/commands/gen.d.ts.map +1 -0
  16. package/dist/src/commands/gen.js +35 -0
  17. package/dist/src/commands/gen.js.map +1 -0
  18. package/dist/src/index.d.ts +2 -0
  19. package/dist/src/index.d.ts.map +1 -0
  20. package/dist/src/index.js +34 -0
  21. package/dist/src/index.js.map +1 -0
  22. package/dist/src/services/arg-service.d.ts +10 -0
  23. package/dist/src/services/arg-service.d.ts.map +1 -0
  24. package/dist/src/services/arg-service.js +71 -0
  25. package/dist/src/services/arg-service.js.map +1 -0
  26. package/dist/src/services/banner-service.d.ts +8 -0
  27. package/dist/src/services/banner-service.d.ts.map +1 -0
  28. package/dist/src/services/banner-service.js +50 -0
  29. package/dist/src/services/banner-service.js.map +1 -0
  30. package/dist/src/services/file-service.d.ts +12 -0
  31. package/dist/src/services/file-service.d.ts.map +1 -0
  32. package/dist/src/services/file-service.js +82 -0
  33. package/dist/src/services/file-service.js.map +1 -0
  34. package/dist/src/services/log-service.d.ts +14 -0
  35. package/dist/src/services/log-service.d.ts.map +1 -0
  36. package/dist/src/services/log-service.js +61 -0
  37. package/dist/src/services/log-service.js.map +1 -0
  38. package/dist/src/services/project-service.d.ts +31 -0
  39. package/dist/src/services/project-service.d.ts.map +1 -0
  40. package/dist/src/services/project-service.js +86 -0
  41. package/dist/src/services/project-service.js.map +1 -0
  42. package/dist/src/services/spawn-service.d.ts +12 -0
  43. package/dist/src/services/spawn-service.d.ts.map +1 -0
  44. package/dist/src/services/spawn-service.js +111 -0
  45. package/dist/src/services/spawn-service.js.map +1 -0
  46. package/dist/src/services/updater-service.d.ts +7 -0
  47. package/dist/src/services/updater-service.d.ts.map +1 -0
  48. package/dist/src/services/updater-service.js +24 -0
  49. package/dist/src/services/updater-service.js.map +1 -0
  50. package/dist/src/services/util-service.d.ts +23 -0
  51. package/dist/src/services/util-service.d.ts.map +1 -0
  52. package/dist/src/services/util-service.js +89 -0
  53. package/dist/src/services/util-service.js.map +1 -0
  54. package/dist/src/tasks/check-env.d.ts +44 -0
  55. package/dist/src/tasks/check-env.d.ts.map +1 -0
  56. package/dist/src/tasks/check-env.js +126 -0
  57. package/dist/src/tasks/check-env.js.map +1 -0
  58. package/dist/src/tasks/generate-command.d.ts +23 -0
  59. package/dist/src/tasks/generate-command.d.ts.map +1 -0
  60. package/dist/src/tasks/generate-command.js +91 -0
  61. package/dist/src/tasks/generate-command.js.map +1 -0
  62. package/dist/src/tasks/generate-service.d.ts +26 -0
  63. package/dist/src/tasks/generate-service.d.ts.map +1 -0
  64. package/dist/src/tasks/generate-service.js +88 -0
  65. package/dist/src/tasks/generate-service.js.map +1 -0
  66. package/dist/src/tasks/generate-task.d.ts +26 -0
  67. package/dist/src/tasks/generate-task.d.ts.map +1 -0
  68. package/dist/src/tasks/generate-task.js +88 -0
  69. package/dist/src/tasks/generate-task.js.map +1 -0
  70. package/dist/src/tasks/print-about-information.d.ts +8 -0
  71. package/dist/src/tasks/print-about-information.d.ts.map +1 -0
  72. package/dist/src/tasks/print-about-information.js +30 -0
  73. package/dist/src/tasks/print-about-information.js.map +1 -0
  74. package/dist/src/tasks/print-banner.d.ts +12 -0
  75. package/dist/src/tasks/print-banner.d.ts.map +1 -0
  76. package/dist/src/tasks/print-banner.js +47 -0
  77. package/dist/src/tasks/print-banner.js.map +1 -0
  78. package/dist/src/tasks/print-generated-results.d.ts +12 -0
  79. package/dist/src/tasks/print-generated-results.d.ts.map +1 -0
  80. package/dist/src/tasks/print-generated-results.js +48 -0
  81. package/dist/src/tasks/print-generated-results.js.map +1 -0
  82. package/dist/src/tasks/select-gen-target.d.ts +9 -0
  83. package/dist/src/tasks/select-gen-target.d.ts.map +1 -0
  84. package/dist/src/tasks/select-gen-target.js +44 -0
  85. package/dist/src/tasks/select-gen-target.js.map +1 -0
  86. package/dist/src/templates/command.d.ts +2 -0
  87. package/dist/src/templates/command.d.ts.map +1 -0
  88. package/dist/src/templates/command.js +19 -0
  89. package/dist/src/templates/command.js.map +1 -0
  90. package/dist/src/templates/service.d.ts +2 -0
  91. package/dist/src/templates/service.d.ts.map +1 -0
  92. package/dist/src/templates/service.js +16 -0
  93. package/dist/src/templates/service.js.map +1 -0
  94. package/dist/src/templates/task.d.ts +2 -0
  95. package/dist/src/templates/task.d.ts.map +1 -0
  96. package/dist/src/templates/task.js +20 -0
  97. package/dist/src/templates/task.js.map +1 -0
  98. package/dist/src/types/format.d.ts +7 -0
  99. package/dist/src/types/format.d.ts.map +1 -0
  100. package/dist/src/types/format.js +11 -0
  101. package/dist/src/types/format.js.map +1 -0
  102. package/dist/src/types/process.d.ts +16 -0
  103. package/dist/src/types/process.d.ts.map +1 -0
  104. package/dist/src/types/process.js +12 -0
  105. package/dist/src/types/process.js.map +1 -0
  106. package/dist/src/types/state.d.ts +26 -0
  107. package/dist/src/types/state.d.ts.map +1 -0
  108. package/dist/src/types/state.js +17 -0
  109. package/dist/src/types/state.js.map +1 -0
  110. package/dist/src/wrappers/app-task.d.ts +19 -0
  111. package/dist/src/wrappers/app-task.d.ts.map +1 -0
  112. package/dist/src/wrappers/app-task.js +61 -0
  113. package/dist/src/wrappers/app-task.js.map +1 -0
  114. package/dist/src/wrappers/command.d.ts +11 -0
  115. package/dist/src/wrappers/command.d.ts.map +1 -0
  116. package/dist/src/wrappers/command.js +36 -0
  117. package/dist/src/wrappers/command.js.map +1 -0
  118. package/dist/tssc +3 -0
  119. package/eslint.config.ts +11 -0
  120. package/install-link.sh +21 -0
  121. package/package.json +55 -0
  122. package/setup.md +37 -0
  123. package/src/commands/about.ts +9 -0
  124. package/src/commands/gen.ts +20 -0
  125. package/src/index.ts +38 -0
  126. package/src/services/arg-service.ts +52 -0
  127. package/src/services/banner-service.ts +42 -0
  128. package/src/services/file-service.ts +78 -0
  129. package/src/services/log-service.ts +43 -0
  130. package/src/services/project-service.ts +72 -0
  131. package/src/services/spawn-service.ts +73 -0
  132. package/src/services/updater-service.ts +9 -0
  133. package/src/services/util-service.ts +87 -0
  134. package/src/tasks/check-env.ts +125 -0
  135. package/src/tasks/generate-command.ts +87 -0
  136. package/src/tasks/generate-service.ts +82 -0
  137. package/src/tasks/generate-task.ts +83 -0
  138. package/src/tasks/print-about-information.ts +16 -0
  139. package/src/tasks/print-banner.ts +37 -0
  140. package/src/tasks/print-generated-results.ts +36 -0
  141. package/src/tasks/select-gen-target.ts +29 -0
  142. package/src/templates/command.ts +18 -0
  143. package/src/templates/service.ts +12 -0
  144. package/src/templates/task.ts +16 -0
  145. package/src/types/format.ts +6 -0
  146. package/src/types/process.ts +18 -0
  147. package/src/types/state.ts +29 -0
  148. package/src/wrappers/app-task.ts +48 -0
  149. package/src/wrappers/command.ts +21 -0
  150. package/tsconfig.json +27 -0
  151. package/tssc +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-service.js","sourceRoot":"./src/","sources":["src/services/log-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAA8C;AAC9C,6DAAiD;AAI1C,IAAM,UAAU,GAAhB,MAAM,UAAU;;IAKqB;IAJ1C,MAAM,CAAc;IAEpB,MAAM,CAAC,cAAc,CAAe;IAEpC,YAA0C,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAC9D,IAAI,CAAC,YAAU,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACrC,YAAU,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,YAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAEM,IAAI,CAAC,GAAW,EAAE,GAAa;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,GAAmB,EAAE,GAAY,EAAE,GAAa;QAC3D,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,gBAAgB,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEM,IAAI,CAAC,GAAW,EAAE,GAAa;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,GAAW,EAAE,GAAa;QACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAA;AArCY,gCAAU;qBAAV,UAAU;IADtB,IAAA,qBAAU,GAAE;IAME,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;qCAAqB,gCAAU;GALrD,UAAU,CAqCtB"}
@@ -0,0 +1,31 @@
1
+ import FileService from "./file-service";
2
+ import { CaseType } from "../types/format";
3
+ import { UtilService } from "./util-service";
4
+ export default class ProjectService {
5
+ private fileService;
6
+ private utilService;
7
+ static defaults: {
8
+ targetName: string;
9
+ sampleFile: string;
10
+ convention: CaseType;
11
+ extention: string;
12
+ };
13
+ constructor(fileService: FileService, utilService: UtilService);
14
+ /**
15
+ * Get all task files found in the project
16
+ *
17
+ * @returns a string[] of task filenames found in the project the script was executed in.
18
+ */
19
+ getTaskFiles(): string[];
20
+ private getSourceFiles;
21
+ /**
22
+ * Looks for a naming convention on the given filename array. Returns
23
+ * the first found convention or the default one if it can't be detected.
24
+ *
25
+ * @param existingFiles the files to check for a convention on.
26
+ * @returns
27
+ */
28
+ getConvention(): CaseType;
29
+ }
30
+ export type ProjectDefaultsKey = keyof typeof ProjectService.defaults;
31
+ //# sourceMappingURL=project-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-service.d.ts","sourceRoot":"./src/","sources":["src/services/project-service.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,CAAC,OAAO,OAAO,cAAc;IAS/B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IATrB,MAAM,CAAC,QAAQ;;;;;MAKb;gBAGQ,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW;IAGlC;;;;OAIG;IACH,YAAY;IAQZ,OAAO,CAAC,cAAc;IAgBtB;;;;;;OAMG;IACH,aAAa,IAAI,QAAQ;CAc1B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,cAAc,CAAC,QAAQ,CAAC"}
@@ -0,0 +1,86 @@
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
+ var ProjectService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const tsyringe_1 = require("tsyringe");
17
+ const file_service_1 = __importDefault(require("./file-service"));
18
+ const format_1 = require("../types/format");
19
+ const util_service_1 = require("./util-service");
20
+ let ProjectService = class ProjectService {
21
+ static { ProjectService_1 = this; }
22
+ fileService;
23
+ utilService;
24
+ static defaults = {
25
+ targetName: "Foo-Bar-Baz",
26
+ sampleFile: "test-file.ts",
27
+ convention: format_1.CaseType.PASCAL_CASE,
28
+ extention: ".ts",
29
+ };
30
+ constructor(fileService, utilService) {
31
+ this.fileService = fileService;
32
+ this.utilService = utilService;
33
+ }
34
+ /**
35
+ * Get all task files found in the project
36
+ *
37
+ * @returns a string[] of task filenames found in the project the script was executed in.
38
+ */
39
+ getTaskFiles() {
40
+ const runnerRoot = this.fileService.getRunnerRootDir();
41
+ const taskFolders = this.fileService.getTaskDirs(runnerRoot);
42
+ // return available task filenames
43
+ return taskFolders.flatMap((f) => this.fileService.getFilesInDir(f));
44
+ }
45
+ getSourceFiles() {
46
+ const runnerRoot = this.fileService.getRunnerRootDir();
47
+ return [
48
+ ...this.fileService
49
+ .getTaskDirs(runnerRoot)
50
+ .flatMap((dirPath) => this.fileService.getFilesInDir(dirPath)),
51
+ ...this.fileService
52
+ .getCommandDirs(runnerRoot)
53
+ .flatMap((dirPath) => this.fileService.getFilesInDir(dirPath)),
54
+ ...this.fileService
55
+ .getServiceDirs(runnerRoot)
56
+ .flatMap((dirPath) => this.fileService.getFilesInDir(dirPath)),
57
+ ];
58
+ }
59
+ /**
60
+ * Looks for a naming convention on the given filename array. Returns
61
+ * the first found convention or the default one if it can't be detected.
62
+ *
63
+ * @param existingFiles the files to check for a convention on.
64
+ * @returns
65
+ */
66
+ getConvention() {
67
+ const existingFiles = this.getSourceFiles();
68
+ if (!existingFiles || !existingFiles.length)
69
+ return ProjectService_1.defaults.convention;
70
+ let convention = null;
71
+ for (const file of existingFiles) {
72
+ convention = this.utilService.detectCase(file);
73
+ if (convention !== null) {
74
+ break;
75
+ }
76
+ }
77
+ return convention || ProjectService_1.defaults.convention;
78
+ }
79
+ };
80
+ ProjectService = ProjectService_1 = __decorate([
81
+ (0, tsyringe_1.autoInjectable)(),
82
+ __metadata("design:paramtypes", [file_service_1.default,
83
+ util_service_1.UtilService])
84
+ ], ProjectService);
85
+ exports.default = ProjectService;
86
+ //# sourceMappingURL=project-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-service.js","sourceRoot":"./src/","sources":["src/services/project-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA0C;AAC1C,kEAAyC;AACzC,4CAA2C;AAC3C,iDAA6C;AAG9B,IAAM,cAAc,GAApB,MAAM,cAAc;;IASvB;IACA;IATV,MAAM,CAAC,QAAQ,GAAG;QAChB,UAAU,EAAE,aAAa;QACzB,UAAU,EAAE,cAAc;QAC1B,UAAU,EAAE,iBAAQ,CAAC,WAAW;QAChC,SAAS,EAAE,KAAK;KACjB,CAAC;IAEF,YACU,WAAwB,EACxB,WAAwB;QADxB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;IAC/B,CAAC;IAEJ;;;;OAIG;IACH,YAAY;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE7D,kCAAkC;QAClC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,cAAc;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAEvD,OAAO;YACL,GAAG,IAAI,CAAC,WAAW;iBAChB,WAAW,CAAC,UAAU,CAAC;iBACvB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAChE,GAAG,IAAI,CAAC,WAAW;iBAChB,cAAc,CAAC,UAAU,CAAC;iBAC1B,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAChE,GAAG,IAAI,CAAC,WAAW;iBAChB,cAAc,CAAC,UAAU,CAAC;iBAC1B,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,MAAM,aAAa,GAAa,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtD,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM;YACzC,OAAO,gBAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5C,IAAI,UAAU,GAAoB,IAAI,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,UAAU,IAAI,gBAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1D,CAAC;;AA9DkB,cAAc;IADlC,IAAA,yBAAc,GAAE;qCAUQ,sBAAW;QACX,0BAAW;GAVf,cAAc,CA+DlC;kBA/DoB,cAAc"}
@@ -0,0 +1,12 @@
1
+ import { ChildProcess } from "node:child_process";
2
+ import type { ProcessStatus } from "../types/process";
3
+ export declare class SpawnService {
4
+ execSync(command: string): string;
5
+ exec(command: string): string;
6
+ backgroundExec(command: string, args?: string[]): ChildProcess;
7
+ isProcessCompleted(pid: number): boolean;
8
+ kill(pid: number): void;
9
+ forceKill(pid: number): void;
10
+ getProcessStatus(pid: number): Promise<ProcessStatus>;
11
+ }
12
+ //# sourceMappingURL=spawn-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-service.d.ts","sourceRoot":"./src/","sources":["src/services/spawn-service.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAE,YAAY,EAAS,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,qBACa,YAAY;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM;IASxB,IAAI,CAAC,OAAO,EAAE,MAAM;IASpB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,YAAY;IAUlE,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAWxC,IAAI,CAAC,GAAG,EAAE,MAAM;IAUhB,SAAS,CAAC,GAAG,EAAE,MAAM;IAUf,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAO5D"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.SpawnService = void 0;
43
+ const node_child_process_1 = __importStar(require("node:child_process"));
44
+ const tsyringe_1 = require("tsyringe");
45
+ let SpawnService = class SpawnService {
46
+ execSync(command) {
47
+ try {
48
+ return node_child_process_1.default.execSync(command).toString();
49
+ }
50
+ catch (error) {
51
+ console.error(`Error executing command: ${command}`);
52
+ throw error;
53
+ }
54
+ }
55
+ exec(command) {
56
+ try {
57
+ return node_child_process_1.default.exec(command).toString();
58
+ }
59
+ catch (error) {
60
+ console.error(`Error executing command: ${command}`, error);
61
+ throw error;
62
+ }
63
+ }
64
+ backgroundExec(command, args = []) {
65
+ const child = (0, node_child_process_1.spawn)(command, args, {
66
+ detached: true,
67
+ stdio: "ignore",
68
+ });
69
+ child.unref();
70
+ return child;
71
+ }
72
+ isProcessCompleted(pid) {
73
+ try {
74
+ // sending signal 0 checks if the process exists
75
+ process.kill(pid, 0);
76
+ return false;
77
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
78
+ }
79
+ catch (error) {
80
+ return true;
81
+ }
82
+ }
83
+ kill(pid) {
84
+ try {
85
+ process.kill(pid);
86
+ }
87
+ catch (error) {
88
+ throw new Error(`Failed to kill process with PID ${pid}: ${error.message}`);
89
+ }
90
+ }
91
+ forceKill(pid) {
92
+ try {
93
+ process.kill(pid, "SIGKILL");
94
+ }
95
+ catch (error) {
96
+ throw new Error(`Failed to forcefully kill process with PID ${pid}: ${error.message}`);
97
+ }
98
+ }
99
+ async getProcessStatus(pid) {
100
+ const completed = this.isProcessCompleted(pid);
101
+ return {
102
+ pid,
103
+ status: completed ? "completed" : "running",
104
+ };
105
+ }
106
+ };
107
+ exports.SpawnService = SpawnService;
108
+ exports.SpawnService = SpawnService = __decorate([
109
+ (0, tsyringe_1.singleton)()
110
+ ], SpawnService);
111
+ //# sourceMappingURL=spawn-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-service.js","sourceRoot":"./src/","sources":["src/services/spawn-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAuE;AAEvE,uCAAqC;AAG9B,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,QAAQ,CAAC,OAAe;QACtB,IAAI,CAAC;YACH,OAAO,4BAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC;YACH,OAAO,4BAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,OAAiB,EAAE;QACjD,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YACjC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC5B,IAAI,CAAC;YACH,gDAAgD;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;YACb,6DAA6D;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAW;QACd,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAG,KAAM,KAAe,CAAC,OAAO,EAAE,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,8CAA8C,GAAG,KAAM,KAAe,CAAC,OAAO,EAAE,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO;YACL,GAAG;YACH,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC5C,CAAC;IACJ,CAAC;CACF,CAAA;AAnEY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,oBAAS,GAAE;GACC,YAAY,CAmExB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * UpdaterService
3
+ */
4
+ export default class UpdaterService {
5
+ constructor();
6
+ }
7
+ //# sourceMappingURL=updater-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updater-service.d.ts","sourceRoot":"./src/","sources":["src/services/updater-service.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,cAAc;;CAElC"}
@@ -0,0 +1,24 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const tsyringe_1 = require("tsyringe");
13
+ /**
14
+ * UpdaterService
15
+ */
16
+ let UpdaterService = class UpdaterService {
17
+ constructor() { }
18
+ };
19
+ UpdaterService = __decorate([
20
+ (0, tsyringe_1.singleton)(),
21
+ __metadata("design:paramtypes", [])
22
+ ], UpdaterService);
23
+ exports.default = UpdaterService;
24
+ //# sourceMappingURL=updater-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updater-service.js","sourceRoot":"./src/","sources":["src/services/updater-service.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uCAAqC;AAErC;;GAEG;AAEY,IAAM,cAAc,GAApB,MAAM,cAAc;IACjC,gBAAe,CAAC;CACjB,CAAA;AAFoB,cAAc;IADlC,IAAA,oBAAS,GAAE;;GACS,cAAc,CAElC;kBAFoB,cAAc"}
@@ -0,0 +1,23 @@
1
+ import { CaseType } from "../types/format";
2
+ export declare class UtilService {
3
+ static TEXT_BREAKPONT: RegExp;
4
+ /**
5
+ * Register external dependencies as injectables
6
+ */
7
+ static initializeDependencies(): void;
8
+ static titleize: (s: string) => string;
9
+ titleize: (s: string) => string;
10
+ titleizeAll: (s: string) => string;
11
+ static titleizeAll: (str: string) => string;
12
+ static getAppName: () => string;
13
+ getAppName: () => string;
14
+ static getAppVersion: () => string;
15
+ getAppVersion: () => string;
16
+ static getAppDescription: () => string;
17
+ getAppDescription: () => string;
18
+ static registerCommandService(): void;
19
+ static registerPinoService(): void;
20
+ titleizedToCase(str: string, targetCase: CaseType): string;
21
+ detectCase(filename: string): CaseType | null;
22
+ }
23
+ //# sourceMappingURL=util-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util-service.d.ts","sourceRoot":"./src/","sources":["src/services/util-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBACa,WAAW;IACtB,MAAM,CAAC,cAAc,EAAE,MAAM,CAAa;IAE1C;;OAEG;IACH,MAAM,CAAC,sBAAsB;IAK7B,MAAM,CAAC,QAAQ,GAAI,GAAG,MAAM,YAC8B;IAC1D,QAAQ,GAAI,GAAG,MAAM,YAA6B;IAClD,WAAW,GAAI,GAAG,MAAM,YAAgC;IACxD,MAAM,CAAC,WAAW,GAAI,KAAK,MAAM,YAKlB;IAEf,MAAM,CAAC,UAAU,eAAsB;IACvC,UAAU,eAAsB;IAEhC,MAAM,CAAC,aAAa,eAAyB;IAC7C,aAAa,eAAyB;IAEtC,MAAM,CAAC,iBAAiB,eAA6B;IACrD,iBAAiB,eAA6B;IAE9C,MAAM,CAAC,sBAAsB;IAY7B,MAAM,CAAC,mBAAmB;IAI1B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ;IAejD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;CAgB9C"}
@@ -0,0 +1,89 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ var UtilService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.UtilService = void 0;
14
+ const tsyringe_1 = require("tsyringe");
15
+ const package_json_1 = __importDefault(require("../../package.json"));
16
+ const task_script_support_1 = require("task-script-support");
17
+ const format_1 = require("../types/format");
18
+ let UtilService = class UtilService {
19
+ static { UtilService_1 = this; }
20
+ static TEXT_BREAKPONT = /[. _-]/g;
21
+ /**
22
+ * Register external dependencies as injectables
23
+ */
24
+ static initializeDependencies() {
25
+ UtilService_1.registerCommandService();
26
+ UtilService_1.registerPinoService();
27
+ }
28
+ static titleize = (s) => s ? `${s[0]?.toUpperCase()}${s.slice(1, s.length)}` : s;
29
+ titleize = (s) => UtilService_1.titleize(s);
30
+ titleizeAll = (s) => UtilService_1.titleizeAll(s);
31
+ static titleizeAll = (str) => str
32
+ .trim()
33
+ .split(UtilService_1.TEXT_BREAKPONT)
34
+ .map(UtilService_1.titleize)
35
+ .join(" ");
36
+ static getAppName = () => package_json_1.default.name;
37
+ getAppName = () => package_json_1.default.name;
38
+ static getAppVersion = () => package_json_1.default.version;
39
+ getAppVersion = () => package_json_1.default.version;
40
+ static getAppDescription = () => package_json_1.default.description;
41
+ getAppDescription = () => package_json_1.default.description;
42
+ static registerCommandService() {
43
+ tsyringe_1.container.registerSingleton((task_script_support_1.CommandService));
44
+ // configure args provider
45
+ const command = tsyringe_1.container.resolve((task_script_support_1.CommandService));
46
+ command.argsProvider = (...cliArgs) => {
47
+ const args = command.argsProvider_Commander(...cliArgs);
48
+ tsyringe_1.container.registerInstance("Args", args);
49
+ return args;
50
+ };
51
+ }
52
+ static registerPinoService() {
53
+ tsyringe_1.container.registerInstance("PinoLogger", new task_script_support_1.PinoLogger());
54
+ }
55
+ titleizedToCase(str, targetCase) {
56
+ switch (targetCase) {
57
+ case format_1.CaseType.KEBAB_CASE:
58
+ return str.toLowerCase().replace(UtilService_1.TEXT_BREAKPONT, "-");
59
+ case format_1.CaseType.SNAKE_CASE:
60
+ return str.toLowerCase().replace(UtilService_1.TEXT_BREAKPONT, "_");
61
+ case format_1.CaseType.CAMEL_CASE:
62
+ return `${str[0]?.toLowerCase()}${str.slice(1).replace(UtilService_1.TEXT_BREAKPONT, "")}`;
63
+ case format_1.CaseType.PASCAL_CASE:
64
+ return str.replace(UtilService_1.TEXT_BREAKPONT, "");
65
+ default:
66
+ throw new Error("Unsupported target case type.");
67
+ }
68
+ }
69
+ detectCase(filename) {
70
+ if (/^[A-Z][a-zA-Z]*[.](ts|js)$/.test(filename)) {
71
+ return format_1.CaseType.PASCAL_CASE;
72
+ }
73
+ if (/^[a-z]+(-[a-z]+)+[.](ts|js)$/.test(filename)) {
74
+ return format_1.CaseType.KEBAB_CASE;
75
+ }
76
+ if (/^[a-z]+(_[a-z]+)+[.](ts|js)$/.test(filename)) {
77
+ return format_1.CaseType.SNAKE_CASE;
78
+ }
79
+ if (/^[a-z]+([A-Z][a-z]*)*[.](ts|js)$/.test(filename)) {
80
+ return format_1.CaseType.CAMEL_CASE;
81
+ }
82
+ return null;
83
+ }
84
+ };
85
+ exports.UtilService = UtilService;
86
+ exports.UtilService = UtilService = UtilService_1 = __decorate([
87
+ (0, tsyringe_1.singleton)()
88
+ ], UtilService);
89
+ //# sourceMappingURL=util-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util-service.js","sourceRoot":"./src/","sources":["src/services/util-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { AppTask } from "../wrappers/app-task";
2
+ import FileService from "../services/file-service";
3
+ /**
4
+ * Checks the environment configuration
5
+ */
6
+ export default class CheckEnvironment extends AppTask {
7
+ private fileService;
8
+ loggerName: string;
9
+ requiredEnvVars: string[];
10
+ optionalEnvVars: string[];
11
+ constructor(fileService: FileService);
12
+ run(): Promise<void>;
13
+ /**
14
+ * Check for the folders we need to generate files in. Add errors
15
+ * when no target directories can be found.
16
+ *
17
+ * @param projectDir the target project root directory path
18
+ * @param errors string array error messages are added to
19
+ */
20
+ checkProjectDirectories(projectDir: string, errors: string[]): void;
21
+ /**
22
+ * Check that the project has the right dependencies installed. Adds
23
+ * to the errors array when they can't be found.
24
+ *
25
+ * @param projectDir the target project root directory path
26
+ * @param errors string array error messages are added to
27
+ */
28
+ checkProjectDependencies(projectDir: string, errors: string[]): void;
29
+ /**
30
+ * Log and exit program if errors are present.
31
+ *
32
+ * @param errors the error messages array to check
33
+ */
34
+ private checkToExit;
35
+ /**
36
+ * Logs any error messages in the provided array.
37
+ *
38
+ * @param errors the error messages array to log
39
+ */
40
+ private logEnvErrors;
41
+ private getReadMessages;
42
+ private getErrorMessages;
43
+ }
44
+ //# sourceMappingURL=check-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-env.d.ts","sourceRoot":"./src/","sources":["src/tasks/check-env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAGnD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IAavC,OAAO,CAAC,WAAW;IAZ/B,UAAU,SAAuB;IAEjC,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/B,eAAe,WAMb;gBAEkB,WAAW,EAAE,WAAW;IAItC,GAAG;IAoBT;;;;;;OAMG;IACH,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAc5D;;;;;;OAMG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAW7D;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,eAAe,CAKjB;IAEN,OAAO,CAAC,gBAAgB,CAGsC;CAC/D"}
@@ -0,0 +1,126 @@
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 chalk_1 = __importDefault(require("chalk"));
16
+ const app_task_1 = require("../wrappers/app-task");
17
+ const tsyringe_1 = require("tsyringe");
18
+ const state_1 = require("../types/state");
19
+ const file_service_1 = __importDefault(require("../services/file-service"));
20
+ const path_1 = __importDefault(require("path"));
21
+ /**
22
+ * Checks the environment configuration
23
+ */
24
+ let CheckEnvironment = class CheckEnvironment extends app_task_1.AppTask {
25
+ fileService;
26
+ loggerName = "Check Environment";
27
+ requiredEnvVars = [];
28
+ optionalEnvVars = [
29
+ state_1.EnvironmentConfigKeys.NODE_ENV,
30
+ state_1.EnvironmentConfigKeys.PINO_LOG_TARGET,
31
+ state_1.EnvironmentConfigKeys.PINO_LOG_DIR_PATH,
32
+ state_1.EnvironmentConfigKeys.PINO_LOG_FILENAME,
33
+ state_1.EnvironmentConfigKeys.PINO_LOG_LEVEL,
34
+ ];
35
+ constructor(fileService) {
36
+ super();
37
+ this.fileService = fileService;
38
+ }
39
+ async run() {
40
+ this.logger.info(chalk_1.default.blueBright("Running Check Environment"));
41
+ const envVars = [...this.optionalEnvVars, ...this.requiredEnvVars];
42
+ this.getReadMessages(envVars).forEach((m) => this.logger.debug(m));
43
+ const errors = this.getErrorMessages(this.requiredEnvVars);
44
+ this.checkToExit(errors);
45
+ try {
46
+ const projectDir = this.fileService.getRunnerRootDir();
47
+ this.checkProjectDependencies(projectDir, errors);
48
+ this.checkProjectDirectories(projectDir, errors);
49
+ }
50
+ catch (err) {
51
+ errors.push(`Unexpected error checking project: ${err}`);
52
+ }
53
+ this.checkToExit(errors);
54
+ this.setData({ environmentValidated: true });
55
+ }
56
+ /**
57
+ * Check for the folders we need to generate files in. Add errors
58
+ * when no target directories can be found.
59
+ *
60
+ * @param projectDir the target project root directory path
61
+ * @param errors string array error messages are added to
62
+ */
63
+ checkProjectDirectories(projectDir, errors) {
64
+ const directories = {
65
+ taskFolders: this.fileService.getTaskDirs(projectDir),
66
+ serviceFolders: this.fileService.getServiceDirs(projectDir),
67
+ commandFolders: this.fileService.getCommandDirs(projectDir),
68
+ };
69
+ Object.keys(directories).forEach((k) => {
70
+ const key = k;
71
+ if (!directories[key] || !directories[key].length) {
72
+ errors.push(`Unable to find any ${k} in project`);
73
+ }
74
+ });
75
+ }
76
+ /**
77
+ * Check that the project has the right dependencies installed. Adds
78
+ * to the errors array when they can't be found.
79
+ *
80
+ * @param projectDir the target project root directory path
81
+ * @param errors string array error messages are added to
82
+ */
83
+ checkProjectDependencies(projectDir, errors) {
84
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
85
+ const packagePath = require(path_1.default.join(projectDir, "package.json"));
86
+ const requireDeps = ["task-script-support", "tsyringe"];
87
+ requireDeps.forEach((d) => {
88
+ if (!Object.keys(packagePath.dependencies || {}).includes(d)) {
89
+ errors.push(`Missing required dependencies in project: '${d}'`);
90
+ }
91
+ });
92
+ }
93
+ /**
94
+ * Log and exit program if errors are present.
95
+ *
96
+ * @param errors the error messages array to check
97
+ */
98
+ checkToExit(errors) {
99
+ if (errors.length) {
100
+ this.logEnvErrors(errors);
101
+ process.exit(1);
102
+ }
103
+ }
104
+ /**
105
+ * Logs any error messages in the provided array.
106
+ *
107
+ * @param errors the error messages array to log
108
+ */
109
+ logEnvErrors(errors) {
110
+ if (errors.length) {
111
+ this.logger.error(new Error("Misconfigured Environment"), chalk_1.default.red(errors.join("\n")));
112
+ }
113
+ }
114
+ getReadMessages = (allEnvVars) => allEnvVars
115
+ .filter((e) => !!process.env[e])
116
+ .map((e) => `Read value for ${e}: ${chalk_1.default.magentaBright(process.env[e])}`);
117
+ getErrorMessages = (reqEnvVars) => reqEnvVars
118
+ .filter((e) => !process.env[e])
119
+ .map((e) => `Missing required environment variable ${e}`);
120
+ };
121
+ CheckEnvironment = __decorate([
122
+ (0, tsyringe_1.autoInjectable)(),
123
+ __metadata("design:paramtypes", [file_service_1.default])
124
+ ], CheckEnvironment);
125
+ exports.default = CheckEnvironment;
126
+ //# sourceMappingURL=check-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-env.js","sourceRoot":"./src/","sources":["src/tasks/check-env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { AppTask } from "../wrappers/app-task";
2
+ import { AppState } from "../types/state";
3
+ import FileService from "../services/file-service";
4
+ import { UtilService } from "../services/util-service";
5
+ import ProjectService from "../services/project-service";
6
+ /**
7
+ * Generates a new command class
8
+ */
9
+ export default class GenerateCommand extends AppTask {
10
+ private fileService;
11
+ private utilService;
12
+ private projectService;
13
+ loggerName: string;
14
+ constructor(fileService: FileService, utilService: UtilService, projectService: ProjectService);
15
+ run(): Promise<void | Partial<AppState>>;
16
+ /**
17
+ * Get the target directory to save the generated file.
18
+ *
19
+ * @returns the destination path of the parent folder to save the new file in.
20
+ */
21
+ getTargetDirectory(): string | undefined;
22
+ }
23
+ //# sourceMappingURL=generate-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-command.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AACzD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,OAAO,cAAc,MAAM,6BAA6B,CAAC;AAEzD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAIhD,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IALxB,UAAU,SAAsB;gBAGtB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc;IAKlC,GAAG,IAAI,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IA4C9C;;;;OAIG;IACH,kBAAkB;CAWnB"}