task-script-support-cli 0.1.1 → 0.2.3

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 (192) 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 +8 -3
  62. package/dist/src/commands/gen.d.ts +3 -1
  63. package/dist/src/commands/gen.d.ts.map +1 -1
  64. package/dist/src/commands/gen.js +4 -0
  65. package/dist/src/commands/gen.js.map +1 -1
  66. package/dist/src/commands/new.d.ts +8 -0
  67. package/dist/src/commands/new.d.ts.map +1 -0
  68. package/dist/src/commands/new.js +25 -0
  69. package/dist/src/commands/new.js.map +1 -0
  70. package/dist/src/index.js +6 -0
  71. package/dist/src/index.js.map +1 -1
  72. package/dist/src/services/cache-service.d.ts +11 -0
  73. package/dist/src/services/cache-service.d.ts.map +1 -0
  74. package/dist/src/services/cache-service.js +64 -0
  75. package/dist/src/services/cache-service.js.map +1 -0
  76. package/dist/src/services/file-service.d.ts +5 -1
  77. package/dist/src/services/file-service.d.ts.map +1 -1
  78. package/dist/src/services/file-service.js +16 -2
  79. package/dist/src/services/file-service.js.map +1 -1
  80. package/dist/src/services/log-service.d.ts.map +1 -1
  81. package/dist/src/services/log-service.js +7 -1
  82. package/dist/src/services/log-service.js.map +1 -1
  83. package/dist/src/services/project-service.d.ts +2 -2
  84. package/dist/src/services/project-service.d.ts.map +1 -1
  85. package/dist/src/services/project-service.js +5 -7
  86. package/dist/src/services/project-service.js.map +1 -1
  87. package/dist/src/services/prompt-service.d.ts +27 -0
  88. package/dist/src/services/prompt-service.d.ts.map +1 -0
  89. package/dist/src/services/prompt-service.js +67 -0
  90. package/dist/src/services/prompt-service.js.map +1 -0
  91. package/dist/src/services/spawn-service.d.ts +2 -1
  92. package/dist/src/services/spawn-service.d.ts.map +1 -1
  93. package/dist/src/services/spawn-service.js +16 -1
  94. package/dist/src/services/spawn-service.js.map +1 -1
  95. package/dist/src/services/util-service.d.ts +2 -0
  96. package/dist/src/services/util-service.d.ts.map +1 -1
  97. package/dist/src/services/util-service.js +4 -0
  98. package/dist/src/services/util-service.js.map +1 -1
  99. package/dist/src/tasks/check-env.d.ts +3 -2
  100. package/dist/src/tasks/check-env.d.ts.map +1 -1
  101. package/dist/src/tasks/check-env.js +11 -3
  102. package/dist/src/tasks/check-env.js.map +1 -1
  103. package/dist/src/tasks/create-new-project.d.ts +26 -0
  104. package/dist/src/tasks/create-new-project.d.ts.map +1 -0
  105. package/dist/src/tasks/create-new-project.js +76 -0
  106. package/dist/src/tasks/create-new-project.js.map +1 -0
  107. package/dist/src/tasks/generate-command.d.ts +18 -6
  108. package/dist/src/tasks/generate-command.d.ts.map +1 -1
  109. package/dist/src/tasks/generate-command.js +66 -29
  110. package/dist/src/tasks/generate-command.js.map +1 -1
  111. package/dist/src/tasks/generate-service.d.ts +10 -6
  112. package/dist/src/tasks/generate-service.d.ts.map +1 -1
  113. package/dist/src/tasks/generate-service.js +27 -26
  114. package/dist/src/tasks/generate-service.js.map +1 -1
  115. package/dist/src/tasks/generate-task.d.ts +10 -6
  116. package/dist/src/tasks/generate-task.d.ts.map +1 -1
  117. package/dist/src/tasks/generate-task.js +27 -26
  118. package/dist/src/tasks/generate-task.js.map +1 -1
  119. package/dist/src/tasks/print-banner.d.ts +3 -3
  120. package/dist/src/tasks/print-banner.d.ts.map +1 -1
  121. package/dist/src/tasks/print-banner.js +12 -8
  122. package/dist/src/tasks/print-banner.js.map +1 -1
  123. package/dist/src/tasks/print-generated-results.d.ts.map +1 -1
  124. package/dist/src/tasks/print-generated-results.js +13 -10
  125. package/dist/src/tasks/print-generated-results.js.map +1 -1
  126. package/dist/src/tasks/select-gen-target-name.d.ts +15 -0
  127. package/dist/src/tasks/select-gen-target-name.d.ts.map +1 -0
  128. package/dist/src/tasks/select-gen-target-name.js +58 -0
  129. package/dist/src/tasks/select-gen-target-name.js.map +1 -0
  130. package/dist/src/tasks/select-gen-target.d.ts +5 -0
  131. package/dist/src/tasks/select-gen-target.d.ts.map +1 -1
  132. package/dist/src/tasks/select-gen-target.js +16 -2
  133. package/dist/src/tasks/select-gen-target.js.map +1 -1
  134. package/dist/src/tasks/sync-configuration.d.ts +34 -0
  135. package/dist/src/tasks/sync-configuration.d.ts.map +1 -0
  136. package/dist/src/tasks/sync-configuration.js +116 -0
  137. package/dist/src/tasks/sync-configuration.js.map +1 -0
  138. package/dist/src/tasks/test-task.d.ts +10 -0
  139. package/dist/src/tasks/test-task.d.ts.map +1 -0
  140. package/dist/src/tasks/test-task.js +36 -0
  141. package/dist/src/tasks/test-task.js.map +1 -0
  142. package/dist/src/templates/command.js +2 -2
  143. package/dist/src/templates/command.js.map +1 -1
  144. package/dist/src/templates/service.js +1 -1
  145. package/dist/src/templates/service.js.map +1 -1
  146. package/dist/src/types/process.d.ts +2 -1
  147. package/dist/src/types/process.d.ts.map +1 -1
  148. package/dist/src/types/process.js +1 -0
  149. package/dist/src/types/process.js.map +1 -1
  150. package/dist/src/types/project.d.ts +12 -0
  151. package/dist/src/types/project.d.ts.map +1 -0
  152. package/dist/src/types/project.js +3 -0
  153. package/dist/src/types/project.js.map +1 -0
  154. package/dist/src/types/state.d.ts +5 -1
  155. package/dist/src/types/state.d.ts.map +1 -1
  156. package/dist/src/types/state.js +1 -0
  157. package/dist/src/types/state.js.map +1 -1
  158. package/dist/vitest.config.d.ts +3 -0
  159. package/dist/vitest.config.d.ts.map +1 -0
  160. package/dist/vitest.config.js +16 -0
  161. package/dist/vitest.config.js.map +1 -0
  162. package/package.json +8 -3
  163. package/src/commands/gen.ts +4 -0
  164. package/src/commands/new.ts +10 -0
  165. package/src/index.ts +7 -0
  166. package/src/services/cache-service.ts +50 -0
  167. package/src/services/file-service.ts +18 -1
  168. package/src/services/log-service.ts +6 -1
  169. package/src/services/project-service.ts +2 -2
  170. package/src/services/prompt-service.ts +60 -0
  171. package/src/services/spawn-service.ts +15 -1
  172. package/src/services/util-service.ts +5 -0
  173. package/src/tasks/check-env.ts +10 -2
  174. package/src/tasks/create-new-project.ts +66 -0
  175. package/src/tasks/generate-command.ts +84 -31
  176. package/src/tasks/generate-service.ts +24 -28
  177. package/src/tasks/generate-task.ts +24 -28
  178. package/src/tasks/print-banner.ts +10 -6
  179. package/src/tasks/print-generated-results.ts +15 -15
  180. package/src/tasks/select-gen-target-name.ts +44 -0
  181. package/src/tasks/select-gen-target.ts +16 -1
  182. package/src/tasks/sync-configuration.ts +121 -0
  183. package/src/tasks/test-task.ts +20 -0
  184. package/src/templates/command.ts +2 -2
  185. package/src/templates/service.ts +1 -1
  186. package/src/types/process.ts +1 -0
  187. package/src/types/project.ts +12 -0
  188. package/src/types/state.ts +7 -1
  189. package/tests/index.spec.ts +8 -0
  190. package/tests/setup.ts +1 -0
  191. package/tsconfig.json +1 -1
  192. package/vitest.config.ts +14 -0
@@ -16,12 +16,13 @@ const chalk_1 = __importDefault(require("chalk"));
16
16
  const app_task_1 = require("../wrappers/app-task");
17
17
  const tsyringe_1 = require("tsyringe");
18
18
  const state_1 = require("../types/state");
19
- const file_service_1 = __importDefault(require("../services/file-service"));
19
+ const file_service_1 = require("../services/file-service");
20
20
  const util_service_1 = require("../services/util-service");
21
21
  const format_1 = require("../types/format");
22
22
  const path_1 = __importDefault(require("path"));
23
23
  const command_1 = require("../templates/command");
24
- const project_service_1 = __importDefault(require("../services/project-service"));
24
+ const project_service_1 = require("../services/project-service");
25
+ const prompt_service_1 = require("../services/prompt-service");
25
26
  /**
26
27
  * Generates a new command class
27
28
  */
@@ -29,63 +30,99 @@ let GenerateCommand = class GenerateCommand extends app_task_1.AppTask {
29
30
  fileService;
30
31
  utilService;
31
32
  projectService;
33
+ promptService;
32
34
  loggerName = "Generate Command";
33
- constructor(fileService, utilService, projectService) {
35
+ constructor(fileService, utilService, projectService, promptService) {
34
36
  super();
35
37
  this.fileService = fileService;
36
38
  this.utilService = utilService;
37
39
  this.projectService = projectService;
40
+ this.promptService = promptService;
38
41
  }
42
+ /**
43
+ * Generates a new command class file.
44
+ *
45
+ * @returns updated state with outputDestination set to generated result path.
46
+ */
39
47
  async run() {
40
- const { utilService, fileService, argService, projectService } = this;
48
+ const { utilService, fileService, projectService } = this;
41
49
  if (this.state.data.genTargetType !== state_1.GenTargetType.Command) {
42
- return;
50
+ return; // no-op
43
51
  }
44
52
  this.logger.info(chalk_1.default.blueBright("Generating Command"));
45
- let targetName = argService.getTargetName();
46
- if (!targetName) {
47
- // TODO: Should we prompt for target name here?
48
- targetName = argService.cleanTargetName(project_service_1.default.defaults.targetName);
49
- }
50
- const targetDirectory = this.getTargetDirectory();
51
- if (!targetDirectory) {
52
- throw new Error("Unable to determine target Directory");
53
- }
53
+ const targetName = this.state.data.genTargetName;
54
+ const targetDirectory = this.state.data.project.commandDestination;
54
55
  // detect case between commands and task files
55
- const taskFiles = projectService.getTaskFiles();
56
56
  const convention = projectService.getConvention();
57
57
  this.logger.debug(`Using convention: ${chalk_1.default.magentaBright(convention)}`);
58
- this.logger.debug(`Found ${taskFiles.length} task files`);
59
58
  const className = utilService.titleizedToCase(targetName, format_1.CaseType.PASCAL_CASE);
60
- // TODO: prompt for tasks to use in the new command?
59
+ const filename = `${utilService.titleizedToCase(targetName, convention)}${project_service_1.ProjectService.defaults.extention}`;
61
60
  const taskMappings = new Map();
61
+ await this.addTasksToMap(taskMappings);
62
62
  const rendered = (0, command_1.getCommandTemplate)(className, taskMappings);
63
- const filename = `${utilService.titleizedToCase(targetName, convention)}${project_service_1.default.defaults.extention}`;
64
63
  const destination = path_1.default.join(targetDirectory, filename);
65
64
  // write contents
66
65
  fileService.writeFile(destination, rendered);
67
66
  return { data: { outputDestination: destination } };
68
67
  }
69
68
  /**
70
- * Get the target directory to save the generated file.
69
+ * Checks state for required fields. Executes prior to run method.
70
+ * Skips validation if genTargetType is not set to command.
71
+ */
72
+ async preRun() {
73
+ if (this.state.data.genTargetType !== state_1.GenTargetType.Command) {
74
+ return; // no validation on no-op flow
75
+ }
76
+ if (!this.state.data.genTargetName) {
77
+ throw new Error("Unable to determine targetName");
78
+ }
79
+ if (!this.state.data.project) {
80
+ throw new Error("Unable to determine project");
81
+ }
82
+ if (!this.state.data.project.commandDestination) {
83
+ throw new Error("Unable to determine targetDirectory");
84
+ }
85
+ }
86
+ /**
87
+ * Prompt to select tasks to use in the command being generated.
71
88
  *
72
- * @returns the destination path of the parent folder to save the new file in.
89
+ * @param taskMappings the map to add picked tasks to import for the command
73
90
  */
74
- getTargetDirectory() {
75
- const runnerRoot = this.fileService.getRunnerRootDir();
76
- const commandFolders = this.fileService.getCommandDirs(runnerRoot);
77
- if (commandFolders.length === 1) {
78
- return commandFolders[0];
91
+ async addTasksToMap(taskMappings) {
92
+ if (!this.state.data.project?.taskDestination) {
93
+ return;
94
+ }
95
+ const taskFiles = this.fileService.getFilesInDir(this.state.data.project.taskDestination);
96
+ this.logger.debug(`Found ${taskFiles.length} task files`);
97
+ // prompt for tasks to use in the new command
98
+ const pickedTasks = await this.promptService.pickMultiple("Include Tasks", taskFiles.map((tf) => ({
99
+ name: this.utilService.titleizedToCase(this.utilService.titleizeAll(this.fileService.getFilenameNoExt(tf)), format_1.CaseType.PASCAL_CASE),
100
+ value: tf,
101
+ })));
102
+ this.logger.debug(`Selected ${pickedTasks.length} tasks`);
103
+ if (!pickedTasks.length) {
104
+ return;
105
+ }
106
+ console.log(JSON.stringify(pickedTasks));
107
+ // add them to the map
108
+ for (const picked of pickedTasks) {
109
+ const filename = this.fileService.getFilenameNoExt(picked);
110
+ const taskClassName = this.utilService.titleizedToCase(this.utilService.titleizeAll(filename), format_1.CaseType.PASCAL_CASE);
111
+ const relativeSource = this.state.data.project.commandDestination;
112
+ const relativeDest = this.fileService.join(this.state.data.project.taskDestination, picked);
113
+ taskMappings.set(taskClassName, this.fileService
114
+ .toRelativePath(relativeSource, relativeDest)
115
+ // remove extension for typescript import
116
+ .replace(project_service_1.ProjectService.defaults.extention, ""));
79
117
  }
80
- // TODO: prompt to select destination from available commandFolders
81
- return commandFolders[0];
82
118
  }
83
119
  };
84
120
  GenerateCommand = __decorate([
85
121
  (0, tsyringe_1.autoInjectable)(),
86
- __metadata("design:paramtypes", [file_service_1.default,
122
+ __metadata("design:paramtypes", [file_service_1.FileService,
87
123
  util_service_1.UtilService,
88
- project_service_1.default])
124
+ project_service_1.ProjectService,
125
+ prompt_service_1.PromptService])
89
126
  ], GenerateCommand);
90
127
  exports.default = GenerateCommand;
91
128
  //# sourceMappingURL=generate-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-command.js","sourceRoot":"./src/","sources":["src/tasks/generate-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-command.js","sourceRoot":"./src/","sources":["src/tasks/generate-command.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { AppTask } from "../wrappers/app-task";
2
- import ProjectService from "../services/project-service";
2
+ import { ProjectService } from "../services/project-service";
3
3
  import { UtilService } from "../services/util-service";
4
- import FileService from "../services/file-service";
4
+ import { FileService } from "../services/file-service";
5
5
  /**
6
6
  * Generates a new service class
7
7
  */
@@ -11,16 +11,20 @@ export default class GenerateService extends AppTask {
11
11
  private fileService;
12
12
  loggerName: string;
13
13
  constructor(projectService: ProjectService, utilService: UtilService, fileService: FileService);
14
+ /**
15
+ * Generates a new service class file.
16
+ *
17
+ * @returns updated state with outputDestination set to generated result path.
18
+ */
14
19
  run(): Promise<{
15
20
  data: {
16
21
  outputDestination: string;
17
22
  };
18
23
  } | undefined>;
19
24
  /**
20
- * Get the target directory to save the generated file.
21
- *
22
- * @returns the destination path of the parent folder to save the new file in.
25
+ * Checks state for required fields. Executes prior to run method.
26
+ * Skips validation if genTargetType is not set to service.
23
27
  */
24
- getTargetDirectory(): string | undefined;
28
+ preRun(): Promise<void>;
25
29
  }
26
30
  //# sourceMappingURL=generate-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-service.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,cAAc,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAKnD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAIhD,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IALrB,UAAU,SAAsB;gBAGtB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW;IAK5B,GAAG;;;;;IAsCT;;;;OAIG;IACH,kBAAkB;CAYnB"}
1
+ {"version":3,"file":"generate-service.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAIhD,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IALrB,UAAU,SAAsB;gBAGtB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW;IAKlC;;;;OAIG;IACG,GAAG;;;;;IA4BT;;;OAGG;IACG,MAAM;CAcb"}
@@ -16,9 +16,9 @@ const chalk_1 = __importDefault(require("chalk"));
16
16
  const app_task_1 = require("../wrappers/app-task");
17
17
  const tsyringe_1 = require("tsyringe");
18
18
  const state_1 = require("../types/state");
19
- const project_service_1 = __importDefault(require("../services/project-service"));
19
+ const project_service_1 = require("../services/project-service");
20
20
  const util_service_1 = require("../services/util-service");
21
- const file_service_1 = __importDefault(require("../services/file-service"));
21
+ const file_service_1 = require("../services/file-service");
22
22
  const format_1 = require("../types/format");
23
23
  const path_1 = __importDefault(require("path"));
24
24
  const service_1 = require("../templates/service");
@@ -36,53 +36,54 @@ let GenerateService = class GenerateService extends app_task_1.AppTask {
36
36
  this.utilService = utilService;
37
37
  this.fileService = fileService;
38
38
  }
39
+ /**
40
+ * Generates a new service class file.
41
+ *
42
+ * @returns updated state with outputDestination set to generated result path.
43
+ */
39
44
  async run() {
40
45
  if (this.state.data.genTargetType !== state_1.GenTargetType.Service) {
41
46
  return;
42
47
  }
43
48
  this.logger.info(chalk_1.default.blueBright("Generating Service"));
44
- const { argService, utilService, projectService } = this;
45
- let targetName = argService.getTargetName();
46
- if (!targetName) {
47
- // TODO: Prompt for target name?
48
- targetName = argService.cleanTargetName(project_service_1.default.defaults.targetName);
49
- }
50
- const targetDirectory = this.getTargetDirectory();
51
- if (!targetDirectory) {
52
- throw new Error("Unable to determine target Directory");
53
- }
49
+ const { utilService, projectService } = this;
50
+ const targetName = this.state.data.genTargetName;
51
+ const targetDirectory = this.state.data.project.serviceDestination;
54
52
  // detect case
55
53
  const convention = projectService.getConvention();
56
54
  this.logger.debug(`Using convention: ${chalk_1.default.magentaBright(convention)}`);
57
55
  const className = utilService.titleizedToCase(targetName, format_1.CaseType.PASCAL_CASE);
58
56
  const rendered = (0, service_1.getServiceTemplate)(className);
59
- const filename = `${utilService.titleizedToCase(targetName, convention)}${project_service_1.default.defaults.extention}`;
57
+ const filename = `${utilService.titleizedToCase(targetName, convention)}${project_service_1.ProjectService.defaults.extention}`;
60
58
  const destination = path_1.default.join(targetDirectory, filename);
61
59
  // write contents
62
60
  this.fileService.writeFile(destination, rendered);
63
61
  return { data: { outputDestination: destination } };
64
62
  }
65
63
  /**
66
- * Get the target directory to save the generated file.
67
- *
68
- * @returns the destination path of the parent folder to save the new file in.
64
+ * Checks state for required fields. Executes prior to run method.
65
+ * Skips validation if genTargetType is not set to service.
69
66
  */
70
- getTargetDirectory() {
71
- const runnerRoot = this.fileService.getRunnerRootDir();
72
- const servicesFolders = this.fileService.getServiceDirs(runnerRoot);
73
- if (servicesFolders.length === 1) {
74
- return servicesFolders[0];
67
+ async preRun() {
68
+ if (this.state.data.genTargetType !== state_1.GenTargetType.Service) {
69
+ return; // no validation on no-op flow
70
+ }
71
+ if (!this.state.data.genTargetName) {
72
+ throw new Error("Unable to determine targetName");
73
+ }
74
+ if (!this.state.data.project) {
75
+ throw new Error("Unable to determine project");
76
+ }
77
+ if (!this.state.data.project.serviceDestination) {
78
+ throw new Error("Unable to determine targetDirectory");
75
79
  }
76
- // TODO: prompt to select destination from available servicesFolders
77
- this.logger.warn(`Multiple service folders detected. Using first found.`);
78
- return servicesFolders[0];
79
80
  }
80
81
  };
81
82
  GenerateService = __decorate([
82
83
  (0, tsyringe_1.autoInjectable)(),
83
- __metadata("design:paramtypes", [project_service_1.default,
84
+ __metadata("design:paramtypes", [project_service_1.ProjectService,
84
85
  util_service_1.UtilService,
85
- file_service_1.default])
86
+ file_service_1.FileService])
86
87
  ], GenerateService);
87
88
  exports.default = GenerateService;
88
89
  //# sourceMappingURL=generate-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-service.js","sourceRoot":"./src/","sources":["src/tasks/generate-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-service.js","sourceRoot":"./src/","sources":["src/tasks/generate-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mDAA+C;AAC/C,uCAA0C;AAC1C,0CAA+C;AAC/C,iEAA6D;AAC7D,2DAAuD;AACvD,2DAAuD;AACvD,4CAA2C;AAC3C,gDAAwB;AACxB,kDAA0D;AAE1D;;GAEG;AAEY,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,kBAAO;IAIxC;IACA;IACA;IALV,UAAU,GAAG,kBAAkB,CAAC;IAEhC,YACU,cAA8B,EAC9B,WAAwB,EACxB,WAAwB;QAEhC,KAAK,EAAE,CAAC;QAJA,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;IAGlC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,qBAAa,CAAC,OAAO,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzD,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAc,CAAC;QAClD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAQ,CAAC,kBAAmB,CAAC;QAErE,cAAc;QACd,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,eAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAC3C,UAAU,EACV,iBAAQ,CAAC,WAAW,CACrB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAA,4BAAkB,EAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,gCAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC9G,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEzD,iBAAiB;QACjB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,qBAAa,CAAC,OAAO,EAAE,CAAC;YAC5D,OAAO,CAAC,8BAA8B;QACxC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAA;AA9DoB,eAAe;IADnC,IAAA,yBAAc,GAAE;qCAKW,gCAAc;QACjB,0BAAW;QACX,0BAAW;GANf,eAAe,CA8DnC;kBA9DoB,eAAe"}
@@ -1,7 +1,7 @@
1
1
  import { AppTask } from "../wrappers/app-task";
2
2
  import { UtilService } from "../services/util-service";
3
- import FileService from "../services/file-service";
4
- import ProjectService from "../services/project-service";
3
+ import { FileService } from "../services/file-service";
4
+ import { ProjectService } from "../services/project-service";
5
5
  /**
6
6
  * Generates a new task class
7
7
  */
@@ -11,16 +11,20 @@ export default class GenerateTask extends AppTask {
11
11
  private projectService;
12
12
  loggerName: string;
13
13
  constructor(utilService: UtilService, fileService: FileService, projectService: ProjectService);
14
+ /**
15
+ * Generates a new task class file.
16
+ *
17
+ * @returns updated state with outputDestination set to generated result path.
18
+ */
14
19
  run(): Promise<{
15
20
  data: {
16
21
  outputDestination: string;
17
22
  };
18
23
  } | undefined>;
19
24
  /**
20
- * Get the target directory to save the generated file.
21
- *
22
- * @returns the destination path of the parent folder to save the new file in.
25
+ * Checks state for required fields. Executes prior to run method.
26
+ * Skips validation if genTargetType is not set to task.
23
27
  */
24
- getTargetDirectory(): string | undefined;
28
+ preRun(): Promise<void>;
25
29
  }
26
30
  //# sourceMappingURL=generate-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-task.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,cAAc,MAAM,6BAA6B,CAAC;AAGzD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAI7C,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IALxB,UAAU,SAAmB;gBAGnB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc;IAKlC,GAAG;;;;;IAuCT;;;;OAIG;IACH,kBAAkB;CAYnB"}
1
+ {"version":3,"file":"generate-task.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAI7C,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IALxB,UAAU,SAAmB;gBAGnB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc;IAKxC;;;;OAIG;IACG,GAAG;;;;;IA6BT;;;OAGG;IACG,MAAM;CAcb"}
@@ -19,8 +19,8 @@ const state_1 = require("../types/state");
19
19
  const task_1 = require("../templates/task");
20
20
  const format_1 = require("../types/format");
21
21
  const util_service_1 = require("../services/util-service");
22
- const file_service_1 = __importDefault(require("../services/file-service"));
23
- const project_service_1 = __importDefault(require("../services/project-service"));
22
+ const file_service_1 = require("../services/file-service");
23
+ const project_service_1 = require("../services/project-service");
24
24
  const path_1 = __importDefault(require("path"));
25
25
  /**
26
26
  * Generates a new task class
@@ -36,53 +36,54 @@ let GenerateTask = class GenerateTask extends app_task_1.AppTask {
36
36
  this.fileService = fileService;
37
37
  this.projectService = projectService;
38
38
  }
39
+ /**
40
+ * Generates a new task class file.
41
+ *
42
+ * @returns updated state with outputDestination set to generated result path.
43
+ */
39
44
  async run() {
40
45
  if (this.state.data.genTargetType !== state_1.GenTargetType.Task) {
41
46
  return;
42
47
  }
43
- const { utilService, argService } = this;
48
+ const { utilService } = this;
44
49
  this.logger.info(chalk_1.default.blueBright("Generating Task"));
45
- let targetName = argService.getTargetName();
46
- if (!targetName) {
47
- // TODO: Prompt for target name?
48
- targetName = argService.cleanTargetName(project_service_1.default.defaults.targetName);
49
- }
50
- const targetDirectory = this.getTargetDirectory();
51
- if (!targetDirectory) {
52
- throw new Error("Unable to determine target Directory");
53
- }
50
+ const targetName = this.state.data.genTargetName;
51
+ const targetDirectory = this.state.data.project.taskDestination;
54
52
  // detect case
55
53
  const convention = this.projectService.getConvention();
56
54
  this.logger.debug(`Using convention: ${chalk_1.default.magentaBright(convention)}`);
57
55
  const className = utilService.titleizedToCase(targetName, format_1.CaseType.PASCAL_CASE);
58
56
  const rendered = (0, task_1.getTaskTemplate)(className);
59
- const filename = `${utilService.titleizedToCase(targetName, convention)}${project_service_1.default.defaults.extention}`;
57
+ const filename = `${utilService.titleizedToCase(targetName, convention)}${project_service_1.ProjectService.defaults.extention}`;
60
58
  const destination = path_1.default.join(targetDirectory, filename);
61
59
  // write contents
62
60
  this.fileService.writeFile(destination, rendered);
63
61
  return { data: { outputDestination: destination } };
64
62
  }
65
63
  /**
66
- * Get the target directory to save the generated file.
67
- *
68
- * @returns the destination path of the parent folder to save the new file in.
64
+ * Checks state for required fields. Executes prior to run method.
65
+ * Skips validation if genTargetType is not set to task.
69
66
  */
70
- getTargetDirectory() {
71
- const runnerRoot = this.fileService.getRunnerRootDir();
72
- const tasksFolders = this.fileService.getTaskDirs(runnerRoot);
73
- if (tasksFolders.length === 1) {
74
- return tasksFolders[0];
67
+ async preRun() {
68
+ if (this.state.data.genTargetType !== state_1.GenTargetType.Task) {
69
+ return; // no validation on no-op flow
70
+ }
71
+ if (!this.state.data.genTargetName) {
72
+ throw new Error("Unable to determine targetName");
73
+ }
74
+ if (!this.state.data.project) {
75
+ throw new Error("Unable to determine project");
76
+ }
77
+ if (!this.state.data.project.taskDestination) {
78
+ throw new Error("Unable to determine targetDirectory");
75
79
  }
76
- // TODO: prompt to select destination from available tasksFolders
77
- this.logger.warn(`Multiple task folders detected. Using first found.`);
78
- return tasksFolders[0];
79
80
  }
80
81
  };
81
82
  GenerateTask = __decorate([
82
83
  (0, tsyringe_1.autoInjectable)(),
83
84
  __metadata("design:paramtypes", [util_service_1.UtilService,
84
- file_service_1.default,
85
- project_service_1.default])
85
+ file_service_1.FileService,
86
+ project_service_1.ProjectService])
86
87
  ], GenerateTask);
87
88
  exports.default = GenerateTask;
88
89
  //# sourceMappingURL=generate-task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-task.js","sourceRoot":"./src/","sources":["src/tasks/generate-task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-task.js","sourceRoot":"./src/","sources":["src/tasks/generate-task.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mDAA+C;AAC/C,uCAA0C;AAC1C,0CAA+C;AAC/C,4CAAoD;AACpD,4CAA2C;AAC3C,2DAAuD;AACvD,2DAAuD;AACvD,iEAA6D;AAC7D,gDAAwB;AAExB;;GAEG;AAEY,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,kBAAO;IAIrC;IACA;IACA;IALV,UAAU,GAAG,eAAe,CAAC;IAE7B,YACU,WAAwB,EACxB,WAAwB,EACxB,cAA8B;QAEtC,KAAK,EAAE,CAAC;QAJA,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,mBAAc,GAAd,cAAc,CAAgB;IAGxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,qBAAa,CAAC,IAAI,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAc,CAAC;QAClD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAQ,CAAC,eAAgB,CAAC;QAElE,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,eAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAC3C,UAAU,EACV,iBAAQ,CAAC,WAAW,CACrB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,gCAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC9G,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEzD,iBAAiB;QACjB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,qBAAa,CAAC,IAAI,EAAE,CAAC;YACzD,OAAO,CAAC,8BAA8B;QACxC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAA;AA/DoB,YAAY;IADhC,IAAA,yBAAc,GAAE;qCAKQ,0BAAW;QACX,0BAAW;QACR,gCAAc;GANrB,YAAY,CA+DhC;kBA/DoB,YAAY"}
@@ -3,10 +3,10 @@ import { AppTask } from "../wrappers/app-task";
3
3
  import { BannerService } from "../services/banner-service";
4
4
  import { UtilService } from "../services/util-service";
5
5
  export default class PrintBanner extends AppTask {
6
- private bannnerSvc;
7
- private utilSvc;
6
+ private bannnerService;
7
+ private utilService;
8
8
  loggerName: string;
9
- constructor(bannnerSvc: BannerService, utilSvc: UtilService);
9
+ constructor(bannnerService: BannerService, utilService: UtilService);
10
10
  run(): Promise<Partial<AppState> | void>;
11
11
  }
12
12
  //# sourceMappingURL=print-banner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"print-banner.d.ts","sourceRoot":"./src/","sources":["src/tasks/print-banner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAI5C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAJjB,UAAU,SAAkB;gBAGlB,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,WAAW;IAKxB,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CAkB/C"}
1
+ {"version":3,"file":"print-banner.d.ts","sourceRoot":"./src/","sources":["src/tasks/print-banner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAyB,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAI5C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IAJrB,UAAU,SAAkB;gBAGlB,cAAc,EAAE,aAAa,EAC7B,WAAW,EAAE,WAAW;IAK5B,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CAsB/C"}
@@ -13,28 +13,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const tsyringe_1 = require("tsyringe");
16
+ const state_1 = require("../types/state");
16
17
  const app_task_1 = require("../wrappers/app-task");
17
18
  const banner_service_1 = require("../services/banner-service");
18
19
  const util_service_1 = require("../services/util-service");
19
20
  const chalk_1 = __importDefault(require("chalk"));
20
21
  let PrintBanner = class PrintBanner extends app_task_1.AppTask {
21
- bannnerSvc;
22
- utilSvc;
22
+ bannnerService;
23
+ utilService;
23
24
  loggerName = "Print Banner";
24
- constructor(bannnerSvc, utilSvc) {
25
+ constructor(bannnerService, utilService) {
25
26
  super();
26
- this.bannnerSvc = bannnerSvc;
27
- this.utilSvc = utilSvc;
27
+ this.bannnerService = bannnerService;
28
+ this.utilService = utilService;
28
29
  }
29
30
  async run() {
30
31
  let font = "";
32
+ if (process.env[state_1.EnvironmentConfigKeys.TSSC_SILENCE_BANNER]) {
33
+ return;
34
+ }
31
35
  if (this.argService.hasFlag("randomFont")) {
32
- font = await this.bannnerSvc.getRandomFont();
36
+ font = await this.bannnerService.getRandomFont();
33
37
  console.log(`Using random font ${font}`);
34
38
  }
35
- console.log(chalk_1.default.blueBright(await this.bannnerSvc.toBanner(this.utilSvc.getAppName(), font)));
39
+ console.log(chalk_1.default.blueBright(await this.bannnerService.toBanner(this.utilService.getAppName(), font)));
36
40
  this.setData({
37
- banner: { font: font || this.bannnerSvc.defaultFontFamily },
41
+ banner: { font: font || this.bannnerService.defaultFontFamily },
38
42
  });
39
43
  }
40
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"print-banner.js","sourceRoot":"./src/","sources":["src/tasks/print-banner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAA0C;AAE1C,mDAA+C;AAC/C,+DAA2D;AAC3D,2DAAuD;AACvD,kDAA0B;AAGX,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,kBAAO;IAIpC;IACA;IAJV,UAAU,GAAG,cAAc,CAAC;IAE5B,YACU,UAAyB,EACzB,OAAoB;QAE5B,KAAK,EAAE,CAAC;QAHA,eAAU,GAAV,UAAU,CAAe;QACzB,YAAO,GAAP,OAAO,CAAa;IAG9B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,UAAU,CACd,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAChE,CACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA5BoB,WAAW;IAD/B,IAAA,yBAAc,GAAE;qCAKO,8BAAa;QAChB,0BAAW;GALX,WAAW,CA4B/B;kBA5BoB,WAAW"}
1
+ {"version":3,"file":"print-banner.js","sourceRoot":"./src/","sources":["src/tasks/print-banner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAA0C;AAC1C,0CAAiE;AACjE,mDAA+C;AAC/C,+DAA2D;AAC3D,2DAAuD;AACvD,kDAA0B;AAGX,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,kBAAO;IAIpC;IACA;IAJV,UAAU,GAAG,cAAc,CAAC;IAE5B,YACU,cAA6B,EAC7B,WAAwB;QAEhC,KAAK,EAAE,CAAC;QAHA,mBAAc,GAAd,cAAc,CAAe;QAC7B,gBAAW,GAAX,WAAW,CAAa;IAGlC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,OAAO,CAAC,GAAG,CAAC,6BAAqB,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,UAAU,CACd,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CACxE,CACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;SAChE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAhCoB,WAAW;IAD/B,IAAA,yBAAc,GAAE;qCAKW,8BAAa;QAChB,0BAAW;GALf,WAAW,CAgC/B;kBAhCoB,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"print-generated-results.d.ts","sourceRoot":"./src/","sources":["src/tasks/print-generated-results.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IAG5C,OAAO,CAAC,WAAW;IAF/B,UAAU,SAAmB;gBAET,WAAW,EAAE,WAAW;IAItC,GAAG;CAkBV"}
1
+ {"version":3,"file":"print-generated-results.d.ts","sourceRoot":"./src/","sources":["src/tasks/print-generated-results.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IAG5C,OAAO,CAAC,WAAW;IAF/B,UAAU,SAAmB;gBAET,WAAW,EAAE,WAAW;IAItC,GAAG;CAkBV"}
@@ -16,6 +16,7 @@ const chalk_1 = __importDefault(require("chalk"));
16
16
  const app_task_1 = require("../wrappers/app-task");
17
17
  const tsyringe_1 = require("tsyringe");
18
18
  const util_service_1 = require("../services/util-service");
19
+ const project_service_1 = require("../services/project-service");
19
20
  /**
20
21
  * Prints the generated output results
21
22
  */
@@ -27,17 +28,19 @@ let PrintGeneratedResults = class PrintGeneratedResults extends app_task_1.AppTa
27
28
  this.utilService = utilService;
28
29
  }
29
30
  async run() {
30
- const target = this.state.data.genTargetType;
31
- this.logger.info(chalk_1.default.blueBright(`Generated Results for ${this.utilService.titleize(target)}`));
32
- setTimeout(() => {
33
- console.log(`
34
-
35
- Generated new file:
31
+ const genType = this.state.data.genTargetType
32
+ ? this.utilService.titleize(this.state.data.genTargetType)
33
+ : "Project";
34
+ this.logger.info(`Generated Results for ${chalk_1.default.blueBright(genType)}`);
35
+ // wait for logs to flush before mixing in console.log
36
+ await this.utilService.sleep(200);
37
+ console.log(`
38
+
39
+ Generated new ${this.state.data.outputDestination?.includes(project_service_1.ProjectService.defaults.extention) ? "file" : "project"}:
36
40
 
37
- ${this.state.data.outputDestination || "<None>"}
38
-
39
- `);
40
- }, 1000);
41
+ ${this.state.data.outputDestination || "<None>"}
42
+
43
+ `);
41
44
  }
42
45
  };
43
46
  PrintGeneratedResults = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"print-generated-results.js","sourceRoot":"./src/","sources":["src/tasks/print-generated-results.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mDAA+C;AAC/C,uCAA0C;AAE1C,2DAAuD;AAEvD;;GAEG;AAEY,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,kBAAO;IAGpC;IAFpB,UAAU,GAAG,eAAe,CAAC;IAE7B,YAAoB,WAAwB;QAC1C,KAAK,EAAE,CAAC;QADU,gBAAW,GAAX,WAAW,CAAa;IAE5C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAc,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,eAAK,CAAC,UAAU,CACd,yBAAyB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAC7D,CACF,CAAC;QAEF,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,CAAC;;;;YAIN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,QAAQ;;SAEhD,CAAC,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;CACF,CAAA;AAzBoB,qBAAqB;IADzC,IAAA,yBAAc,GAAE;qCAIkB,0BAAW;GAHzB,qBAAqB,CAyBzC;kBAzBoB,qBAAqB"}
1
+ {"version":3,"file":"print-generated-results.js","sourceRoot":"./src/","sources":["src/tasks/print-generated-results.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mDAA+C;AAC/C,uCAA0C;AAC1C,2DAAuD;AACvD,iEAA6D;AAE7D;;GAEG;AAEY,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,kBAAO;IAGpC;IAFpB,UAAU,GAAG,eAAe,CAAC;IAE7B,YAAoB,WAAwB;QAC1C,KAAK,EAAE,CAAC;QADU,gBAAW,GAAX,WAAW,CAAa;IAE5C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa;YACnD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;YAC1D,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEvE,sDAAsD;QACtD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC;;sBAEM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,gCAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;;UAE/G,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,QAAQ;;OAEhD,CAAC,CAAC;IACP,CAAC;CACF,CAAA;AAzBoB,qBAAqB;IADzC,IAAA,yBAAc,GAAE;qCAIkB,0BAAW;GAHzB,qBAAqB,CAyBzC;kBAzBoB,qBAAqB"}
@@ -0,0 +1,15 @@
1
+ import { AppTask } from "../wrappers/app-task";
2
+ import { PromptService } from "../services/prompt-service";
3
+ import { UtilService } from "../services/util-service";
4
+ /**
5
+ * SelectGenTargetName
6
+ */
7
+ export default class SelectGenTargetName extends AppTask {
8
+ private promptService;
9
+ private utilService;
10
+ loggerName: string;
11
+ constructor(promptService: PromptService, utilService: UtilService);
12
+ run(): Promise<void>;
13
+ preRun(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=select-gen-target-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-gen-target-name.d.ts","sourceRoot":"./src/","sources":["src/tasks/select-gen-target-name.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;IAGpD,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IAHrB,UAAU,SAAyB;gBAEzB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW;IAK5B,GAAG;IAkBH,MAAM;CAKb"}