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,42 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { describe, it, expect, vi } from "vitest";
|
|
3
|
+
import PrintBanner from "../../src/tasks/print-banner";
|
|
4
|
+
import CheckEnv from "../../src/tasks/check-env";
|
|
5
|
+
import { container } from "tsyringe";
|
|
6
|
+
import { CommandService } from "task-script-support";
|
|
7
|
+
import { AppStateData, CLIArgs } from "../../src/types/state";
|
|
8
|
+
|
|
9
|
+
// Mock the tasks and their run methods
|
|
10
|
+
vi.mock("../../src/tasks/print-banner", () => {
|
|
11
|
+
const PrintBannerMock = vi.fn();
|
|
12
|
+
PrintBannerMock.prototype.run = vi.fn();
|
|
13
|
+
return { default: PrintBannerMock };
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
vi.mock("../../src/tasks/check-env", () => {
|
|
17
|
+
const CheckEnvMock = vi.fn();
|
|
18
|
+
CheckEnvMock.prototype.run = vi.fn();
|
|
19
|
+
return { default: CheckEnvMock };
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
describe("verify command", () => {
|
|
23
|
+
it("should run PrintBanner and then CheckEnv", async () => {
|
|
24
|
+
const tasks = [PrintBanner, CheckEnv];
|
|
25
|
+
container.register("Args", { useValue: [] });
|
|
26
|
+
|
|
27
|
+
// when
|
|
28
|
+
await new CommandService<AppStateData, CLIArgs>().runTasks(
|
|
29
|
+
tasks,
|
|
30
|
+
{} as CLIArgs,
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
expect(PrintBanner).toHaveBeenCalled();
|
|
34
|
+
expect(CheckEnv).toHaveBeenCalled();
|
|
35
|
+
|
|
36
|
+
const printBannerInstance = (PrintBanner as any).mock.instances[0];
|
|
37
|
+
const checkEnvInstance = (CheckEnv as any).mock.instances[0];
|
|
38
|
+
|
|
39
|
+
expect(printBannerInstance.run).toHaveBeenCalled();
|
|
40
|
+
expect(checkEnvInstance.run).toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
3
|
+
import { SpawnService } from "../../src/services/spawn-service";
|
|
4
|
+
import childProcess from "node:child_process";
|
|
5
|
+
import { fail } from "node:assert";
|
|
6
|
+
|
|
7
|
+
const hoisted = vi.hoisted(() => {
|
|
8
|
+
return {
|
|
9
|
+
spawn: vi.fn(),
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
vi.mock("node:child_process", async (importOriginal) => {
|
|
14
|
+
const mod = await importOriginal<typeof import("node:child_process")>();
|
|
15
|
+
return {
|
|
16
|
+
...mod,
|
|
17
|
+
default: {
|
|
18
|
+
...mod,
|
|
19
|
+
execSync: vi.fn(),
|
|
20
|
+
exec: vi.fn(),
|
|
21
|
+
},
|
|
22
|
+
spawn: hoisted.spawn,
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe("SpawnService", () => {
|
|
27
|
+
let spawnService: SpawnService;
|
|
28
|
+
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
spawnService = new SpawnService();
|
|
31
|
+
vi.resetAllMocks();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
describe("execSync", () => {
|
|
35
|
+
it("should call execSync with the correct command", () => {
|
|
36
|
+
const command = "ls -la";
|
|
37
|
+
(childProcess.execSync as any).mockReturnValue("output");
|
|
38
|
+
const result = spawnService.execSync(command);
|
|
39
|
+
expect(childProcess.execSync).toHaveBeenCalledWith(command);
|
|
40
|
+
expect(result).toBe("output");
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("should throw an error if execSync throws", () => {
|
|
44
|
+
const command = "invalid command";
|
|
45
|
+
(childProcess.execSync as any).mockImplementation(() => {
|
|
46
|
+
throw new Error("error");
|
|
47
|
+
});
|
|
48
|
+
expect(() => spawnService.execSync(command)).toThrow("error");
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
describe("exec", () => {
|
|
53
|
+
it("should call exec with the correct command", async () => {
|
|
54
|
+
const command = "ls -la";
|
|
55
|
+
const mockedCallback = (
|
|
56
|
+
_cmd: string,
|
|
57
|
+
callback: (err: Error | null, stdout?: string, stderr?: string) => void,
|
|
58
|
+
) => {
|
|
59
|
+
callback(null, "output", undefined);
|
|
60
|
+
};
|
|
61
|
+
(childProcess.exec as any).mockReturnValue("output");
|
|
62
|
+
(childProcess.exec as any).mockImplementation(mockedCallback);
|
|
63
|
+
const { stdout: result } = await spawnService.exec(command);
|
|
64
|
+
expect(childProcess.exec).toHaveBeenCalledWith(
|
|
65
|
+
command,
|
|
66
|
+
expect.anything(),
|
|
67
|
+
);
|
|
68
|
+
expect(result).toBe("output");
|
|
69
|
+
expect(command).toBeTruthy();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it("should throw an error if exec throws", async () => {
|
|
73
|
+
const command = "invalid command";
|
|
74
|
+
(childProcess.exec as any).mockImplementation(
|
|
75
|
+
(
|
|
76
|
+
_cmd: string,
|
|
77
|
+
callback: (
|
|
78
|
+
err: Error | null,
|
|
79
|
+
stdout?: string,
|
|
80
|
+
stderr?: string,
|
|
81
|
+
) => void,
|
|
82
|
+
) => {
|
|
83
|
+
callback(new Error("error"), undefined, undefined);
|
|
84
|
+
},
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
try {
|
|
88
|
+
await spawnService.exec(command);
|
|
89
|
+
fail("should not get past errors");
|
|
90
|
+
} catch (err) {
|
|
91
|
+
expect((err as Error).message).toBe("error");
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
describe("backgroundExec", () => {
|
|
97
|
+
it("should call spawn with the correct command and args", () => {
|
|
98
|
+
const command = "node";
|
|
99
|
+
const args = ["script.js"];
|
|
100
|
+
const mockChildProcess = { unref: vi.fn() };
|
|
101
|
+
hoisted.spawn.mockReturnValue(mockChildProcess);
|
|
102
|
+
spawnService.backgroundExec(command, args);
|
|
103
|
+
expect(hoisted.spawn).toHaveBeenCalledWith(command, args, {
|
|
104
|
+
detached: true,
|
|
105
|
+
stdio: "ignore",
|
|
106
|
+
});
|
|
107
|
+
expect(mockChildProcess.unref).toHaveBeenCalled();
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
describe("isProcessCompleted", () => {
|
|
112
|
+
it("should return false if process.kill succeeds", () => {
|
|
113
|
+
const pid = 123;
|
|
114
|
+
const mockKill = vi.spyOn(process, "kill").mockImplementation(() => true);
|
|
115
|
+
const result = spawnService.isProcessCompleted(pid);
|
|
116
|
+
expect(result).toBe(false);
|
|
117
|
+
expect(mockKill).toHaveBeenCalledWith(pid, 0);
|
|
118
|
+
mockKill.mockRestore();
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it("should return true if process.kill throws", () => {
|
|
122
|
+
const pid = 123;
|
|
123
|
+
const mockKill = vi.spyOn(process, "kill").mockImplementation(() => {
|
|
124
|
+
throw new Error("error");
|
|
125
|
+
});
|
|
126
|
+
const result = spawnService.isProcessCompleted(pid);
|
|
127
|
+
expect(result).toBe(true);
|
|
128
|
+
expect(mockKill).toHaveBeenCalledWith(pid, 0);
|
|
129
|
+
mockKill.mockRestore();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { UtilService } from "../../src/services/util-service";
|
|
3
|
+
import pkgJson from "../../package.json";
|
|
4
|
+
|
|
5
|
+
describe("UtilService", () => {
|
|
6
|
+
describe("titleize", () => {
|
|
7
|
+
it("should capitalize the first letter of a string", () => {
|
|
8
|
+
const utilService = new UtilService();
|
|
9
|
+
expect(utilService.titleize("hello")).toBe("Hello");
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it("should return an empty string if given an empty string", () => {
|
|
13
|
+
const utilService = new UtilService();
|
|
14
|
+
expect(utilService.titleize("")).toBe("");
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("should handle single character strings", () => {
|
|
18
|
+
const utilService = new UtilService();
|
|
19
|
+
expect(utilService.titleize("a")).toBe("A");
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
describe("getAppName", () => {
|
|
24
|
+
it("should return the application name from package.json", () => {
|
|
25
|
+
const utilService = new UtilService();
|
|
26
|
+
expect(utilService.getAppName()).toBe(pkgJson.name);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
describe("getAppVersion", () => {
|
|
31
|
+
it("should return the application version from package.json", () => {
|
|
32
|
+
const utilService = new UtilService();
|
|
33
|
+
expect(utilService.getAppVersion()).toBe(pkgJson.version);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from "vitest";
|
|
2
|
+
import CheckEnv from "../../src/tasks/check-env";
|
|
3
|
+
import { LogService } from "../../src/services/log-service";
|
|
4
|
+
import { CommandService } from "task-script-support";
|
|
5
|
+
import { AppStateData, CLIArgs } from "../../src/types/state";
|
|
6
|
+
|
|
7
|
+
describe("CheckEnv", () => {
|
|
8
|
+
it("should set environmentValidated to true", async () => {
|
|
9
|
+
const mockLogService = {
|
|
10
|
+
info: vi.fn(),
|
|
11
|
+
debug: vi.fn(),
|
|
12
|
+
} as unknown as LogService;
|
|
13
|
+
const mockCommandService = {
|
|
14
|
+
setData: vi.fn((state, data) => ({
|
|
15
|
+
...state,
|
|
16
|
+
data: { ...state.data, ...data },
|
|
17
|
+
})),
|
|
18
|
+
} as unknown as CommandService<AppStateData, CLIArgs>;
|
|
19
|
+
|
|
20
|
+
const checkEnv = Object.create(CheckEnv.prototype);
|
|
21
|
+
checkEnv._commandService = mockCommandService;
|
|
22
|
+
checkEnv._logService = mockLogService;
|
|
23
|
+
checkEnv.state = { id: "test", args: [], data: {} };
|
|
24
|
+
await checkEnv.run();
|
|
25
|
+
expect(mockLogService.info).toHaveBeenCalledWith(
|
|
26
|
+
"Running Check Environment",
|
|
27
|
+
);
|
|
28
|
+
expect(checkEnv.state.data.environmentValidated).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"rootDir": ".",
|
|
4
|
+
"sourceRoot": "./src",
|
|
5
|
+
"outDir": "./dist",
|
|
6
|
+
"module": "node16",
|
|
7
|
+
"target": "esnext",
|
|
8
|
+
"lib": ["esnext"],
|
|
9
|
+
"types": ["node", "vitest"],
|
|
10
|
+
"sourceMap": true,
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"declarationMap": true,
|
|
13
|
+
"noUncheckedIndexedAccess": true,
|
|
14
|
+
"exactOptionalPropertyTypes": true,
|
|
15
|
+
"strict": true,
|
|
16
|
+
"jsx": "react-jsx",
|
|
17
|
+
"resolveJsonModule": true,
|
|
18
|
+
"esModuleInterop": true,
|
|
19
|
+
"isolatedModules": true,
|
|
20
|
+
"noUncheckedSideEffectImports": true,
|
|
21
|
+
"experimentalDecorators": true,
|
|
22
|
+
"emitDecoratorMetadata": true,
|
|
23
|
+
"moduleDetection": "force",
|
|
24
|
+
"skipLibCheck": true
|
|
25
|
+
},
|
|
26
|
+
"exclude": ["node_modules", "dist", "tests"]
|
|
27
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const { defineConfig, configDefaults } = require("vitest/config");
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
test: {
|
|
5
|
+
globals: true,
|
|
6
|
+
environment: "node",
|
|
7
|
+
setupFiles: "./tests/setup.ts",
|
|
8
|
+
exclude: [...configDefaults.exclude],
|
|
9
|
+
coverage: {
|
|
10
|
+
provider: "v8",
|
|
11
|
+
reporter: ["text", "json", "html"],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
});
|
package/dist/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",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from "../wrappers/command";
|
|
2
|
-
import PrintAboutInformation from "../tasks/print-about-information";
|
|
3
|
-
import PrintBanner from "../tasks/print-banner";
|
|
2
|
+
import PrintAboutInformation from "../tasks/stdout/print-about-information";
|
|
3
|
+
import PrintBanner from "../tasks/stdout/print-banner";
|
|
4
4
|
export declare class AboutCommand extends Command {
|
|
5
5
|
tasks: (typeof PrintAboutInformation | typeof PrintBanner)[];
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"about.d.ts","sourceRoot":"./src/","sources":["src/commands/about.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,qBAAqB,MAAM,
|
|
1
|
+
{"version":3,"file":"about.d.ts","sourceRoot":"./src/","sources":["src/commands/about.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,qBAAqB,MAAM,yCAAyC,CAAC;AAC5E,OAAO,WAAW,MAAM,8BAA8B,CAAC;AAEvD,qBACa,YAAa,SAAQ,OAAO;IACvC,KAAK,wDAAwC;CAC9C"}
|
|
@@ -12,8 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.AboutCommand = void 0;
|
|
13
13
|
const tsyringe_1 = require("tsyringe");
|
|
14
14
|
const command_1 = require("../wrappers/command");
|
|
15
|
-
const print_about_information_1 = __importDefault(require("../tasks/print-about-information"));
|
|
16
|
-
const print_banner_1 = __importDefault(require("../tasks/print-banner"));
|
|
15
|
+
const print_about_information_1 = __importDefault(require("../tasks/stdout/print-about-information"));
|
|
16
|
+
const print_banner_1 = __importDefault(require("../tasks/stdout/print-banner"));
|
|
17
17
|
let AboutCommand = class AboutCommand extends command_1.Command {
|
|
18
18
|
tasks = [print_banner_1.default, print_about_information_1.default];
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"about.js","sourceRoot":"./src/","sources":["src/commands/about.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAqC;AACrC,iDAA8C;AAC9C
|
|
1
|
+
{"version":3,"file":"about.js","sourceRoot":"./src/","sources":["src/commands/about.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAqC;AACrC,iDAA8C;AAC9C,sGAA4E;AAC5E,gFAAuD;AAGhD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,iBAAO;IACvC,KAAK,GAAG,CAAC,sBAAW,EAAE,iCAAqB,CAAC,CAAC;CAC9C,CAAA;AAFY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,oBAAS,GAAE;GACC,YAAY,CAExB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from "../wrappers/command";
|
|
2
|
+
import CheckEnv from "../tasks/check-env";
|
|
3
|
+
import ConfigureCache from "../tasks/configure";
|
|
4
|
+
import PrintBanner from "../tasks/stdout/print-banner";
|
|
5
|
+
export declare class ConfigureCommand extends Command {
|
|
6
|
+
tasks: (typeof PrintBanner | typeof CheckEnv | typeof ConfigureCache)[];
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=configure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.d.ts","sourceRoot":"./src/","sources":["src/commands/configure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AAEvD,qBACa,gBAAiB,SAAQ,OAAO;IAC3C,KAAK,mEAA2C;CACjD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConfigureCommand = void 0;
|
|
13
|
+
const tsyringe_1 = require("tsyringe");
|
|
14
|
+
const command_1 = require("../wrappers/command");
|
|
15
|
+
const check_env_1 = __importDefault(require("../tasks/check-env"));
|
|
16
|
+
const configure_1 = __importDefault(require("../tasks/configure"));
|
|
17
|
+
const print_banner_1 = __importDefault(require("../tasks/stdout/print-banner"));
|
|
18
|
+
let ConfigureCommand = class ConfigureCommand extends command_1.Command {
|
|
19
|
+
tasks = [print_banner_1.default, check_env_1.default, configure_1.default];
|
|
20
|
+
};
|
|
21
|
+
exports.ConfigureCommand = ConfigureCommand;
|
|
22
|
+
exports.ConfigureCommand = ConfigureCommand = __decorate([
|
|
23
|
+
(0, tsyringe_1.singleton)()
|
|
24
|
+
], ConfigureCommand);
|
|
25
|
+
//# sourceMappingURL=configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"./src/","sources":["src/commands/configure.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAqC;AACrC,iDAA8C;AAC9C,mEAA0C;AAC1C,mEAAgD;AAChD,gFAAuD;AAGhD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,iBAAO;IAC3C,KAAK,GAAG,CAAC,sBAAW,EAAE,mBAAQ,EAAE,mBAAc,CAAC,CAAC;CACjD,CAAA;AAFY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,oBAAS,GAAE;GACC,gBAAgB,CAE5B"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Command } from "../wrappers/command";
|
|
2
2
|
import CheckEnvironment from "../tasks/check-env";
|
|
3
|
-
import PrintBanner from "../tasks/print-banner";
|
|
4
|
-
import SelectGenTarget from "../tasks/select-gen-target";
|
|
5
|
-
import GenerateService from "../tasks/generate-service";
|
|
6
|
-
import GenerateCommand from "../tasks/generate-command";
|
|
7
|
-
import GenerateTask from "../tasks/generate-task";
|
|
8
|
-
import PrintGeneratedResults from "../tasks/print-generated-results";
|
|
3
|
+
import PrintBanner from "../tasks/stdout/print-banner";
|
|
4
|
+
import SelectGenTarget from "../tasks/generate/select-gen-target";
|
|
5
|
+
import GenerateService from "../tasks/generate/generate-service";
|
|
6
|
+
import GenerateCommand from "../tasks/generate/generate-command";
|
|
7
|
+
import GenerateTask from "../tasks/generate/generate-task";
|
|
8
|
+
import PrintGeneratedResults from "../tasks/stdout/print-generated-results";
|
|
9
|
+
import SyncConfiguration from "../tasks/sync-configuration";
|
|
10
|
+
import SelectGenTargetName from "../tasks/generate/select-gen-target-name";
|
|
9
11
|
export declare class GenCommand extends Command {
|
|
10
|
-
tasks: (typeof PrintBanner | typeof CheckEnvironment | typeof SelectGenTarget | typeof PrintGeneratedResults | (typeof GenerateService | typeof GenerateCommand | typeof GenerateTask)[])[];
|
|
12
|
+
tasks: (typeof PrintBanner | typeof CheckEnvironment | typeof SelectGenTarget | typeof PrintGeneratedResults | typeof SyncConfiguration | typeof SelectGenTargetName | (typeof GenerateService | typeof GenerateCommand | typeof GenerateTask)[])[];
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=gen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen.d.ts","sourceRoot":"./src/","sources":["src/commands/gen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"gen.d.ts","sourceRoot":"./src/","sources":["src/commands/gen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,eAAe,MAAM,qCAAqC,CAAC;AAClE,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,qBAAqB,MAAM,yCAAyC,CAAC;AAC5E,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAC5D,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAE3E,qBACa,UAAW,SAAQ,OAAO;IACrC,KAAK,+OAQH;CACH"}
|
package/dist/src/commands/gen.js
CHANGED
|
@@ -13,17 +13,21 @@ exports.GenCommand = void 0;
|
|
|
13
13
|
const tsyringe_1 = require("tsyringe");
|
|
14
14
|
const command_1 = require("../wrappers/command");
|
|
15
15
|
const check_env_1 = __importDefault(require("../tasks/check-env"));
|
|
16
|
-
const print_banner_1 = __importDefault(require("../tasks/print-banner"));
|
|
17
|
-
const select_gen_target_1 = __importDefault(require("../tasks/select-gen-target"));
|
|
18
|
-
const generate_service_1 = __importDefault(require("../tasks/generate-service"));
|
|
19
|
-
const generate_command_1 = __importDefault(require("../tasks/generate-command"));
|
|
20
|
-
const generate_task_1 = __importDefault(require("../tasks/generate-task"));
|
|
21
|
-
const print_generated_results_1 = __importDefault(require("../tasks/print-generated-results"));
|
|
16
|
+
const print_banner_1 = __importDefault(require("../tasks/stdout/print-banner"));
|
|
17
|
+
const select_gen_target_1 = __importDefault(require("../tasks/generate/select-gen-target"));
|
|
18
|
+
const generate_service_1 = __importDefault(require("../tasks/generate/generate-service"));
|
|
19
|
+
const generate_command_1 = __importDefault(require("../tasks/generate/generate-command"));
|
|
20
|
+
const generate_task_1 = __importDefault(require("../tasks/generate/generate-task"));
|
|
21
|
+
const print_generated_results_1 = __importDefault(require("../tasks/stdout/print-generated-results"));
|
|
22
|
+
const sync_configuration_1 = __importDefault(require("../tasks/sync-configuration"));
|
|
23
|
+
const select_gen_target_name_1 = __importDefault(require("../tasks/generate/select-gen-target-name"));
|
|
22
24
|
let GenCommand = class GenCommand extends command_1.Command {
|
|
23
25
|
tasks = [
|
|
24
26
|
print_banner_1.default,
|
|
25
27
|
check_env_1.default,
|
|
26
28
|
select_gen_target_1.default,
|
|
29
|
+
sync_configuration_1.default,
|
|
30
|
+
select_gen_target_name_1.default,
|
|
27
31
|
[generate_command_1.default, generate_service_1.default, generate_task_1.default],
|
|
28
32
|
print_generated_results_1.default,
|
|
29
33
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen.js","sourceRoot":"./src/","sources":["src/commands/gen.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAqC;AACrC,iDAA8C;AAC9C,mEAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"gen.js","sourceRoot":"./src/","sources":["src/commands/gen.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAqC;AACrC,iDAA8C;AAC9C,mEAAkD;AAClD,gFAAuD;AACvD,4FAAkE;AAClE,0FAAiE;AACjE,0FAAiE;AACjE,oFAA2D;AAC3D,sGAA4E;AAC5E,qFAA4D;AAC5D,sGAA2E;AAGpE,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,iBAAO;IACrC,KAAK,GAAG;QACN,sBAAW;QACX,mBAAgB;QAChB,2BAAe;QACf,4BAAiB;QACjB,gCAAmB;QACnB,CAAC,0BAAe,EAAE,0BAAe,EAAE,uBAAY,CAAC;QAChD,iCAAqB;KACtB,CAAC;CACH,CAAA;AAVY,gCAAU;qBAAV,UAAU;IADtB,IAAA,oBAAS,GAAE;GACC,UAAU,CAUtB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from "../wrappers/command";
|
|
2
|
+
import PrintBanner from "../tasks/stdout/print-banner";
|
|
3
|
+
import CreateNewProject from "../tasks/create-new-project";
|
|
4
|
+
import PrintGeneratedResults from "../tasks/stdout/print-generated-results";
|
|
5
|
+
export declare class NewCommand extends Command {
|
|
6
|
+
tasks: (typeof PrintBanner | typeof PrintGeneratedResults | typeof CreateNewProject)[];
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=new.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.d.ts","sourceRoot":"./src/","sources":["src/commands/new.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,qBAAqB,MAAM,yCAAyC,CAAC;AAE5E,qBACa,UAAW,SAAQ,OAAO;IACrC,KAAK,kFAA0D;CAChE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.NewCommand = void 0;
|
|
13
|
+
const tsyringe_1 = require("tsyringe");
|
|
14
|
+
const command_1 = require("../wrappers/command");
|
|
15
|
+
const print_banner_1 = __importDefault(require("../tasks/stdout/print-banner"));
|
|
16
|
+
const create_new_project_1 = __importDefault(require("../tasks/create-new-project"));
|
|
17
|
+
const print_generated_results_1 = __importDefault(require("../tasks/stdout/print-generated-results"));
|
|
18
|
+
let NewCommand = class NewCommand extends command_1.Command {
|
|
19
|
+
tasks = [print_banner_1.default, create_new_project_1.default, print_generated_results_1.default];
|
|
20
|
+
};
|
|
21
|
+
exports.NewCommand = NewCommand;
|
|
22
|
+
exports.NewCommand = NewCommand = __decorate([
|
|
23
|
+
(0, tsyringe_1.singleton)()
|
|
24
|
+
], NewCommand);
|
|
25
|
+
//# sourceMappingURL=new.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"./src/","sources":["src/commands/new.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAqC;AACrC,iDAA8C;AAC9C,gFAAuD;AACvD,qFAA2D;AAC3D,sGAA4E;AAGrE,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,iBAAO;IACrC,KAAK,GAAG,CAAC,sBAAW,EAAE,4BAAgB,EAAE,iCAAqB,CAAC,CAAC;CAChE,CAAA;AAFY,gCAAU;qBAAV,UAAU;IADtB,IAAA,oBAAS,GAAE;GACC,UAAU,CAEtB"}
|
package/dist/src/index.js
CHANGED
|
@@ -13,6 +13,8 @@ const util_service_1 = require("./services/util-service");
|
|
|
13
13
|
util_service_1.UtilService.initializeDependencies();
|
|
14
14
|
const about_1 = require("./commands/about");
|
|
15
15
|
const gen_1 = require("./commands/gen");
|
|
16
|
+
const new_1 = require("./commands/new");
|
|
17
|
+
const configure_1 = require("./commands/configure");
|
|
16
18
|
const { program } = commander_1.default;
|
|
17
19
|
const name = util_service_1.UtilService.getAppName();
|
|
18
20
|
const version = util_service_1.UtilService.getAppVersion();
|
|
@@ -30,5 +32,13 @@ program
|
|
|
30
32
|
.option("-c, --command", "Generate a command")
|
|
31
33
|
.option("-t, --task", "Generate a task")
|
|
32
34
|
.action(tsyringe_1.container.resolve(gen_1.GenCommand).handler);
|
|
35
|
+
program
|
|
36
|
+
.command("new")
|
|
37
|
+
.option("-n, --name <name>", "Name of the New Project")
|
|
38
|
+
// .option("-d, --dest", "target destination path")
|
|
39
|
+
.action(tsyringe_1.container.resolve(new_1.NewCommand).handler);
|
|
40
|
+
program
|
|
41
|
+
.command("configure")
|
|
42
|
+
.action(tsyringe_1.container.resolve(configure_1.ConfigureCommand).handler);
|
|
33
43
|
program.parse(process.argv);
|
|
34
44
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"./src/","sources":["src/index.ts"],"names":[],"mappings":";;;;;AAAA,4BAA0B;AAE1B,oDAA4B;AAC5B,uCAAqC;AACrC,0DAAkC;AAElC,gBAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/B,0DAAsD;AAEtD,gCAAgC;AAChC,0BAAW,CAAC,sBAAsB,EAAE,CAAC;AAErC,4CAAgD;AAChD,wCAA4C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"./src/","sources":["src/index.ts"],"names":[],"mappings":";;;;;AAAA,4BAA0B;AAE1B,oDAA4B;AAC5B,uCAAqC;AACrC,0DAAkC;AAElC,gBAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/B,0DAAsD;AAEtD,gCAAgC;AAChC,0BAAW,CAAC,sBAAsB,EAAE,CAAC;AAErC,4CAAgD;AAChD,wCAA4C;AAC5C,wCAA4C;AAC5C,oDAAwD;AAExD,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAS,CAAC;AAC9B,MAAM,IAAI,GAAG,0BAAW,CAAC,UAAU,EAAE,CAAC;AACtC,MAAM,OAAO,GAAG,0BAAW,CAAC,aAAa,EAAE,CAAC;AAE5C,OAAO;KACJ,OAAO,CAAC,GAAG,IAAI,aAAa,OAAO,EAAE,EAAE,eAAe,CAAC;KACvD,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,0BAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAEhF,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,oBAAS,CAAC,OAAO,CAAC,oBAAY,CAAC,CAAC,OAAO,CAAC;KAC/C,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC;AAErE,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC;KAC7C,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC;KAC7C,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;KACvC,MAAM,CAAC,oBAAS,CAAC,OAAO,CAAC,gBAAU,CAAC,CAAC,OAAO,CAAC,CAAC;AAEjD,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IACvD,mDAAmD;KAClD,MAAM,CAAC,oBAAS,CAAC,OAAO,CAAC,gBAAU,CAAC,CAAC,OAAO,CAAC,CAAC;AAEjD,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,MAAM,CAAC,oBAAS,CAAC,OAAO,CAAC,4BAAgB,CAAC,CAAC,OAAO,CAAC,CAAC;AAEvD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ProjectConfig } from "../types/project";
|
|
2
|
+
import { LogService } from "./log-service";
|
|
3
|
+
export declare class CacheService {
|
|
4
|
+
private logger;
|
|
5
|
+
private storageInitialized;
|
|
6
|
+
constructor(logger: LogService);
|
|
7
|
+
initialize(): Promise<void>;
|
|
8
|
+
getProject(rootDir: string): Promise<ProjectConfig | null>;
|
|
9
|
+
writeProject(project: ProjectConfig): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=cache-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-service.d.ts","sourceRoot":"./src/","sources":["src/services/cache-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBACa,YAAY;IAEX,OAAO,CAAC,MAAM;IAD1B,OAAO,CAAC,kBAAkB,CAAS;gBACf,MAAM,EAAE,UAAU;IAIhC,UAAU;IAiBV,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAM1D,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAW1D"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
exports.CacheService = void 0;
|
|
16
|
+
const node_persist_1 = __importDefault(require("node-persist"));
|
|
17
|
+
const tsyringe_1 = require("tsyringe");
|
|
18
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
19
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
20
|
+
const log_service_1 = require("./log-service");
|
|
21
|
+
const path_1 = __importDefault(require("path"));
|
|
22
|
+
let CacheService = class CacheService {
|
|
23
|
+
logger;
|
|
24
|
+
storageInitialized = false;
|
|
25
|
+
constructor(logger) {
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
logger.setPrefix(`${this.constructor.name} :: `);
|
|
28
|
+
}
|
|
29
|
+
async initialize() {
|
|
30
|
+
if (this.storageInitialized) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const appDataFolder = process.env.APPDATA ||
|
|
34
|
+
(process.platform === "darwin"
|
|
35
|
+
? `${process.env.HOME}/Library/Preferences`
|
|
36
|
+
: `${process.env.HOME}/.config`);
|
|
37
|
+
const location = path_1.default.join(appDataFolder, "tssc");
|
|
38
|
+
this.logger.debug(chalk_1.default.dim(`Using cache: ${location}`));
|
|
39
|
+
await node_persist_1.default.init({ dir: location });
|
|
40
|
+
this.storageInitialized = true;
|
|
41
|
+
}
|
|
42
|
+
async getProject(rootDir) {
|
|
43
|
+
await this.initialize();
|
|
44
|
+
const project = await node_persist_1.default.getItem(rootDir);
|
|
45
|
+
return project;
|
|
46
|
+
}
|
|
47
|
+
async writeProject(project) {
|
|
48
|
+
await this.initialize();
|
|
49
|
+
const projectKeys = [
|
|
50
|
+
"rootDir",
|
|
51
|
+
"taskDestination",
|
|
52
|
+
"serviceDestination",
|
|
53
|
+
"commandDestination",
|
|
54
|
+
];
|
|
55
|
+
const cleanedProject = lodash_1.default.pick(project, projectKeys);
|
|
56
|
+
await node_persist_1.default.setItem(project.rootDir, cleanedProject);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
exports.CacheService = CacheService;
|
|
60
|
+
exports.CacheService = CacheService = __decorate([
|
|
61
|
+
(0, tsyringe_1.singleton)(),
|
|
62
|
+
__metadata("design:paramtypes", [log_service_1.LogService])
|
|
63
|
+
], CacheService);
|
|
64
|
+
//# sourceMappingURL=cache-service.js.map
|