task-script-support-cli 0.3.0 → 0.3.2
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/src/commands/verify.ts +3 -2
- package/assets/yargs-template/task-runner/src/services/banner-service.ts +13 -9
- package/assets/yargs-template/task-runner/src/tasks/banner/print-banner.ts +38 -0
- package/assets/yargs-template/task-runner/src/tasks/banner/resolve-banner-font.ts +70 -0
- package/assets/yargs-template/task-runner/src/types/state.ts +4 -0
- package/{dist/assets/yargs-template/task-runner/src/wrappers → assets/yargs-template/task-runner/src/wrappers/electives}/concurrent-task-group.ts +4 -4
- package/assets/yargs-template/task-runner/src/wrappers/electives/resolver-task.ts +87 -0
- package/assets/yargs-template/task-runner/src/wrappers/{sequential-task-group.ts → electives/sequential-task-group.ts} +4 -4
- package/assets/yargs-template/task-runner/tests/commands/verify.test.ts +14 -21
- package/dist/assets/yargs-template/task-runner/src/commands/verify.ts +3 -2
- package/dist/assets/yargs-template/task-runner/src/services/banner-service.ts +13 -9
- package/dist/assets/yargs-template/task-runner/src/tasks/banner/print-banner.ts +38 -0
- package/dist/assets/yargs-template/task-runner/src/tasks/banner/resolve-banner-font.ts +70 -0
- package/dist/assets/yargs-template/task-runner/src/types/state.ts +4 -0
- package/{assets/yargs-template/task-runner/src/wrappers → dist/assets/yargs-template/task-runner/src/wrappers/electives}/concurrent-task-group.ts +4 -4
- package/dist/assets/yargs-template/task-runner/src/wrappers/electives/resolver-task.ts +87 -0
- package/dist/assets/yargs-template/task-runner/src/wrappers/{sequential-task-group.ts → electives/sequential-task-group.ts} +4 -4
- package/dist/assets/yargs-template/task-runner/tests/commands/verify.test.ts +14 -21
- package/dist/package.json +1 -1
- 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 +2 -0
- package/dist/src/commands/gen.js.map +1 -1
- package/dist/src/services/project-service.d.ts +21 -0
- package/dist/src/services/project-service.d.ts.map +1 -1
- package/dist/src/services/project-service.js +41 -0
- package/dist/src/services/project-service.js.map +1 -1
- package/dist/src/services/templater-service.d.ts +1 -0
- package/dist/src/services/templater-service.d.ts.map +1 -1
- package/dist/src/services/templater-service.js +9 -3
- package/dist/src/services/templater-service.js.map +1 -1
- package/dist/src/tasks/generate/generate-command.d.ts +10 -3
- package/dist/src/tasks/generate/generate-command.d.ts.map +1 -1
- package/dist/src/tasks/generate/generate-command.js +27 -11
- package/dist/src/tasks/generate/generate-command.js.map +1 -1
- package/dist/src/tasks/generate/generate-service.d.ts +10 -3
- package/dist/src/tasks/generate/generate-service.d.ts.map +1 -1
- package/dist/src/tasks/generate/generate-service.js +26 -12
- package/dist/src/tasks/generate/generate-service.js.map +1 -1
- package/dist/src/tasks/generate/generate-task.d.ts +10 -3
- package/dist/src/tasks/generate/generate-task.d.ts.map +1 -1
- package/dist/src/tasks/generate/generate-task.js +27 -13
- package/dist/src/tasks/generate/generate-task.js.map +1 -1
- package/dist/src/tasks/generate/project-context-guard.d.ts +1 -1
- package/dist/src/tasks/generate/project-context-guard.js +1 -1
- package/dist/src/tasks/generate/resolve-injectables.d.ts +56 -0
- package/dist/src/tasks/generate/resolve-injectables.d.ts.map +1 -0
- package/dist/src/tasks/generate/resolve-injectables.js +134 -0
- package/dist/src/tasks/generate/resolve-injectables.js.map +1 -0
- package/dist/src/tasks/generate/select-gen-target-name.js +4 -4
- package/dist/src/tasks/generate/select-gen-target-name.js.map +1 -1
- package/dist/src/tasks/generate/select-gen-target.d.ts +1 -1
- package/dist/src/tasks/generate/select-gen-target.js +2 -2
- package/dist/src/tasks/generate/select-gen-target.js.map +1 -1
- package/dist/src/tasks/stdout/print-generated-results.js +2 -2
- package/dist/src/tasks/stdout/print-generated-results.js.map +1 -1
- package/dist/src/tasks/sync-configuration.d.ts +1 -1
- package/dist/src/tasks/sync-configuration.js +6 -6
- package/dist/src/tasks/sync-configuration.js.map +1 -1
- package/dist/src/types/state.d.ts +7 -3
- package/dist/src/types/state.d.ts.map +1 -1
- package/dist/src/types/state.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/gen.ts +2 -0
- package/src/services/project-service.ts +54 -0
- package/src/services/templater-service.ts +15 -3
- package/src/tasks/generate/generate-command.ts +21 -11
- package/src/tasks/generate/generate-service.ts +20 -11
- package/src/tasks/generate/generate-task.ts +21 -12
- package/src/tasks/generate/project-context-guard.ts +1 -1
- package/src/tasks/generate/resolve-injectables.ts +154 -0
- package/src/tasks/generate/select-gen-target-name.ts +4 -4
- package/src/tasks/generate/select-gen-target.ts +2 -2
- package/src/tasks/stdout/print-generated-results.ts +2 -2
- package/src/tasks/sync-configuration.ts +6 -6
- package/src/types/state.ts +9 -3
- package/assets/yargs-template/task-runner/src/tasks/print-banner.ts +0 -73
- package/dist/assets/yargs-template/task-runner/src/tasks/print-banner.ts +0 -73
- package/dist/src/wrappers/gen-app-task.d.ts +0 -50
- package/dist/src/wrappers/gen-app-task.d.ts.map +0 -1
- package/dist/src/wrappers/gen-app-task.js +0 -124
- package/dist/src/wrappers/gen-app-task.js.map +0 -1
- package/src/wrappers/gen-app-task.ts +0 -150
|
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
8
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
13
|
};
|
|
@@ -16,34 +19,42 @@ const task_1 = require("../../templates/task");
|
|
|
16
19
|
const format_1 = require("../../types/format");
|
|
17
20
|
const project_service_1 = require("../../services/project-service");
|
|
18
21
|
const path_1 = __importDefault(require("path"));
|
|
19
|
-
const
|
|
22
|
+
const app_task_1 = require("../../wrappers/app-task");
|
|
23
|
+
const file_service_1 = require("../../services/file-service");
|
|
24
|
+
const util_service_1 = require("../../services/util-service");
|
|
20
25
|
/**
|
|
21
26
|
* Generates a new task class
|
|
22
27
|
*/
|
|
23
|
-
let GenerateTask = class GenerateTask extends
|
|
28
|
+
let GenerateTask = class GenerateTask extends app_task_1.AppTask {
|
|
29
|
+
fileService;
|
|
30
|
+
projectService;
|
|
31
|
+
utilService;
|
|
24
32
|
loggerName = "Generate Task";
|
|
33
|
+
constructor(fileService, projectService, utilService) {
|
|
34
|
+
super();
|
|
35
|
+
this.fileService = fileService;
|
|
36
|
+
this.projectService = projectService;
|
|
37
|
+
this.utilService = utilService;
|
|
38
|
+
}
|
|
25
39
|
/**
|
|
26
40
|
* Generates a new task class file.
|
|
27
41
|
*
|
|
28
42
|
* @returns updated state with outputDestination set to a generated result path.
|
|
29
43
|
*/
|
|
30
44
|
async run() {
|
|
31
|
-
if (this.state.data.
|
|
45
|
+
if (this.state.data.genData.targetType !== state_1.GenTargetType.Task) {
|
|
32
46
|
return;
|
|
33
47
|
}
|
|
34
48
|
const { utilService } = this;
|
|
35
49
|
this.logger.info(chalk_1.default.blueBright("Generating Task"));
|
|
36
|
-
const targetName = this.state.data.
|
|
50
|
+
const targetName = this.state.data.genData.targetName;
|
|
37
51
|
const targetDirectory = this.state.data.project.taskDestination;
|
|
38
52
|
// detect case
|
|
39
53
|
const convention = this.projectService.getConvention();
|
|
40
54
|
this.logger.debug(`Using convention: ${chalk_1.default.magentaBright(convention)}`);
|
|
41
55
|
const className = utilService.titleizedToCase(targetName, format_1.CaseType.PASCAL_CASE);
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
await this.addServicesToMap(injectableMappings, targetDirectory);
|
|
45
|
-
}
|
|
46
|
-
const rendered = (0, task_1.getTaskTemplate)(className, injectableMappings);
|
|
56
|
+
const injectablesMap = this.projectService.getImportMap(this.state.data.genData);
|
|
57
|
+
const rendered = (0, task_1.getTaskTemplate)(className, injectablesMap);
|
|
47
58
|
const filename = `${utilService.titleizedToCase(targetName, convention)}${project_service_1.ProjectService.defaults.extention}`;
|
|
48
59
|
const destination = path_1.default.join(targetDirectory, filename);
|
|
49
60
|
// write contents
|
|
@@ -52,13 +63,13 @@ let GenerateTask = class GenerateTask extends gen_app_task_1.default {
|
|
|
52
63
|
}
|
|
53
64
|
/**
|
|
54
65
|
* Checks state for required fields. Executes prior to run method.
|
|
55
|
-
* Skips validation if
|
|
66
|
+
* Skips validation if genData.targetType is not set to task.
|
|
56
67
|
*/
|
|
57
68
|
async preRun() {
|
|
58
|
-
if (this.state.data.
|
|
69
|
+
if (this.state.data.genData.targetType !== state_1.GenTargetType.Task) {
|
|
59
70
|
return; // no validation on no-op flow
|
|
60
71
|
}
|
|
61
|
-
if (!this.state.data.
|
|
72
|
+
if (!this.state.data.genData.targetName) {
|
|
62
73
|
throw new Error("Unable to determine targetName");
|
|
63
74
|
}
|
|
64
75
|
if (!this.state.data.project) {
|
|
@@ -70,7 +81,10 @@ let GenerateTask = class GenerateTask extends gen_app_task_1.default {
|
|
|
70
81
|
}
|
|
71
82
|
};
|
|
72
83
|
GenerateTask = __decorate([
|
|
73
|
-
(0, tsyringe_1.autoInjectable)()
|
|
84
|
+
(0, tsyringe_1.autoInjectable)(),
|
|
85
|
+
__metadata("design:paramtypes", [file_service_1.FileService,
|
|
86
|
+
project_service_1.ProjectService,
|
|
87
|
+
util_service_1.UtilService])
|
|
74
88
|
], GenerateTask);
|
|
75
89
|
exports.default = GenerateTask;
|
|
76
90
|
//# sourceMappingURL=generate-task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-task.js","sourceRoot":"./src/","sources":["src/tasks/generate/generate-task.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-task.js","sourceRoot":"./src/","sources":["src/tasks/generate/generate-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileService } from "../../services/file-service";
|
|
2
2
|
import { AppTask } from "../../wrappers/app-task";
|
|
3
3
|
/**
|
|
4
|
-
* Checks
|
|
4
|
+
* Checks to see if we are in the context of a task-script-support
|
|
5
5
|
* project or not and fails the process with a friendly error message.
|
|
6
6
|
*/
|
|
7
7
|
export default class ProjectContextGuard extends AppTask {
|
|
@@ -17,7 +17,7 @@ const file_service_1 = require("../../services/file-service");
|
|
|
17
17
|
const app_task_1 = require("../../wrappers/app-task");
|
|
18
18
|
const tsyringe_1 = require("tsyringe");
|
|
19
19
|
/**
|
|
20
|
-
* Checks
|
|
20
|
+
* Checks to see if we are in the context of a task-script-support
|
|
21
21
|
* project or not and fails the process with a friendly error message.
|
|
22
22
|
*/
|
|
23
23
|
let ProjectContextGuard = class ProjectContextGuard extends app_task_1.AppTask {
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AppTask } from "../../wrappers/app-task";
|
|
2
|
+
import { FileService } from "../../services/file-service";
|
|
3
|
+
import { ProjectService } from "../../services/project-service";
|
|
4
|
+
import { PromptService } from "../../services/prompt-service";
|
|
5
|
+
import { UtilService } from "../../services/util-service";
|
|
6
|
+
import { ProjectImport } from "../../types/project";
|
|
7
|
+
import { AppState } from "../../types/state";
|
|
8
|
+
/**
|
|
9
|
+
* ResolveInjectables
|
|
10
|
+
*/
|
|
11
|
+
export default class ResolveInjectables extends AppTask {
|
|
12
|
+
private fileService;
|
|
13
|
+
private projectService;
|
|
14
|
+
private promptService;
|
|
15
|
+
private utilService;
|
|
16
|
+
loggerName: string;
|
|
17
|
+
constructor(fileService: FileService, projectService: ProjectService, promptService: PromptService, utilService: UtilService);
|
|
18
|
+
/**
|
|
19
|
+
* Prompts to select tasks or services to import into the file being generated.
|
|
20
|
+
*
|
|
21
|
+
* @param state the current state of the application. Expects genData to be
|
|
22
|
+
* populated with targetType. Expects the project to be populated with
|
|
23
|
+
* serviceDestination, taskDestination, and commandDestination.
|
|
24
|
+
* @returns updated state with genData imports field set.
|
|
25
|
+
*/
|
|
26
|
+
run(state: AppState): Promise<Partial<AppState>>;
|
|
27
|
+
/**
|
|
28
|
+
* Prompt to select tasks to use in the command being generated.
|
|
29
|
+
*
|
|
30
|
+
* @returns the selected task imports
|
|
31
|
+
*/
|
|
32
|
+
getTaskImports(): Promise<ProjectImport[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Prompt to select services to use in the command being generated.
|
|
35
|
+
*
|
|
36
|
+
* @param sourcePath the path to the parent directory of the source file being
|
|
37
|
+
* generated to resolve relative paths for imports
|
|
38
|
+
* @returns the selected service imports
|
|
39
|
+
*/
|
|
40
|
+
getServiceImports(sourcePath: string): Promise<ProjectImport[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Prompt to select imports to use in the class being generated.
|
|
43
|
+
*
|
|
44
|
+
* @param messagePrompt the prompt message to display
|
|
45
|
+
* @param filePaths the file paths to select from
|
|
46
|
+
* @returns the selected file paths
|
|
47
|
+
*/
|
|
48
|
+
private promptForImports;
|
|
49
|
+
/**
|
|
50
|
+
* Determines if the task should skip the prompt for injectables.
|
|
51
|
+
*
|
|
52
|
+
* @returns true if the task should be skipped.
|
|
53
|
+
*/
|
|
54
|
+
private shouldSkip;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=resolve-injectables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-injectables.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate/resolve-injectables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,OAAO;IAInD,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IANrB,UAAU,SAAwB;gBAGxB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW;IAKlC;;;;;;;OAOG;IACG,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IA2BtD;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAsBhD;;;;;;OAMG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAsBrE;;;;;;OAMG;YACW,gBAAgB;IAkB9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const app_task_1 = require("../../wrappers/app-task");
|
|
13
|
+
const tsyringe_1 = require("tsyringe");
|
|
14
|
+
const file_service_1 = require("../../services/file-service");
|
|
15
|
+
const project_service_1 = require("../../services/project-service");
|
|
16
|
+
const prompt_service_1 = require("../../services/prompt-service");
|
|
17
|
+
const util_service_1 = require("../../services/util-service");
|
|
18
|
+
const format_1 = require("../../types/format");
|
|
19
|
+
const state_1 = require("../../types/state");
|
|
20
|
+
/**
|
|
21
|
+
* ResolveInjectables
|
|
22
|
+
*/
|
|
23
|
+
let ResolveInjectables = class ResolveInjectables extends app_task_1.AppTask {
|
|
24
|
+
fileService;
|
|
25
|
+
projectService;
|
|
26
|
+
promptService;
|
|
27
|
+
utilService;
|
|
28
|
+
loggerName = "ResolveInjectables";
|
|
29
|
+
constructor(fileService, projectService, promptService, utilService) {
|
|
30
|
+
super();
|
|
31
|
+
this.fileService = fileService;
|
|
32
|
+
this.projectService = projectService;
|
|
33
|
+
this.promptService = promptService;
|
|
34
|
+
this.utilService = utilService;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Prompts to select tasks or services to import into the file being generated.
|
|
38
|
+
*
|
|
39
|
+
* @param state the current state of the application. Expects genData to be
|
|
40
|
+
* populated with targetType. Expects the project to be populated with
|
|
41
|
+
* serviceDestination, taskDestination, and commandDestination.
|
|
42
|
+
* @returns updated state with genData imports field set.
|
|
43
|
+
*/
|
|
44
|
+
async run(state) {
|
|
45
|
+
if (this.shouldSkip())
|
|
46
|
+
return { data: { genData: { imports: [] } } };
|
|
47
|
+
const { genData, project } = state.data;
|
|
48
|
+
// determine the directory we would need to import into
|
|
49
|
+
const sourceDirectory = genData.targetType === state_1.GenTargetType.Service
|
|
50
|
+
? project.serviceDestination
|
|
51
|
+
: project.taskDestination;
|
|
52
|
+
let injectableImports;
|
|
53
|
+
switch (genData.targetType) {
|
|
54
|
+
case state_1.GenTargetType.Command:
|
|
55
|
+
injectableImports = await this.getTaskImports();
|
|
56
|
+
break;
|
|
57
|
+
case state_1.GenTargetType.Service:
|
|
58
|
+
case state_1.GenTargetType.Task:
|
|
59
|
+
injectableImports = await this.getServiceImports(sourceDirectory);
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
injectableImports = [];
|
|
63
|
+
}
|
|
64
|
+
return { data: { genData: { imports: injectableImports } } };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Prompt to select tasks to use in the command being generated.
|
|
68
|
+
*
|
|
69
|
+
* @returns the selected task imports
|
|
70
|
+
*/
|
|
71
|
+
async getTaskImports() {
|
|
72
|
+
if (!this.state.data.project?.taskDestination) {
|
|
73
|
+
throw new Error("Unable to resolve task destination");
|
|
74
|
+
}
|
|
75
|
+
const taskFiles = this.fileService.getFilesInDir(this.state.data.project.taskDestination);
|
|
76
|
+
this.logger.debug(`Found ${taskFiles.length} task files`);
|
|
77
|
+
const pickedTasks = await this.promptForImports("Include Tasks", taskFiles);
|
|
78
|
+
this.logger.debug(`Selected ${pickedTasks.length} tasks`);
|
|
79
|
+
// add them to the map
|
|
80
|
+
return !pickedTasks.length
|
|
81
|
+
? []
|
|
82
|
+
: this.projectService.formalizeImports(pickedTasks, this.state.data.project.commandDestination);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Prompt to select services to use in the command being generated.
|
|
86
|
+
*
|
|
87
|
+
* @param sourcePath the path to the parent directory of the source file being
|
|
88
|
+
* generated to resolve relative paths for imports
|
|
89
|
+
* @returns the selected service imports
|
|
90
|
+
*/
|
|
91
|
+
async getServiceImports(sourcePath) {
|
|
92
|
+
if (!this.state.data.project?.serviceDestination) {
|
|
93
|
+
throw new Error("Unable to resolve service destination");
|
|
94
|
+
}
|
|
95
|
+
const serviceFiles = this.fileService.getFilesInDir(this.state.data.project.serviceDestination);
|
|
96
|
+
this.logger.debug(`Found ${serviceFiles.length} service files`);
|
|
97
|
+
const pickedServices = await this.promptForImports("Include Services", serviceFiles);
|
|
98
|
+
this.logger.debug(`Selected ${pickedServices.length} services`);
|
|
99
|
+
return !pickedServices.length
|
|
100
|
+
? []
|
|
101
|
+
: this.projectService.formalizeImports(pickedServices, sourcePath);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Prompt to select imports to use in the class being generated.
|
|
105
|
+
*
|
|
106
|
+
* @param messagePrompt the prompt message to display
|
|
107
|
+
* @param filePaths the file paths to select from
|
|
108
|
+
* @returns the selected file paths
|
|
109
|
+
*/
|
|
110
|
+
async promptForImports(messagePrompt, filePaths) {
|
|
111
|
+
return await this.promptService.pickMultiple(messagePrompt, filePaths.map((filePath) => ({
|
|
112
|
+
name: this.utilService.titleizedToCase(this.utilService.titleizeAll(this.fileService.getFilenameNoExt(filePath)), format_1.CaseType.PASCAL_CASE),
|
|
113
|
+
value: filePath,
|
|
114
|
+
})));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Determines if the task should skip the prompt for injectables.
|
|
118
|
+
*
|
|
119
|
+
* @returns true if the task should be skipped.
|
|
120
|
+
*/
|
|
121
|
+
shouldSkip() {
|
|
122
|
+
return (!this.argService.hasFlag("inject") &&
|
|
123
|
+
this.state.data.genData?.targetType !== state_1.GenTargetType.Command);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
ResolveInjectables = __decorate([
|
|
127
|
+
(0, tsyringe_1.autoInjectable)(),
|
|
128
|
+
__metadata("design:paramtypes", [file_service_1.FileService,
|
|
129
|
+
project_service_1.ProjectService,
|
|
130
|
+
prompt_service_1.PromptService,
|
|
131
|
+
util_service_1.UtilService])
|
|
132
|
+
], ResolveInjectables);
|
|
133
|
+
exports.default = ResolveInjectables;
|
|
134
|
+
//# sourceMappingURL=resolve-injectables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-injectables.js","sourceRoot":"./src/","sources":["src/tasks/generate/resolve-injectables.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,18 +35,18 @@ let SelectGenTargetName = class SelectGenTargetName extends app_task_1.AppTask {
|
|
|
35
35
|
let targetName = this.argService.getTargetName();
|
|
36
36
|
if (!targetName) {
|
|
37
37
|
targetName =
|
|
38
|
-
(await this.promptService.getInput(`Enter Name for ${chalk_1.default.blueBright(this.utilService.titleize(this.state.data.
|
|
38
|
+
(await this.promptService.getInput(`Enter Name for ${chalk_1.default.blueBright(this.utilService.titleize(this.state.data.genData.targetType))}`)) || project_service_1.ProjectService.defaults.targetName;
|
|
39
39
|
}
|
|
40
40
|
if (!targetName) {
|
|
41
41
|
throw new Error("Unable to resolve targetName");
|
|
42
42
|
}
|
|
43
43
|
this.logger.debug(`Name selected: ${chalk_1.default.magentaBright(targetName)}`);
|
|
44
44
|
targetName = this.utilService.titleizeAll(targetName);
|
|
45
|
-
this.setData({
|
|
45
|
+
this.setData({ genData: { targetName: targetName } });
|
|
46
46
|
}
|
|
47
47
|
async preRun() {
|
|
48
|
-
if (!this.state.data.
|
|
49
|
-
throw new Error("Unable to determine
|
|
48
|
+
if (!this.state.data.genData?.targetType) {
|
|
49
|
+
throw new Error("Unable to determine genData.targetType");
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-gen-target-name.js","sourceRoot":"./src/","sources":["src/tasks/generate/select-gen-target-name.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAkD;AAClD,uCAA0C;AAC1C,kEAA8D;AAC9D,oEAAgE;AAChE,8DAA0D;AAE1D;;GAEG;AAEY,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kBAAO;IAG5C;IACA;IAHV,UAAU,GAAG,qBAAqB,CAAC;IACnC,YACU,aAA4B,EAC5B,WAAwB;QAEhC,KAAK,EAAE,CAAC;QAHA,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;IAGlC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAE3D,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU;gBACR,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,kBAAkB,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"select-gen-target-name.js","sourceRoot":"./src/","sources":["src/tasks/generate/select-gen-target-name.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAkD;AAClD,uCAA0C;AAC1C,kEAA8D;AAC9D,oEAAgE;AAChE,8DAA0D;AAE1D;;GAEG;AAEY,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kBAAO;IAG5C;IACA;IAHV,UAAU,GAAG,qBAAqB,CAAC;IACnC,YACU,aAA4B,EAC5B,WAAwB;QAEhC,KAAK,EAAE,CAAC;QAHA,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;IAGlC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAE3D,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU;gBACR,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,kBAAkB,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAQ,CAAC,UAAW,CAAC,CAAC,EAAE,CACtG,CAAC,IAAI,gCAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,eAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF,CAAA;AAhCoB,mBAAmB;IADvC,IAAA,yBAAc,GAAE;qCAIU,8BAAa;QACf,0BAAW;GAJf,mBAAmB,CAgCvC;kBAhCoB,mBAAmB"}
|
|
@@ -2,7 +2,7 @@ import { AppTask } from "../../wrappers/app-task";
|
|
|
2
2
|
import { GenTargetType } from "../../types/state";
|
|
3
3
|
import { PromptService } from "../../services/prompt-service";
|
|
4
4
|
/**
|
|
5
|
-
* Sets the
|
|
5
|
+
* Sets the genData.targetType based on input
|
|
6
6
|
*/
|
|
7
7
|
export default class SelectGenTargetType extends AppTask {
|
|
8
8
|
private promptService;
|
|
@@ -19,7 +19,7 @@ const state_1 = require("../../types/state");
|
|
|
19
19
|
const prompt_service_1 = require("../../services/prompt-service");
|
|
20
20
|
const process_1 = require("../../types/process");
|
|
21
21
|
/**
|
|
22
|
-
* Sets the
|
|
22
|
+
* Sets the genData.targetType based on input
|
|
23
23
|
*/
|
|
24
24
|
let SelectGenTargetType = class SelectGenTargetType extends app_task_1.AppTask {
|
|
25
25
|
promptService;
|
|
@@ -44,7 +44,7 @@ let SelectGenTargetType = class SelectGenTargetType extends app_task_1.AppTask {
|
|
|
44
44
|
target = await this.getGenTargetInput();
|
|
45
45
|
}
|
|
46
46
|
this.logger.debug(`Target selected: ${chalk_1.default.magentaBright(target)}`);
|
|
47
|
-
this.setData({
|
|
47
|
+
this.setData({ genData: { targetType: target } });
|
|
48
48
|
}
|
|
49
49
|
async getGenTargetInput() {
|
|
50
50
|
const targetType = await this.promptService.select(`Select a type of ${chalk_1.default.blueBright("Resource")} to create`, [state_1.GenTargetType.Command, state_1.GenTargetType.Service, state_1.GenTargetType.Task]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-gen-target.js","sourceRoot":"./src/","sources":["src/tasks/generate/select-gen-target.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAkD;AAClD,uCAA0C;AAC1C,6CAAkD;AAClD,kEAA8D;AAC9D,iDAAiD;AAEjD;;GAEG;AAEY,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kBAAO;IAGlC;IAFpB,UAAU,GAAG,oBAAoB,CAAC;IAElC,YAAoB,aAA4B;QAC9C,KAAK,EAAE,CAAC;QADU,kBAAa,GAAb,aAAa,CAAe;IAEhD,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,MAAM,GAAkB,qBAAa,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,qBAAa,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,qBAAa,CAAC,IAAI,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,qBAAa,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,eAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"select-gen-target.js","sourceRoot":"./src/","sources":["src/tasks/generate/select-gen-target.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAkD;AAClD,uCAA0C;AAC1C,6CAAkD;AAClD,kEAA8D;AAC9D,iDAAiD;AAEjD;;GAEG;AAEY,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kBAAO;IAGlC;IAFpB,UAAU,GAAG,oBAAoB,CAAC;IAElC,YAAoB,aAA4B;QAC9C,KAAK,EAAE,CAAC;QADU,kBAAa,GAAb,aAAa,CAAe;IAEhD,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,MAAM,GAAkB,qBAAa,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,qBAAa,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,qBAAa,CAAC,IAAI,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,qBAAa,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,eAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,UAAU,GAAkB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAC/D,oBAAoB,eAAK,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAC5D,CAAC,qBAAa,CAAC,OAAO,EAAE,qBAAa,CAAC,OAAO,EAAE,qBAAa,CAAC,IAAI,CAAC,CACnE,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAA;AAjCoB,mBAAmB;IADvC,IAAA,yBAAc,GAAE;qCAIoB,8BAAa;GAH7B,mBAAmB,CAiCvC;kBAjCoB,mBAAmB"}
|
|
@@ -34,8 +34,8 @@ let PrintGeneratedResults = class PrintGeneratedResults extends app_task_1.AppTa
|
|
|
34
34
|
this.fileService = fileService;
|
|
35
35
|
}
|
|
36
36
|
async run() {
|
|
37
|
-
const genType = this.state.data.
|
|
38
|
-
? this.utilService.titleize(this.state.data.
|
|
37
|
+
const genType = this.state.data.genData?.targetType
|
|
38
|
+
? this.utilService.titleize(this.state.data.genData.targetType)
|
|
39
39
|
: "Project";
|
|
40
40
|
this.logger.info(`Generated Results for ${chalk_1.default.blueBright(genType)}`);
|
|
41
41
|
// wait for logs to flush before mixing in console.log
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print-generated-results.js","sourceRoot":"./src/","sources":["src/tasks/stdout/print-generated-results.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAkD;AAClD,uCAA0C;AAC1C,8DAA0D;AAC1D,8DAA0D;AAE1D,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC;;cAE9B,IAAI;CACjB,CAAC;AAEF;;GAEG;AAEY,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,kBAAO;IAI9C;IACA;IAJV,UAAU,GAAG,eAAe,CAAC;IAE7B,YACU,WAAwB,EACxB,WAAwB;QAEhC,KAAK,EAAE,CAAC;QAHA,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;IAGlC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"print-generated-results.js","sourceRoot":"./src/","sources":["src/tasks/stdout/print-generated-results.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAkD;AAClD,uCAA0C;AAC1C,8DAA0D;AAC1D,8DAA0D;AAE1D,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC;;cAE9B,IAAI;CACjB,CAAC;AAEF;;GAEG;AAEY,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,kBAAO;IAI9C;IACA;IAJV,UAAU,GAAG,eAAe,CAAC;IAE7B,YACU,WAAwB,EACxB,WAAwB;QAEhC,KAAK,EAAE,CAAC;QAHA,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;IAGlC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU;YACzD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAC/D,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,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;;UAEtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,QAAQ;UAE7C,OAAO,KAAK,SAAS;YACnB,CAAC,CAAC,KAAK,iBAAiB,CACpB,IAAI,CAAC,WAAW,CAAC,cAAc,CAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAkB,CACnC,CACF,IAAI;YACP,CAAC,CAAC,EACN;OACD,CAAC,CAAC;IACP,CAAC;CACF,CAAA;AArCoB,qBAAqB;IADzC,IAAA,yBAAc,GAAE;qCAKQ,0BAAW;QACX,0BAAW;GALf,qBAAqB,CAqCzC;kBArCoB,qBAAqB"}
|
|
@@ -22,7 +22,7 @@ export default class SyncConfiguration extends AppTask {
|
|
|
22
22
|
logDestination: (dest?: string) => void;
|
|
23
23
|
/**
|
|
24
24
|
* Gets the destination path for generating resources by resource type.
|
|
25
|
-
* If only one resource destination folder was found it is returned
|
|
25
|
+
* If only one resource destination folder was found, it is returned,
|
|
26
26
|
* otherwise the user is prompted to select one from the found folders.
|
|
27
27
|
*
|
|
28
28
|
* @param keyType the type of destination to resolve
|
|
@@ -47,14 +47,14 @@ let SyncConfiguration = class SyncConfiguration extends app_task_1.AppTask {
|
|
|
47
47
|
project = { ...this.state.data.project, ...cachedProject };
|
|
48
48
|
}
|
|
49
49
|
// get target destination if not cached yet
|
|
50
|
-
if (this.state.data.
|
|
51
|
-
const targetType = this.state.data.
|
|
50
|
+
if (this.state.data.genData?.targetType) {
|
|
51
|
+
const targetType = this.state.data.genData.targetType;
|
|
52
52
|
const destinationKey = `${targetType}Destination`;
|
|
53
53
|
project[destinationKey] =
|
|
54
54
|
project[destinationKey] || (await this.getDestination(targetType));
|
|
55
55
|
this.logDestination(project[destinationKey]);
|
|
56
56
|
}
|
|
57
|
-
// attempt to determine
|
|
57
|
+
// attempt to determine other config dirs without prompting
|
|
58
58
|
const isPassive = true;
|
|
59
59
|
project.commandDestination =
|
|
60
60
|
project.commandDestination ||
|
|
@@ -78,7 +78,7 @@ let SyncConfiguration = class SyncConfiguration extends app_task_1.AppTask {
|
|
|
78
78
|
logDestination = (dest = "") => this.logger.debug(`Destination: ${chalk_1.default.magentaBright(dest)}`);
|
|
79
79
|
/**
|
|
80
80
|
* Gets the destination path for generating resources by resource type.
|
|
81
|
-
* If only one resource destination folder was found it is returned
|
|
81
|
+
* If only one resource destination folder was found, it is returned,
|
|
82
82
|
* otherwise the user is prompted to select one from the found folders.
|
|
83
83
|
*
|
|
84
84
|
* @param keyType the type of destination to resolve
|
|
@@ -107,8 +107,8 @@ let SyncConfiguration = class SyncConfiguration extends app_task_1.AppTask {
|
|
|
107
107
|
if (!this.state.data.project || !this.state.data.project.rootDir) {
|
|
108
108
|
throw new Error(`Missing project rootDir! SyncConfiguration requires the CheckEnvironment task to be ran first.`);
|
|
109
109
|
}
|
|
110
|
-
if (!this.state.data.
|
|
111
|
-
throw new Error(`Missing
|
|
110
|
+
if (!this.state.data.genData?.targetType) {
|
|
111
|
+
throw new Error(`Missing genData.targetType! SyncConfiguration requires the SelectGenTarget task to be ran first.`);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-configuration.js","sourceRoot":"./src/","sources":["src/tasks/sync-configuration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAA0C;AAC1C,mDAA+C;AAC/C,+DAA2D;AAC3D,kDAA0B;AAC1B,6DAAyD;AAEzD,0CAA+C;AAC/C,2DAAuD;AACvD,2DAAuD;AAEvD;;GAEG;AAEY,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,kBAAO;IAI1C;IACA;IACA;IALV,UAAU,GAAG,oBAAoB,CAAC;IAElC,YACU,aAA4B,EAC5B,YAA0B,EAC1B,WAAwB;QAEhC,KAAK,EAAE,CAAC;QAJA,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,gBAAW,GAAX,WAAW,CAAa;IAGlC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACrD,IAAI,OAAO,GAAgC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAQ,CAAC;QAEpE,4EAA4E;QAC5E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAC1D,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC9D,CAAC;QAED,2CAA2C;QAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-configuration.js","sourceRoot":"./src/","sources":["src/tasks/sync-configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { CLIArg } from "./process";
|
|
2
2
|
import { AppState as State, TaskClass } from "task-script-support";
|
|
3
|
-
import { ProjectConfig, ProjectData } from "./project";
|
|
3
|
+
import { ProjectConfig, ProjectData, ProjectImport } from "./project";
|
|
4
4
|
export declare enum GenTargetType {
|
|
5
5
|
Command = "command",
|
|
6
6
|
Service = "service",
|
|
7
7
|
Task = "task"
|
|
8
8
|
}
|
|
9
|
+
export interface GenData {
|
|
10
|
+
readonly targetType?: GenTargetType;
|
|
11
|
+
readonly targetName?: string;
|
|
12
|
+
readonly imports?: ProjectImport[];
|
|
13
|
+
}
|
|
9
14
|
export interface AppStateData {
|
|
10
15
|
readonly banner?: {
|
|
11
16
|
readonly font?: string;
|
|
12
17
|
};
|
|
13
|
-
readonly
|
|
14
|
-
readonly genTargetName?: string;
|
|
18
|
+
readonly genData?: GenData;
|
|
15
19
|
readonly environmentValidated?: boolean;
|
|
16
20
|
readonly project?: ProjectConfig & ProjectData;
|
|
17
21
|
readonly errorMessages?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEtE,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;IAE/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,qBAAqB;;;;;;;CAOjC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":";;;AAIA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"./src/","sources":["src/types/state.ts"],"names":[],"mappings":";;;AAIA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAsBY,QAAA,qBAAqB,GAAG;IACnC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;CAC3C,CAAC"}
|
package/package.json
CHANGED
package/src/commands/gen.ts
CHANGED
|
@@ -10,6 +10,7 @@ import PrintGeneratedResults from "../tasks/stdout/print-generated-results";
|
|
|
10
10
|
import SyncConfiguration from "../tasks/sync-configuration";
|
|
11
11
|
import SelectGenTargetName from "../tasks/generate/select-gen-target-name";
|
|
12
12
|
import ProjectContextGuard from "../tasks/generate/project-context-guard";
|
|
13
|
+
import ResolveInjectables from "../tasks/generate/resolve-injectables";
|
|
13
14
|
|
|
14
15
|
@singleton()
|
|
15
16
|
export class GenCommand extends Command {
|
|
@@ -20,6 +21,7 @@ export class GenCommand extends Command {
|
|
|
20
21
|
SelectGenTarget,
|
|
21
22
|
SyncConfiguration,
|
|
22
23
|
SelectGenTargetName,
|
|
24
|
+
ResolveInjectables,
|
|
23
25
|
[GenerateCommand, GenerateService, GenerateTask],
|
|
24
26
|
PrintGeneratedResults,
|
|
25
27
|
];
|
|
@@ -2,6 +2,8 @@ import { autoInjectable } from "tsyringe";
|
|
|
2
2
|
import { FileService } from "./file-service";
|
|
3
3
|
import { CaseType } from "../types/format";
|
|
4
4
|
import { UtilService } from "./util-service";
|
|
5
|
+
import { GenData } from "../types/state";
|
|
6
|
+
import { ProjectImport } from "../types/project";
|
|
5
7
|
|
|
6
8
|
@autoInjectable()
|
|
7
9
|
export class ProjectService {
|
|
@@ -17,6 +19,42 @@ export class ProjectService {
|
|
|
17
19
|
private utilService: UtilService,
|
|
18
20
|
) {}
|
|
19
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Formalize the selected imports into a format that can be used in the source code being generated.
|
|
24
|
+
*
|
|
25
|
+
* 1. Generate a PascalCased import name from the filename
|
|
26
|
+
* 2. Convert to a relative path
|
|
27
|
+
* 3. Remove the file extension for TypeScript import
|
|
28
|
+
*
|
|
29
|
+
* @param selectedPaths the selected file paths to formalize
|
|
30
|
+
* @param relativeSource the path to the source file being generated to resolve relative paths
|
|
31
|
+
* @returns the formalized ProjectImport array ({ importClassName, importPath })
|
|
32
|
+
*/
|
|
33
|
+
formalizeImports(
|
|
34
|
+
selectedPaths: string[],
|
|
35
|
+
relativeSource: string,
|
|
36
|
+
): ProjectImport[] {
|
|
37
|
+
if (!selectedPaths?.length) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const formalizedPaths: ProjectImport[] = [];
|
|
41
|
+
for (const fullPath of selectedPaths) {
|
|
42
|
+
const filename = this.fileService.getFilenameNoExt(fullPath);
|
|
43
|
+
const importClassName = this.utilService.titleizedToCase(
|
|
44
|
+
this.utilService.titleizeAll(filename),
|
|
45
|
+
CaseType.PASCAL_CASE,
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
formalizedPaths.push({
|
|
49
|
+
importClassName,
|
|
50
|
+
importPath: this.fileService
|
|
51
|
+
.toRelativePath(relativeSource, fullPath)
|
|
52
|
+
.replace(ProjectService.defaults.extention, ""),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return formalizedPaths;
|
|
56
|
+
}
|
|
57
|
+
|
|
20
58
|
/**
|
|
21
59
|
* Get all task files found in the project
|
|
22
60
|
*
|
|
@@ -46,6 +84,22 @@ export class ProjectService {
|
|
|
46
84
|
];
|
|
47
85
|
}
|
|
48
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Returns a map of import class names to import paths.
|
|
89
|
+
*
|
|
90
|
+
* @param genData the GenData object containing the ProjectImport objects to map
|
|
91
|
+
* @returns a Map of import class names to relative import paths
|
|
92
|
+
*/
|
|
93
|
+
getImportMap(genData: GenData) {
|
|
94
|
+
const imports = genData.imports || [];
|
|
95
|
+
return new Map<string, string>(
|
|
96
|
+
imports.map((imp: ProjectImport) => [
|
|
97
|
+
imp.importClassName,
|
|
98
|
+
imp.importPath,
|
|
99
|
+
]),
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
49
103
|
/**
|
|
50
104
|
* Looks for a naming convention on the given filename array. Returns
|
|
51
105
|
* the first found convention or the default one if it can't be detected.
|