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.
- package/assets/yargs-template/task-runner/.prettierignore +3 -0
- package/assets/yargs-template/task-runner/.prettierrc +1 -0
- package/assets/yargs-template/task-runner/.vscode/launch.json +34 -0
- package/assets/yargs-template/task-runner/eslint.config.ts +11 -0
- package/assets/yargs-template/task-runner/install-link.sh +21 -0
- package/assets/yargs-template/task-runner/package-lock.json +3387 -0
- package/assets/yargs-template/task-runner/package.json +51 -0
- package/assets/yargs-template/task-runner/src/commands/verify.ts +10 -0
- package/assets/yargs-template/task-runner/src/index.ts +46 -0
- package/assets/yargs-template/task-runner/src/services/banner-service.ts +38 -0
- package/assets/yargs-template/task-runner/src/services/log-service.ts +48 -0
- package/assets/yargs-template/task-runner/src/services/spawn-service.ts +87 -0
- package/assets/yargs-template/task-runner/src/services/util-service.ts +28 -0
- package/assets/yargs-template/task-runner/src/tasks/check-env.ts +49 -0
- package/assets/yargs-template/task-runner/src/tasks/log-state.ts +22 -0
- package/assets/yargs-template/task-runner/src/tasks/print-banner.ts +73 -0
- package/assets/yargs-template/task-runner/src/types/process.ts +9 -0
- package/assets/yargs-template/task-runner/src/types/state.ts +31 -0
- package/assets/yargs-template/task-runner/src/wrappers/app-task.ts +42 -0
- package/assets/yargs-template/task-runner/src/wrappers/command.ts +20 -0
- package/assets/yargs-template/task-runner/src/wrappers/dependencies.ts +24 -0
- package/assets/yargs-template/task-runner/task-runner +3 -0
- package/assets/yargs-template/task-runner/templater.sh +57 -0
- package/assets/yargs-template/task-runner/tests/commands/verify.test.ts +42 -0
- package/assets/yargs-template/task-runner/tests/services/spawn-service.test.ts +132 -0
- package/assets/yargs-template/task-runner/tests/services/util-service.test.ts +36 -0
- package/assets/yargs-template/task-runner/tests/setup.ts +1 -0
- package/assets/yargs-template/task-runner/tests/tasks/check-env.test.ts +30 -0
- package/assets/yargs-template/task-runner/tsconfig.json +27 -0
- package/assets/yargs-template/task-runner/vitest.config.ts +14 -0
- package/dist/assets/yargs-template/task-runner/.prettierignore +3 -0
- package/dist/assets/yargs-template/task-runner/.prettierrc +1 -0
- package/dist/assets/yargs-template/task-runner/.vscode/launch.json +34 -0
- package/dist/assets/yargs-template/task-runner/eslint.config.ts +11 -0
- package/dist/assets/yargs-template/task-runner/install-link.sh +21 -0
- package/dist/assets/yargs-template/task-runner/package-lock.json +3387 -0
- package/dist/assets/yargs-template/task-runner/package.json +51 -0
- package/dist/assets/yargs-template/task-runner/src/commands/verify.ts +10 -0
- package/dist/assets/yargs-template/task-runner/src/index.ts +46 -0
- package/dist/assets/yargs-template/task-runner/src/services/banner-service.ts +38 -0
- package/dist/assets/yargs-template/task-runner/src/services/log-service.ts +48 -0
- package/dist/assets/yargs-template/task-runner/src/services/spawn-service.ts +87 -0
- package/dist/assets/yargs-template/task-runner/src/services/util-service.ts +28 -0
- package/dist/assets/yargs-template/task-runner/src/tasks/check-env.ts +49 -0
- package/dist/assets/yargs-template/task-runner/src/tasks/log-state.ts +22 -0
- package/dist/assets/yargs-template/task-runner/src/tasks/print-banner.ts +73 -0
- package/dist/assets/yargs-template/task-runner/src/types/process.ts +9 -0
- package/dist/assets/yargs-template/task-runner/src/types/state.ts +31 -0
- package/dist/assets/yargs-template/task-runner/src/wrappers/app-task.ts +42 -0
- package/dist/assets/yargs-template/task-runner/src/wrappers/command.ts +20 -0
- package/dist/assets/yargs-template/task-runner/src/wrappers/dependencies.ts +24 -0
- package/dist/assets/yargs-template/task-runner/task-runner +3 -0
- package/dist/assets/yargs-template/task-runner/templater.sh +57 -0
- package/dist/assets/yargs-template/task-runner/tests/commands/verify.test.ts +42 -0
- package/dist/assets/yargs-template/task-runner/tests/services/spawn-service.test.ts +132 -0
- package/dist/assets/yargs-template/task-runner/tests/services/util-service.test.ts +36 -0
- package/dist/assets/yargs-template/task-runner/tests/setup.ts +1 -0
- package/dist/assets/yargs-template/task-runner/tests/tasks/check-env.test.ts +30 -0
- package/dist/assets/yargs-template/task-runner/tsconfig.json +27 -0
- package/dist/assets/yargs-template/task-runner/vitest.config.ts +14 -0
- package/dist/package.json +8 -3
- package/dist/src/commands/gen.d.ts +3 -1
- package/dist/src/commands/gen.d.ts.map +1 -1
- package/dist/src/commands/gen.js +4 -0
- package/dist/src/commands/gen.js.map +1 -1
- package/dist/src/commands/new.d.ts +8 -0
- package/dist/src/commands/new.d.ts.map +1 -0
- package/dist/src/commands/new.js +25 -0
- package/dist/src/commands/new.js.map +1 -0
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/cache-service.d.ts +11 -0
- package/dist/src/services/cache-service.d.ts.map +1 -0
- package/dist/src/services/cache-service.js +64 -0
- package/dist/src/services/cache-service.js.map +1 -0
- package/dist/src/services/file-service.d.ts +5 -1
- package/dist/src/services/file-service.d.ts.map +1 -1
- package/dist/src/services/file-service.js +16 -2
- package/dist/src/services/file-service.js.map +1 -1
- package/dist/src/services/log-service.d.ts.map +1 -1
- package/dist/src/services/log-service.js +7 -1
- package/dist/src/services/log-service.js.map +1 -1
- package/dist/src/services/project-service.d.ts +2 -2
- package/dist/src/services/project-service.d.ts.map +1 -1
- package/dist/src/services/project-service.js +5 -7
- package/dist/src/services/project-service.js.map +1 -1
- package/dist/src/services/prompt-service.d.ts +27 -0
- package/dist/src/services/prompt-service.d.ts.map +1 -0
- package/dist/src/services/prompt-service.js +67 -0
- package/dist/src/services/prompt-service.js.map +1 -0
- package/dist/src/services/spawn-service.d.ts +2 -1
- package/dist/src/services/spawn-service.d.ts.map +1 -1
- package/dist/src/services/spawn-service.js +16 -1
- package/dist/src/services/spawn-service.js.map +1 -1
- package/dist/src/services/util-service.d.ts +2 -0
- package/dist/src/services/util-service.d.ts.map +1 -1
- package/dist/src/services/util-service.js +4 -0
- package/dist/src/services/util-service.js.map +1 -1
- package/dist/src/tasks/check-env.d.ts +3 -2
- package/dist/src/tasks/check-env.d.ts.map +1 -1
- package/dist/src/tasks/check-env.js +11 -3
- package/dist/src/tasks/check-env.js.map +1 -1
- package/dist/src/tasks/create-new-project.d.ts +26 -0
- package/dist/src/tasks/create-new-project.d.ts.map +1 -0
- package/dist/src/tasks/create-new-project.js +76 -0
- package/dist/src/tasks/create-new-project.js.map +1 -0
- package/dist/src/tasks/generate-command.d.ts +18 -6
- package/dist/src/tasks/generate-command.d.ts.map +1 -1
- package/dist/src/tasks/generate-command.js +66 -29
- package/dist/src/tasks/generate-command.js.map +1 -1
- package/dist/src/tasks/generate-service.d.ts +10 -6
- package/dist/src/tasks/generate-service.d.ts.map +1 -1
- package/dist/src/tasks/generate-service.js +27 -26
- package/dist/src/tasks/generate-service.js.map +1 -1
- package/dist/src/tasks/generate-task.d.ts +10 -6
- package/dist/src/tasks/generate-task.d.ts.map +1 -1
- package/dist/src/tasks/generate-task.js +27 -26
- package/dist/src/tasks/generate-task.js.map +1 -1
- package/dist/src/tasks/print-banner.d.ts +3 -3
- package/dist/src/tasks/print-banner.d.ts.map +1 -1
- package/dist/src/tasks/print-banner.js +12 -8
- package/dist/src/tasks/print-banner.js.map +1 -1
- package/dist/src/tasks/print-generated-results.d.ts.map +1 -1
- package/dist/src/tasks/print-generated-results.js +13 -10
- package/dist/src/tasks/print-generated-results.js.map +1 -1
- package/dist/src/tasks/select-gen-target-name.d.ts +15 -0
- package/dist/src/tasks/select-gen-target-name.d.ts.map +1 -0
- package/dist/src/tasks/select-gen-target-name.js +58 -0
- package/dist/src/tasks/select-gen-target-name.js.map +1 -0
- package/dist/src/tasks/select-gen-target.d.ts +5 -0
- package/dist/src/tasks/select-gen-target.d.ts.map +1 -1
- package/dist/src/tasks/select-gen-target.js +16 -2
- package/dist/src/tasks/select-gen-target.js.map +1 -1
- package/dist/src/tasks/sync-configuration.d.ts +34 -0
- package/dist/src/tasks/sync-configuration.d.ts.map +1 -0
- package/dist/src/tasks/sync-configuration.js +116 -0
- package/dist/src/tasks/sync-configuration.js.map +1 -0
- package/dist/src/tasks/test-task.d.ts +10 -0
- package/dist/src/tasks/test-task.d.ts.map +1 -0
- package/dist/src/tasks/test-task.js +36 -0
- package/dist/src/tasks/test-task.js.map +1 -0
- package/dist/src/templates/command.js +2 -2
- package/dist/src/templates/command.js.map +1 -1
- package/dist/src/templates/service.js +1 -1
- package/dist/src/templates/service.js.map +1 -1
- package/dist/src/types/process.d.ts +2 -1
- package/dist/src/types/process.d.ts.map +1 -1
- package/dist/src/types/process.js +1 -0
- package/dist/src/types/process.js.map +1 -1
- package/dist/src/types/project.d.ts +12 -0
- package/dist/src/types/project.d.ts.map +1 -0
- package/dist/src/types/project.js +3 -0
- package/dist/src/types/project.js.map +1 -0
- package/dist/src/types/state.d.ts +5 -1
- package/dist/src/types/state.d.ts.map +1 -1
- package/dist/src/types/state.js +1 -0
- package/dist/src/types/state.js.map +1 -1
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +16 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +8 -3
- package/src/commands/gen.ts +4 -0
- package/src/commands/new.ts +10 -0
- package/src/index.ts +7 -0
- package/src/services/cache-service.ts +50 -0
- package/src/services/file-service.ts +18 -1
- package/src/services/log-service.ts +6 -1
- package/src/services/project-service.ts +2 -2
- package/src/services/prompt-service.ts +60 -0
- package/src/services/spawn-service.ts +15 -1
- package/src/services/util-service.ts +5 -0
- package/src/tasks/check-env.ts +10 -2
- package/src/tasks/create-new-project.ts +66 -0
- package/src/tasks/generate-command.ts +84 -31
- package/src/tasks/generate-service.ts +24 -28
- package/src/tasks/generate-task.ts +24 -28
- package/src/tasks/print-banner.ts +10 -6
- package/src/tasks/print-generated-results.ts +15 -15
- package/src/tasks/select-gen-target-name.ts +44 -0
- package/src/tasks/select-gen-target.ts +16 -1
- package/src/tasks/sync-configuration.ts +121 -0
- package/src/tasks/test-task.ts +20 -0
- package/src/templates/command.ts +2 -2
- package/src/templates/service.ts +1 -1
- package/src/types/process.ts +1 -0
- package/src/types/project.ts +12 -0
- package/src/types/state.ts +7 -1
- package/tests/index.spec.ts +8 -0
- package/tests/setup.ts +1 -0
- package/tsconfig.json +1 -1
- 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 =
|
|
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 =
|
|
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,
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
89
|
+
* @param taskMappings the map to add picked tasks to import for the command
|
|
73
90
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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.
|
|
122
|
+
__metadata("design:paramtypes", [file_service_1.FileService,
|
|
87
123
|
util_service_1.UtilService,
|
|
88
|
-
project_service_1.
|
|
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":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mDAA+C;AAC/C,uCAA0C;AAC1C,0CAAyD;AACzD,
|
|
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
|
-
*
|
|
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
|
-
|
|
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;
|
|
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 =
|
|
19
|
+
const project_service_1 = require("../services/project-service");
|
|
20
20
|
const util_service_1 = require("../services/util-service");
|
|
21
|
-
const file_service_1 =
|
|
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 {
|
|
45
|
-
|
|
46
|
-
|
|
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.
|
|
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
|
-
*
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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.
|
|
84
|
+
__metadata("design:paramtypes", [project_service_1.ProjectService,
|
|
84
85
|
util_service_1.UtilService,
|
|
85
|
-
file_service_1.
|
|
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":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mDAA+C;AAC/C,uCAA0C;AAC1C,0CAA+C;AAC/C,
|
|
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
|
-
*
|
|
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
|
-
|
|
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;
|
|
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 =
|
|
23
|
-
const project_service_1 =
|
|
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
|
|
48
|
+
const { utilService } = this;
|
|
44
49
|
this.logger.info(chalk_1.default.blueBright("Generating Task"));
|
|
45
|
-
|
|
46
|
-
|
|
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.
|
|
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
|
-
*
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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.
|
|
85
|
-
project_service_1.
|
|
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":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mDAA+C;AAC/C,uCAA0C;AAC1C,0CAA+C;AAC/C,4CAAoD;AACpD,4CAA2C;AAC3C,2DAAuD;AACvD,
|
|
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
|
|
7
|
-
private
|
|
6
|
+
private bannnerService;
|
|
7
|
+
private utilService;
|
|
8
8
|
loggerName: string;
|
|
9
|
-
constructor(
|
|
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,
|
|
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
|
-
|
|
22
|
-
|
|
22
|
+
bannnerService;
|
|
23
|
+
utilService;
|
|
23
24
|
loggerName = "Print Banner";
|
|
24
|
-
constructor(
|
|
25
|
+
constructor(bannnerService, utilService) {
|
|
25
26
|
super();
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
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.
|
|
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.
|
|
39
|
+
console.log(chalk_1.default.blueBright(await this.bannnerService.toBanner(this.utilService.getAppName(), font)));
|
|
36
40
|
this.setData({
|
|
37
|
-
banner: { font: font || this.
|
|
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;
|
|
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;
|
|
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
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|