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