task-script-support-cli 0.1.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/assets/yargs-template/task-runner/.prettierignore +3 -0
  2. package/assets/yargs-template/task-runner/.prettierrc +1 -0
  3. package/assets/yargs-template/task-runner/.vscode/launch.json +34 -0
  4. package/assets/yargs-template/task-runner/eslint.config.ts +11 -0
  5. package/assets/yargs-template/task-runner/install-link.sh +21 -0
  6. package/assets/yargs-template/task-runner/package-lock.json +3387 -0
  7. package/assets/yargs-template/task-runner/package.json +51 -0
  8. package/assets/yargs-template/task-runner/src/commands/verify.ts +10 -0
  9. package/assets/yargs-template/task-runner/src/index.ts +46 -0
  10. package/assets/yargs-template/task-runner/src/services/banner-service.ts +38 -0
  11. package/assets/yargs-template/task-runner/src/services/log-service.ts +48 -0
  12. package/assets/yargs-template/task-runner/src/services/spawn-service.ts +87 -0
  13. package/assets/yargs-template/task-runner/src/services/util-service.ts +28 -0
  14. package/assets/yargs-template/task-runner/src/tasks/check-env.ts +49 -0
  15. package/assets/yargs-template/task-runner/src/tasks/log-state.ts +22 -0
  16. package/assets/yargs-template/task-runner/src/tasks/print-banner.ts +73 -0
  17. package/assets/yargs-template/task-runner/src/types/process.ts +9 -0
  18. package/assets/yargs-template/task-runner/src/types/state.ts +31 -0
  19. package/assets/yargs-template/task-runner/src/wrappers/app-task.ts +42 -0
  20. package/assets/yargs-template/task-runner/src/wrappers/command.ts +20 -0
  21. package/assets/yargs-template/task-runner/src/wrappers/dependencies.ts +24 -0
  22. package/assets/yargs-template/task-runner/task-runner +3 -0
  23. package/assets/yargs-template/task-runner/templater.sh +57 -0
  24. package/assets/yargs-template/task-runner/tests/commands/verify.test.ts +42 -0
  25. package/assets/yargs-template/task-runner/tests/services/spawn-service.test.ts +132 -0
  26. package/assets/yargs-template/task-runner/tests/services/util-service.test.ts +36 -0
  27. package/assets/yargs-template/task-runner/tests/setup.ts +1 -0
  28. package/assets/yargs-template/task-runner/tests/tasks/check-env.test.ts +30 -0
  29. package/assets/yargs-template/task-runner/tsconfig.json +27 -0
  30. package/assets/yargs-template/task-runner/vitest.config.ts +14 -0
  31. package/dist/assets/yargs-template/task-runner/.prettierignore +3 -0
  32. package/dist/assets/yargs-template/task-runner/.prettierrc +1 -0
  33. package/dist/assets/yargs-template/task-runner/.vscode/launch.json +34 -0
  34. package/dist/assets/yargs-template/task-runner/eslint.config.ts +11 -0
  35. package/dist/assets/yargs-template/task-runner/install-link.sh +21 -0
  36. package/dist/assets/yargs-template/task-runner/package-lock.json +3387 -0
  37. package/dist/assets/yargs-template/task-runner/package.json +51 -0
  38. package/dist/assets/yargs-template/task-runner/src/commands/verify.ts +10 -0
  39. package/dist/assets/yargs-template/task-runner/src/index.ts +46 -0
  40. package/dist/assets/yargs-template/task-runner/src/services/banner-service.ts +38 -0
  41. package/dist/assets/yargs-template/task-runner/src/services/log-service.ts +48 -0
  42. package/dist/assets/yargs-template/task-runner/src/services/spawn-service.ts +87 -0
  43. package/dist/assets/yargs-template/task-runner/src/services/util-service.ts +28 -0
  44. package/dist/assets/yargs-template/task-runner/src/tasks/check-env.ts +49 -0
  45. package/dist/assets/yargs-template/task-runner/src/tasks/log-state.ts +22 -0
  46. package/dist/assets/yargs-template/task-runner/src/tasks/print-banner.ts +73 -0
  47. package/dist/assets/yargs-template/task-runner/src/types/process.ts +9 -0
  48. package/dist/assets/yargs-template/task-runner/src/types/state.ts +31 -0
  49. package/dist/assets/yargs-template/task-runner/src/wrappers/app-task.ts +42 -0
  50. package/dist/assets/yargs-template/task-runner/src/wrappers/command.ts +20 -0
  51. package/dist/assets/yargs-template/task-runner/src/wrappers/dependencies.ts +24 -0
  52. package/dist/assets/yargs-template/task-runner/task-runner +3 -0
  53. package/dist/assets/yargs-template/task-runner/templater.sh +57 -0
  54. package/dist/assets/yargs-template/task-runner/tests/commands/verify.test.ts +42 -0
  55. package/dist/assets/yargs-template/task-runner/tests/services/spawn-service.test.ts +132 -0
  56. package/dist/assets/yargs-template/task-runner/tests/services/util-service.test.ts +36 -0
  57. package/dist/assets/yargs-template/task-runner/tests/setup.ts +1 -0
  58. package/dist/assets/yargs-template/task-runner/tests/tasks/check-env.test.ts +30 -0
  59. package/dist/assets/yargs-template/task-runner/tsconfig.json +27 -0
  60. package/dist/assets/yargs-template/task-runner/vitest.config.ts +14 -0
  61. package/dist/package.json +8 -3
  62. package/dist/src/commands/gen.d.ts +3 -1
  63. package/dist/src/commands/gen.d.ts.map +1 -1
  64. package/dist/src/commands/gen.js +4 -0
  65. package/dist/src/commands/gen.js.map +1 -1
  66. package/dist/src/commands/new.d.ts +8 -0
  67. package/dist/src/commands/new.d.ts.map +1 -0
  68. package/dist/src/commands/new.js +25 -0
  69. package/dist/src/commands/new.js.map +1 -0
  70. package/dist/src/index.js +6 -0
  71. package/dist/src/index.js.map +1 -1
  72. package/dist/src/services/cache-service.d.ts +11 -0
  73. package/dist/src/services/cache-service.d.ts.map +1 -0
  74. package/dist/src/services/cache-service.js +64 -0
  75. package/dist/src/services/cache-service.js.map +1 -0
  76. package/dist/src/services/file-service.d.ts +5 -1
  77. package/dist/src/services/file-service.d.ts.map +1 -1
  78. package/dist/src/services/file-service.js +16 -2
  79. package/dist/src/services/file-service.js.map +1 -1
  80. package/dist/src/services/log-service.d.ts.map +1 -1
  81. package/dist/src/services/log-service.js +7 -1
  82. package/dist/src/services/log-service.js.map +1 -1
  83. package/dist/src/services/project-service.d.ts +2 -2
  84. package/dist/src/services/project-service.d.ts.map +1 -1
  85. package/dist/src/services/project-service.js +5 -7
  86. package/dist/src/services/project-service.js.map +1 -1
  87. package/dist/src/services/prompt-service.d.ts +27 -0
  88. package/dist/src/services/prompt-service.d.ts.map +1 -0
  89. package/dist/src/services/prompt-service.js +67 -0
  90. package/dist/src/services/prompt-service.js.map +1 -0
  91. package/dist/src/services/spawn-service.d.ts +2 -1
  92. package/dist/src/services/spawn-service.d.ts.map +1 -1
  93. package/dist/src/services/spawn-service.js +16 -1
  94. package/dist/src/services/spawn-service.js.map +1 -1
  95. package/dist/src/services/util-service.d.ts +2 -0
  96. package/dist/src/services/util-service.d.ts.map +1 -1
  97. package/dist/src/services/util-service.js +4 -0
  98. package/dist/src/services/util-service.js.map +1 -1
  99. package/dist/src/tasks/check-env.d.ts +3 -2
  100. package/dist/src/tasks/check-env.d.ts.map +1 -1
  101. package/dist/src/tasks/check-env.js +11 -3
  102. package/dist/src/tasks/check-env.js.map +1 -1
  103. package/dist/src/tasks/create-new-project.d.ts +26 -0
  104. package/dist/src/tasks/create-new-project.d.ts.map +1 -0
  105. package/dist/src/tasks/create-new-project.js +76 -0
  106. package/dist/src/tasks/create-new-project.js.map +1 -0
  107. package/dist/src/tasks/generate-command.d.ts +18 -6
  108. package/dist/src/tasks/generate-command.d.ts.map +1 -1
  109. package/dist/src/tasks/generate-command.js +66 -29
  110. package/dist/src/tasks/generate-command.js.map +1 -1
  111. package/dist/src/tasks/generate-service.d.ts +10 -6
  112. package/dist/src/tasks/generate-service.d.ts.map +1 -1
  113. package/dist/src/tasks/generate-service.js +27 -26
  114. package/dist/src/tasks/generate-service.js.map +1 -1
  115. package/dist/src/tasks/generate-task.d.ts +10 -6
  116. package/dist/src/tasks/generate-task.d.ts.map +1 -1
  117. package/dist/src/tasks/generate-task.js +27 -26
  118. package/dist/src/tasks/generate-task.js.map +1 -1
  119. package/dist/src/tasks/print-banner.d.ts +3 -3
  120. package/dist/src/tasks/print-banner.d.ts.map +1 -1
  121. package/dist/src/tasks/print-banner.js +12 -8
  122. package/dist/src/tasks/print-banner.js.map +1 -1
  123. package/dist/src/tasks/print-generated-results.d.ts.map +1 -1
  124. package/dist/src/tasks/print-generated-results.js +13 -10
  125. package/dist/src/tasks/print-generated-results.js.map +1 -1
  126. package/dist/src/tasks/select-gen-target-name.d.ts +15 -0
  127. package/dist/src/tasks/select-gen-target-name.d.ts.map +1 -0
  128. package/dist/src/tasks/select-gen-target-name.js +58 -0
  129. package/dist/src/tasks/select-gen-target-name.js.map +1 -0
  130. package/dist/src/tasks/select-gen-target.d.ts +5 -0
  131. package/dist/src/tasks/select-gen-target.d.ts.map +1 -1
  132. package/dist/src/tasks/select-gen-target.js +16 -2
  133. package/dist/src/tasks/select-gen-target.js.map +1 -1
  134. package/dist/src/tasks/sync-configuration.d.ts +34 -0
  135. package/dist/src/tasks/sync-configuration.d.ts.map +1 -0
  136. package/dist/src/tasks/sync-configuration.js +116 -0
  137. package/dist/src/tasks/sync-configuration.js.map +1 -0
  138. package/dist/src/tasks/test-task.d.ts +10 -0
  139. package/dist/src/tasks/test-task.d.ts.map +1 -0
  140. package/dist/src/tasks/test-task.js +36 -0
  141. package/dist/src/tasks/test-task.js.map +1 -0
  142. package/dist/src/templates/command.js +2 -2
  143. package/dist/src/templates/command.js.map +1 -1
  144. package/dist/src/templates/service.js +1 -1
  145. package/dist/src/templates/service.js.map +1 -1
  146. package/dist/src/types/process.d.ts +2 -1
  147. package/dist/src/types/process.d.ts.map +1 -1
  148. package/dist/src/types/process.js +1 -0
  149. package/dist/src/types/process.js.map +1 -1
  150. package/dist/src/types/project.d.ts +12 -0
  151. package/dist/src/types/project.d.ts.map +1 -0
  152. package/dist/src/types/project.js +3 -0
  153. package/dist/src/types/project.js.map +1 -0
  154. package/dist/src/types/state.d.ts +5 -1
  155. package/dist/src/types/state.d.ts.map +1 -1
  156. package/dist/src/types/state.js +1 -0
  157. package/dist/src/types/state.js.map +1 -1
  158. package/dist/vitest.config.d.ts +3 -0
  159. package/dist/vitest.config.d.ts.map +1 -0
  160. package/dist/vitest.config.js +16 -0
  161. package/dist/vitest.config.js.map +1 -0
  162. package/package.json +8 -3
  163. package/src/commands/gen.ts +4 -0
  164. package/src/commands/new.ts +10 -0
  165. package/src/index.ts +7 -0
  166. package/src/services/cache-service.ts +50 -0
  167. package/src/services/file-service.ts +18 -1
  168. package/src/services/log-service.ts +6 -1
  169. package/src/services/project-service.ts +2 -2
  170. package/src/services/prompt-service.ts +60 -0
  171. package/src/services/spawn-service.ts +15 -1
  172. package/src/services/util-service.ts +5 -0
  173. package/src/tasks/check-env.ts +10 -2
  174. package/src/tasks/create-new-project.ts +66 -0
  175. package/src/tasks/generate-command.ts +84 -31
  176. package/src/tasks/generate-service.ts +24 -28
  177. package/src/tasks/generate-task.ts +24 -28
  178. package/src/tasks/print-banner.ts +10 -6
  179. package/src/tasks/print-generated-results.ts +15 -15
  180. package/src/tasks/select-gen-target-name.ts +44 -0
  181. package/src/tasks/select-gen-target.ts +16 -1
  182. package/src/tasks/sync-configuration.ts +121 -0
  183. package/src/tasks/test-task.ts +20 -0
  184. package/src/templates/command.ts +2 -2
  185. package/src/templates/service.ts +1 -1
  186. package/src/types/process.ts +1 -0
  187. package/src/types/project.ts +12 -0
  188. package/src/types/state.ts +7 -1
  189. package/tests/index.spec.ts +8 -0
  190. package/tests/setup.ts +1 -0
  191. package/tsconfig.json +1 -1
  192. package/vitest.config.ts +14 -0
@@ -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
+ });
@@ -0,0 +1,3 @@
1
+ # Ignore artifacts:
2
+ build
3
+ coverage
@@ -0,0 +1,34 @@
1
+ {
2
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
3
+ "version": "0.2.0",
4
+ "configurations": [
5
+ {
6
+ "name": "Start Verify --Env 'test'",
7
+ "request": "launch",
8
+ "runtimeArgs": ["start", "verify", "-d"],
9
+ "runtimeExecutable": "npm",
10
+ "skipFiles": ["<node_internals>/**"],
11
+ "type": "node"
12
+ },
13
+
14
+ {
15
+ "name": "Launch with Random Banner Font",
16
+ "request": "launch",
17
+ "runtimeArgs": ["start", "verify", "-d", "--rf"],
18
+ "runtimeExecutable": "npm",
19
+ "skipFiles": ["<node_internals>/**"],
20
+ "type": "node"
21
+ },
22
+
23
+ {
24
+ "type": "node",
25
+ "request": "launch",
26
+ "name": "Launch Program 2",
27
+ "skipFiles": ["<node_internals>/**"],
28
+ "program": "${workspaceFolder}/dist/src/index.js",
29
+ "preLaunchTask": "tsc: build - tsconfig.json",
30
+ "outFiles": ["${workspaceFolder}/dist/**/*.js"],
31
+ "args": ["verify"]
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,11 @@
1
+ import eslint from "@eslint/js";
2
+ import { defineConfig, globalIgnores } from "eslint/config";
3
+ import tseslint from "typescript-eslint";
4
+
5
+ export default defineConfig([
6
+ {
7
+ extends: [eslint.configs.recommended, tseslint.configs.recommended],
8
+ files: ["./src/**/*.ts", "./tests/**/*.ts"],
9
+ },
10
+ globalIgnores(["dist/*"]),
11
+ ]);
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+
3
+ SOURCE_LN=$(echo `pwd`/task-runner)
4
+ DEST_DIR="$HOME/.scripts"
5
+ DEST_LN="$DEST_DIR/task-runner"
6
+
7
+ npm i
8
+
9
+ npm run build
10
+
11
+ mkdir -p "$DEST_DIR"
12
+
13
+ echo "Creating SymLink:"
14
+ echo " $SOURCE_LN -> $DEST_LN"
15
+
16
+ ln -s "$SOURCE_LN" "$DEST_LN"
17
+
18
+ echo 'Installed local client as task-runner'
19
+ echo;
20
+ echo 'Try: task-runner -h'
21
+ echo;