@simplysm/sd-cli 14.0.8 → 14.0.9
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/dist/angular/client-transform-stylesheet.d.ts.map +1 -1
- package/dist/angular/client-transform-stylesheet.js.map +1 -1
- package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
- package/dist/angular/vite-angular-plugin.js +15 -8
- package/dist/angular/vite-angular-plugin.js.map +1 -1
- package/dist/angular/vite-postcss-inline-plugin.d.ts.map +1 -1
- package/dist/angular/vite-postcss-inline-plugin.js.map +1 -1
- package/dist/capacitor/capacitor.d.ts.map +1 -1
- package/dist/capacitor/capacitor.js +41 -41
- package/dist/capacitor/capacitor.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/replace-deps.d.ts.map +1 -1
- package/dist/commands/replace-deps.js.map +1 -1
- package/dist/commands/typecheck.d.ts.map +1 -1
- package/dist/commands/typecheck.js +12 -12
- package/dist/commands/typecheck.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js.map +1 -1
- package/dist/electron/electron.d.ts.map +1 -1
- package/dist/electron/electron.js +26 -27
- package/dist/electron/electron.js.map +1 -1
- package/dist/engines/BaseEngine.d.ts +1 -5
- package/dist/engines/BaseEngine.d.ts.map +1 -1
- package/dist/engines/BaseEngine.js +7 -16
- package/dist/engines/BaseEngine.js.map +1 -1
- package/dist/engines/NgtscEngine.d.ts.map +1 -1
- package/dist/engines/NgtscEngine.js +10 -11
- package/dist/engines/NgtscEngine.js.map +1 -1
- package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
- package/dist/engines/ServerEsbuildEngine.js +10 -11
- package/dist/engines/ServerEsbuildEngine.js.map +1 -1
- package/dist/engines/TscEngine.d.ts.map +1 -1
- package/dist/engines/TscEngine.js +10 -11
- package/dist/engines/TscEngine.js.map +1 -1
- package/dist/engines/ViteEngine.d.ts.map +1 -1
- package/dist/engines/ViteEngine.js +3 -13
- package/dist/engines/ViteEngine.js.map +1 -1
- package/dist/engines/index.d.ts.map +1 -1
- package/dist/engines/index.js.map +1 -1
- package/dist/engines/types.d.ts +3 -6
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/engines/types.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/ResultCollector.d.ts +1 -1
- package/dist/infra/ResultCollector.d.ts.map +1 -1
- package/dist/infra/ResultCollector.js.map +1 -1
- package/dist/infra/SignalHandler.d.ts.map +1 -1
- package/dist/infra/SignalHandler.js.map +1 -1
- package/dist/infra/WorkerManager.d.ts.map +1 -1
- package/dist/infra/WorkerManager.js.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.js +30 -61
- package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
- package/dist/orchestrators/DevWatchOrchestrator.d.ts +2 -0
- package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/DevWatchOrchestrator.js +40 -44
- package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -1
- package/dist/sd-cli-entry.d.ts.map +1 -1
- package/dist/sd-cli-entry.js +2 -13
- package/dist/sd-cli-entry.js.map +1 -1
- package/dist/sd-cli.d.ts.map +1 -1
- package/dist/sd-cli.js.map +1 -1
- package/dist/sd-config.types.d.ts.map +1 -1
- package/dist/sd-config.types.js.map +1 -1
- package/dist/utils/SdCliReporter.d.ts +18 -0
- package/dist/utils/SdCliReporter.d.ts.map +1 -0
- package/dist/utils/SdCliReporter.js +144 -0
- package/dist/utils/SdCliReporter.js.map +1 -0
- package/dist/utils/angular-build.d.ts.map +1 -1
- package/dist/utils/angular-build.js.map +1 -1
- package/dist/utils/angular-compiler.d.ts.map +1 -1
- package/dist/utils/angular-compiler.js +11 -4
- package/dist/utils/angular-compiler.js.map +1 -1
- package/dist/utils/build-env.d.ts.map +1 -1
- package/dist/utils/build-env.js +2 -1
- package/dist/utils/build-env.js.map +1 -1
- package/dist/utils/concurrency.d.ts.map +1 -1
- package/dist/utils/concurrency.js.map +1 -1
- package/dist/utils/copy-public.d.ts.map +1 -1
- package/dist/utils/copy-public.js +21 -21
- package/dist/utils/copy-public.js.map +1 -1
- package/dist/utils/copy-src.d.ts.map +1 -1
- package/dist/utils/copy-src.js +12 -12
- package/dist/utils/copy-src.js.map +1 -1
- package/dist/utils/diagnostic-utils.d.ts.map +1 -1
- package/dist/utils/diagnostic-utils.js +3 -2
- package/dist/utils/diagnostic-utils.js.map +1 -1
- package/dist/utils/engine-stop.d.ts.map +1 -1
- package/dist/utils/engine-stop.js.map +1 -1
- package/dist/utils/esbuild-config.d.ts.map +1 -1
- package/dist/utils/esbuild-config.js +2 -0
- package/dist/utils/esbuild-config.js.map +1 -1
- package/dist/utils/generate-pwa-icons.d.ts.map +1 -1
- package/dist/utils/generate-pwa-icons.js.map +1 -1
- package/dist/utils/hmr-candidates.d.ts.map +1 -1
- package/dist/utils/hmr-candidates.js.map +1 -1
- package/dist/utils/lint-utils.d.ts.map +1 -1
- package/dist/utils/lint-utils.js.map +1 -1
- package/dist/utils/lint-with-program.d.ts.map +1 -1
- package/dist/utils/lint-with-program.js +7 -3
- package/dist/utils/lint-with-program.js.map +1 -1
- package/dist/utils/ngtsc-build-core.d.ts +2 -10
- package/dist/utils/ngtsc-build-core.d.ts.map +1 -1
- package/dist/utils/ngtsc-build-core.js +16 -15
- package/dist/utils/ngtsc-build-core.js.map +1 -1
- package/dist/utils/orchestrator-utils.d.ts.map +1 -1
- package/dist/utils/orchestrator-utils.js.map +1 -1
- package/dist/utils/output-path-rewriter.d.ts.map +1 -1
- package/dist/utils/output-path-rewriter.js +7 -7
- package/dist/utils/output-path-rewriter.js.map +1 -1
- package/dist/utils/output-utils.d.ts.map +1 -1
- package/dist/utils/output-utils.js +1 -1
- package/dist/utils/output-utils.js.map +1 -1
- package/dist/utils/package-utils.d.ts +4 -0
- package/dist/utils/package-utils.d.ts.map +1 -1
- package/dist/utils/package-utils.js +34 -13
- package/dist/utils/package-utils.js.map +1 -1
- package/dist/utils/rebuild-manager.d.ts +1 -1
- package/dist/utils/rebuild-manager.d.ts.map +1 -1
- package/dist/utils/rebuild-manager.js +3 -1
- package/dist/utils/rebuild-manager.js.map +1 -1
- package/dist/utils/replace-deps.d.ts.map +1 -1
- package/dist/utils/replace-deps.js +10 -10
- package/dist/utils/replace-deps.js.map +1 -1
- package/dist/utils/scss-compiler.d.ts.map +1 -1
- package/dist/utils/scss-compiler.js.map +1 -1
- package/dist/utils/sd-config.d.ts.map +1 -1
- package/dist/utils/sd-config.js +2 -3
- package/dist/utils/sd-config.js.map +1 -1
- package/dist/utils/tsc-build.d.ts +3 -1
- package/dist/utils/tsc-build.d.ts.map +1 -1
- package/dist/utils/tsc-build.js +7 -4
- package/dist/utils/tsc-build.js.map +1 -1
- package/dist/utils/tsconfig.d.ts.map +1 -1
- package/dist/utils/tsconfig.js.map +1 -1
- package/dist/utils/typecheck-non-package.d.ts.map +1 -1
- package/dist/utils/typecheck-non-package.js +10 -5
- package/dist/utils/typecheck-non-package.js.map +1 -1
- package/dist/utils/typecheck-serialization.d.ts.map +1 -1
- package/dist/utils/typecheck-serialization.js.map +1 -1
- package/dist/utils/vite-config.d.ts.map +1 -1
- package/dist/utils/vite-config.js +2 -1
- package/dist/utils/vite-config.js.map +1 -1
- package/dist/utils/vite-scope-watch-plugin.d.ts.map +1 -1
- package/dist/utils/vite-scope-watch-plugin.js.map +1 -1
- package/dist/utils/worker-events.d.ts +1 -1
- package/dist/utils/worker-events.d.ts.map +1 -1
- package/dist/utils/worker-events.js +1 -0
- package/dist/utils/worker-events.js.map +1 -1
- package/dist/utils/worker-utils.d.ts +1 -1
- package/dist/utils/worker-utils.d.ts.map +1 -1
- package/dist/utils/worker-utils.js +3 -1
- package/dist/utils/worker-utils.js.map +1 -1
- package/dist/vitest-plugin.d.ts.map +1 -1
- package/dist/vitest-plugin.js.map +1 -1
- package/dist/workers/client.worker.d.ts.map +1 -1
- package/dist/workers/client.worker.js +4 -0
- package/dist/workers/client.worker.js.map +1 -1
- package/dist/workers/library-build.worker.d.ts +2 -10
- package/dist/workers/library-build.worker.d.ts.map +1 -1
- package/dist/workers/library-build.worker.js +38 -14
- package/dist/workers/library-build.worker.js.map +1 -1
- package/dist/workers/lint.worker.d.ts.map +1 -1
- package/dist/workers/lint.worker.js.map +1 -1
- package/dist/workers/ngtsc-build.worker.d.ts.map +1 -1
- package/dist/workers/ngtsc-build.worker.js +40 -14
- package/dist/workers/ngtsc-build.worker.js.map +1 -1
- package/dist/workers/server-build.worker.d.ts +2 -10
- package/dist/workers/server-build.worker.d.ts.map +1 -1
- package/dist/workers/server-build.worker.js +28 -19
- package/dist/workers/server-build.worker.js.map +1 -1
- package/dist/workers/server-runtime.worker.d.ts.map +1 -1
- package/dist/workers/server-runtime.worker.js.map +1 -1
- package/package.json +4 -4
- package/src/angular/vite-angular-plugin.ts +18 -9
- package/src/capacitor/capacitor.ts +41 -41
- package/src/commands/typecheck.ts +12 -12
- package/src/electron/electron.ts +26 -27
- package/src/engines/BaseEngine.ts +8 -19
- package/src/engines/NgtscEngine.ts +11 -11
- package/src/engines/ServerEsbuildEngine.ts +11 -11
- package/src/engines/TscEngine.ts +11 -11
- package/src/engines/ViteEngine.ts +3 -14
- package/src/engines/types.ts +3 -6
- package/src/infra/ResultCollector.ts +1 -1
- package/src/orchestrators/BuildOrchestrator.ts +31 -62
- package/src/orchestrators/DevWatchOrchestrator.ts +41 -44
- package/src/sd-cli-entry.ts +2 -12
- package/src/utils/SdCliReporter.ts +177 -0
- package/src/utils/angular-compiler.ts +11 -4
- package/src/utils/build-env.ts +2 -1
- package/src/utils/copy-public.ts +21 -21
- package/src/utils/copy-src.ts +12 -12
- package/src/utils/diagnostic-utils.ts +3 -2
- package/src/utils/esbuild-config.ts +2 -0
- package/src/utils/lint-with-program.ts +7 -3
- package/src/utils/ngtsc-build-core.ts +18 -18
- package/src/utils/output-path-rewriter.ts +7 -7
- package/src/utils/output-utils.ts +1 -1
- package/src/utils/package-utils.ts +37 -13
- package/src/utils/rebuild-manager.ts +4 -2
- package/src/utils/replace-deps.ts +10 -10
- package/src/utils/sd-config.ts +2 -3
- package/src/utils/tsc-build.ts +9 -4
- package/src/utils/typecheck-non-package.ts +10 -5
- package/src/utils/vite-config.ts +2 -1
- package/src/utils/worker-events.ts +2 -1
- package/src/utils/worker-utils.ts +3 -1
- package/src/workers/client.worker.ts +4 -0
- package/src/workers/library-build.worker.ts +48 -18
- package/src/workers/ngtsc-build.worker.ts +48 -13
- package/src/workers/server-build.worker.ts +30 -23
- package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +11 -7
- package/tests/angular/vite-angular-plugin-lint.spec.ts +6 -1
- package/tests/capacitor/capacitor-build.spec.ts +5 -0
- package/tests/capacitor/capacitor-icon.spec.ts +5 -0
- package/tests/capacitor/capacitor-init.spec.ts +5 -0
- package/tests/capacitor/capacitor-run.spec.ts +5 -0
- package/tests/capacitor/capacitor-workspace.spec.ts +5 -0
- package/tests/commands/typecheck.spec.ts +20 -31
- package/tests/electron/electron.spec.ts +5 -0
- package/tests/engines/base-engine.spec.ts +15 -21
- package/tests/engines/engine-lint-integration.spec.ts +5 -10
- package/tests/engines/ngtsc-engine.spec.ts +27 -41
- package/tests/engines/server-esbuild-engine.spec.ts +18 -29
- package/tests/engines/tsc-engine.spec.ts +14 -23
- package/tests/engines/vite-engine.spec.ts +10 -15
- package/tests/infra/result-collector.spec.ts +2 -2
- package/tests/orchestrators/build-orchestrator.spec.ts +19 -29
- package/tests/orchestrators/dev-watch-orchestrator.spec.ts +110 -95
- package/tests/utils/copy-src.spec.ts +25 -19
- package/tests/utils/diagnostic-utils.spec.ts +72 -0
- package/tests/utils/ngtsc-build-core-angular-compiler.spec.ts +2 -3
- package/tests/utils/output-path-rewriter.spec.ts +7 -6
- package/tests/utils/output-utils.spec.ts +5 -5
- package/tests/utils/rebuild-manager.spec.ts +1 -1
- package/tests/utils/sd-config.spec.ts +4 -0
- package/tests/utils/tsc-build.spec.ts +23 -5
- package/tests/workers/library-build-worker.spec.ts +113 -20
- package/tests/workers/ngtsc-build-lint.spec.ts +3 -6
- package/tests/workers/ngtsc-build-worker.spec.ts +11 -13
- package/tests/workers/server-build-lint.spec.ts +4 -1
- package/tests/workers/server-build-worker.spec.ts +19 -22
- package/tests/angular/migration-cleanup.spec.ts +0 -59
|
@@ -52,8 +52,7 @@ function createMockPkg(overrides: Partial<ServerPackageInfo> = {}): ServerPackag
|
|
|
52
52
|
|
|
53
53
|
function setupDefaultBuildResult(): void {
|
|
54
54
|
mockWorker.build.mockResolvedValue({
|
|
55
|
-
|
|
56
|
-
dts: { success: true, errors: undefined, diagnostics: [] },
|
|
55
|
+
build: { success: true, errors: undefined, warnings: undefined, diagnostics: [] },
|
|
57
56
|
mainJsPath: "/packages/test-server/dist/main.js",
|
|
58
57
|
});
|
|
59
58
|
mockWorker.terminate.mockResolvedValue(undefined);
|
|
@@ -91,16 +90,14 @@ describe("ServerEsbuildEngine", () => {
|
|
|
91
90
|
}),
|
|
92
91
|
);
|
|
93
92
|
expect(result.success).toBe(true);
|
|
94
|
-
expect(result.
|
|
95
|
-
expect(result.dts.success).toBe(true);
|
|
93
|
+
expect(result.build.success).toBe(true);
|
|
96
94
|
await engine.stop();
|
|
97
95
|
});
|
|
98
96
|
|
|
99
97
|
// Acceptance: maps ServerBuildResult to EngineResult
|
|
100
|
-
it("maps worker result to EngineResult with
|
|
98
|
+
it("maps worker result to EngineResult with build field", async () => {
|
|
101
99
|
mockWorker.build.mockResolvedValue({
|
|
102
|
-
|
|
103
|
-
dts: { success: false, errors: ["type error"], diagnostics: [{ code: 2345, category: 1 }] },
|
|
100
|
+
build: { success: false, errors: ["type error"], warnings: ["warn1"], diagnostics: [{ code: 2345, category: 1 }] },
|
|
104
101
|
mainJsPath: "/packages/test-server/dist/main.js",
|
|
105
102
|
});
|
|
106
103
|
|
|
@@ -108,17 +105,16 @@ describe("ServerEsbuildEngine", () => {
|
|
|
108
105
|
const result = await engine.run({ js: true, dts: false });
|
|
109
106
|
|
|
110
107
|
expect(result.success).toBe(false);
|
|
111
|
-
expect(result.
|
|
112
|
-
expect(result.
|
|
113
|
-
expect(result.
|
|
108
|
+
expect(result.build.warnings).toEqual(["warn1"]);
|
|
109
|
+
expect(result.build.success).toBe(false);
|
|
110
|
+
expect(result.build.diagnostics).toEqual([{ code: 2345, category: 1 }]);
|
|
114
111
|
await engine.stop();
|
|
115
112
|
});
|
|
116
113
|
|
|
117
|
-
// Unit:
|
|
118
|
-
it("reflects
|
|
114
|
+
// Unit: build failure
|
|
115
|
+
it("reflects build failure in result", async () => {
|
|
119
116
|
mockWorker.build.mockResolvedValue({
|
|
120
|
-
|
|
121
|
-
dts: { success: true, errors: undefined, diagnostics: [] },
|
|
117
|
+
build: { success: false, errors: ["esbuild error"], warnings: undefined, diagnostics: [] },
|
|
122
118
|
mainJsPath: "/packages/test-server/dist/main.js",
|
|
123
119
|
});
|
|
124
120
|
|
|
@@ -126,9 +122,8 @@ describe("ServerEsbuildEngine", () => {
|
|
|
126
122
|
const result = await engine.run({ js: true, dts: false });
|
|
127
123
|
|
|
128
124
|
expect(result.success).toBe(false);
|
|
129
|
-
expect(result.
|
|
130
|
-
expect(result.
|
|
131
|
-
expect(result.dts.success).toBe(true);
|
|
125
|
+
expect(result.build.success).toBe(false);
|
|
126
|
+
expect(result.build.errors).toEqual(["esbuild error"]);
|
|
132
127
|
await engine.stop();
|
|
133
128
|
});
|
|
134
129
|
});
|
|
@@ -141,8 +136,7 @@ describe("ServerEsbuildEngine", () => {
|
|
|
141
136
|
(call: any[]) => call[0] === "build",
|
|
142
137
|
)?.[1];
|
|
143
138
|
buildHandler?.({
|
|
144
|
-
|
|
145
|
-
dts: { success: true },
|
|
139
|
+
build: { success: true },
|
|
146
140
|
mainJsPath: "/packages/test-server/dist/main.js",
|
|
147
141
|
});
|
|
148
142
|
});
|
|
@@ -158,7 +152,7 @@ describe("ServerEsbuildEngine", () => {
|
|
|
158
152
|
});
|
|
159
153
|
|
|
160
154
|
// Acceptance: reports to ResultCollector
|
|
161
|
-
it("reports build
|
|
155
|
+
it("reports build result to ResultCollector", async () => {
|
|
162
156
|
const mockResultCollector = { add: vi.fn() };
|
|
163
157
|
|
|
164
158
|
mockWorker.startWatch.mockImplementation(() => {
|
|
@@ -166,8 +160,7 @@ describe("ServerEsbuildEngine", () => {
|
|
|
166
160
|
(call: any[]) => call[0] === "build",
|
|
167
161
|
)?.[1];
|
|
168
162
|
buildHandler?.({
|
|
169
|
-
|
|
170
|
-
dts: { success: false, errors: ["type error"] },
|
|
163
|
+
build: { success: false, errors: ["type error"] },
|
|
171
164
|
mainJsPath: "/packages/test-server/dist/main.js",
|
|
172
165
|
});
|
|
173
166
|
});
|
|
@@ -182,12 +175,9 @@ describe("ServerEsbuildEngine", () => {
|
|
|
182
175
|
|
|
183
176
|
const addCalls = mockResultCollector.add.mock.calls;
|
|
184
177
|
const buildResult = addCalls.find((c: any[]) => c[0].type === "build");
|
|
185
|
-
const dtsResult = addCalls.find((c: any[]) => c[0].type === "dts");
|
|
186
178
|
|
|
187
179
|
expect(buildResult).toBeDefined();
|
|
188
|
-
expect(buildResult![0].status).toBe("
|
|
189
|
-
expect(dtsResult).toBeDefined();
|
|
190
|
-
expect(dtsResult![0].status).toBe("error");
|
|
180
|
+
expect(buildResult![0].status).toBe("error");
|
|
191
181
|
|
|
192
182
|
await engine.stop();
|
|
193
183
|
});
|
|
@@ -199,8 +189,7 @@ describe("ServerEsbuildEngine", () => {
|
|
|
199
189
|
(call: any[]) => call[0] === "build",
|
|
200
190
|
)?.[1];
|
|
201
191
|
buildHandler?.({
|
|
202
|
-
|
|
203
|
-
dts: { success: true },
|
|
192
|
+
build: { success: true },
|
|
204
193
|
mainJsPath: "/packages/test-server/dist/main.js",
|
|
205
194
|
});
|
|
206
195
|
});
|
|
@@ -228,7 +217,7 @@ describe("ServerEsbuildEngine", () => {
|
|
|
228
217
|
const buildHandler = mockWorker.on.mock.calls.find(
|
|
229
218
|
(call: any[]) => call[0] === "build",
|
|
230
219
|
)?.[1];
|
|
231
|
-
buildHandler?.({
|
|
220
|
+
buildHandler?.({ build: { success: true }, mainJsPath: "x" });
|
|
232
221
|
});
|
|
233
222
|
|
|
234
223
|
const engine = new ServerEsbuildEngine({ cwd: "/root", pkg: createMockPkg() });
|
|
@@ -45,8 +45,7 @@ function createMockPkg(overrides: Partial<BuildPackageInfo> = {}): BuildPackageI
|
|
|
45
45
|
|
|
46
46
|
function setupDefaultBuildResult(): void {
|
|
47
47
|
mockWorker.build.mockResolvedValue({
|
|
48
|
-
|
|
49
|
-
dts: { success: true, errors: undefined, diagnostics: [] },
|
|
48
|
+
build: { success: true, errors: undefined, warnings: undefined, diagnostics: [] },
|
|
50
49
|
});
|
|
51
50
|
mockWorker.terminate.mockResolvedValue(undefined);
|
|
52
51
|
mockWorker.stopWatch.mockResolvedValue(undefined);
|
|
@@ -77,37 +76,34 @@ describe("TscEngine", () => {
|
|
|
77
76
|
}),
|
|
78
77
|
);
|
|
79
78
|
expect(result.success).toBe(true);
|
|
80
|
-
expect(result.
|
|
81
|
-
expect(result.dts.success).toBe(true);
|
|
79
|
+
expect(result.build.success).toBe(true);
|
|
82
80
|
await engine.stop();
|
|
83
81
|
});
|
|
84
82
|
|
|
85
|
-
it("maps worker result to EngineResult with
|
|
83
|
+
it("maps worker result to EngineResult with build field", async () => {
|
|
86
84
|
mockWorker.build.mockResolvedValue({
|
|
87
|
-
|
|
88
|
-
dts: { success: true, errors: undefined, diagnostics: [{ code: 1, category: 0 }] },
|
|
85
|
+
build: { success: true, errors: undefined, warnings: ["warn1"], diagnostics: [{ code: 1, category: 0 }] },
|
|
89
86
|
});
|
|
90
87
|
|
|
91
88
|
const engine = new TscEngine({ cwd: "/root", pkg: createMockPkg() });
|
|
92
89
|
const result = await engine.run({ js: true, dts: true });
|
|
93
90
|
|
|
94
|
-
expect(result.
|
|
95
|
-
expect(result.
|
|
91
|
+
expect(result.build.warnings).toEqual(["warn1"]);
|
|
92
|
+
expect(result.build.diagnostics).toEqual([{ code: 1, category: 0 }]);
|
|
96
93
|
await engine.stop();
|
|
97
94
|
});
|
|
98
95
|
|
|
99
96
|
it("reflects failure when tsc reports errors", async () => {
|
|
100
97
|
mockWorker.build.mockResolvedValue({
|
|
101
|
-
|
|
102
|
-
dts: { success: false, errors: ["type error"], diagnostics: [{ code: 2322, category: 1 }] },
|
|
98
|
+
build: { success: false, errors: ["type error"], warnings: undefined, diagnostics: [{ code: 2322, category: 1 }] },
|
|
103
99
|
});
|
|
104
100
|
|
|
105
101
|
const engine = new TscEngine({ cwd: "/root", pkg: createMockPkg() });
|
|
106
102
|
const result = await engine.run({ js: true, dts: true });
|
|
107
103
|
|
|
108
104
|
expect(result.success).toBe(false);
|
|
109
|
-
expect(result.
|
|
110
|
-
expect(result.
|
|
105
|
+
expect(result.build.errors).toEqual(["type error"]);
|
|
106
|
+
expect(result.build.diagnostics).toHaveLength(1);
|
|
111
107
|
await engine.stop();
|
|
112
108
|
});
|
|
113
109
|
|
|
@@ -129,8 +125,7 @@ describe("TscEngine", () => {
|
|
|
129
125
|
(call: any[]) => call[0] === "build",
|
|
130
126
|
)?.[1];
|
|
131
127
|
buildHandler?.({
|
|
132
|
-
|
|
133
|
-
dts: { success: true },
|
|
128
|
+
build: { success: true },
|
|
134
129
|
});
|
|
135
130
|
});
|
|
136
131
|
|
|
@@ -144,7 +139,7 @@ describe("TscEngine", () => {
|
|
|
144
139
|
await engine.stop();
|
|
145
140
|
});
|
|
146
141
|
|
|
147
|
-
it("reports build
|
|
142
|
+
it("reports build result to ResultCollector", async () => {
|
|
148
143
|
const mockResultCollector = { add: vi.fn() };
|
|
149
144
|
|
|
150
145
|
mockWorker.startWatch.mockImplementation(() => {
|
|
@@ -152,8 +147,7 @@ describe("TscEngine", () => {
|
|
|
152
147
|
(call: any[]) => call[0] === "build",
|
|
153
148
|
)?.[1];
|
|
154
149
|
buildHandler?.({
|
|
155
|
-
|
|
156
|
-
dts: { success: false, errors: ["type error"] },
|
|
150
|
+
build: { success: false, errors: ["type error"] },
|
|
157
151
|
});
|
|
158
152
|
});
|
|
159
153
|
|
|
@@ -167,12 +161,9 @@ describe("TscEngine", () => {
|
|
|
167
161
|
|
|
168
162
|
const addCalls = mockResultCollector.add.mock.calls;
|
|
169
163
|
const buildResult = addCalls.find((c: any[]) => c[0].type === "build");
|
|
170
|
-
const dtsResult = addCalls.find((c: any[]) => c[0].type === "dts");
|
|
171
164
|
|
|
172
165
|
expect(buildResult).toBeDefined();
|
|
173
|
-
expect(buildResult![0].status).toBe("
|
|
174
|
-
expect(dtsResult).toBeDefined();
|
|
175
|
-
expect(dtsResult![0].status).toBe("error");
|
|
166
|
+
expect(buildResult![0].status).toBe("error");
|
|
176
167
|
|
|
177
168
|
await engine.stop();
|
|
178
169
|
});
|
|
@@ -185,7 +176,7 @@ describe("TscEngine", () => {
|
|
|
185
176
|
const buildHandler = mockWorker.on.mock.calls.find(
|
|
186
177
|
(call: any[]) => call[0] === "build",
|
|
187
178
|
)?.[1];
|
|
188
|
-
buildHandler?.({
|
|
179
|
+
buildHandler?.({ build: { success: true } });
|
|
189
180
|
});
|
|
190
181
|
|
|
191
182
|
const engine = new TscEngine({ cwd: "/root", pkg: createMockPkg() });
|
|
@@ -75,10 +75,9 @@ describe("ViteEngine", () => {
|
|
|
75
75
|
}),
|
|
76
76
|
);
|
|
77
77
|
expect(result.success).toBe(true);
|
|
78
|
-
expect(result.
|
|
79
|
-
expect(result.
|
|
80
|
-
expect(result.
|
|
81
|
-
expect(result.dts.diagnostics).toEqual([]);
|
|
78
|
+
expect(result.build.success).toBe(true);
|
|
79
|
+
expect(result.build.errors).toEqual([]);
|
|
80
|
+
expect(result.build.diagnostics).toEqual([]);
|
|
82
81
|
await engine.stop();
|
|
83
82
|
});
|
|
84
83
|
|
|
@@ -93,8 +92,8 @@ describe("ViteEngine", () => {
|
|
|
93
92
|
const result = await engine.run({ js: true, dts: false });
|
|
94
93
|
|
|
95
94
|
expect(result.success).toBe(false);
|
|
96
|
-
expect(result.
|
|
97
|
-
expect(result.
|
|
95
|
+
expect(result.build.success).toBe(false);
|
|
96
|
+
expect(result.build.errors).toContain("TS2345: Argument of type...");
|
|
98
97
|
await engine.stop();
|
|
99
98
|
});
|
|
100
99
|
|
|
@@ -108,7 +107,7 @@ describe("ViteEngine", () => {
|
|
|
108
107
|
const engine = new ViteEngine({ cwd: "/root", pkg: createMockPkg() });
|
|
109
108
|
const result = await engine.run({ js: true, dts: false });
|
|
110
109
|
|
|
111
|
-
expect(result.
|
|
110
|
+
expect(result.build.warnings).toEqual(["deprecation warning"]);
|
|
112
111
|
await engine.stop();
|
|
113
112
|
});
|
|
114
113
|
|
|
@@ -192,8 +191,8 @@ describe("ViteEngine", () => {
|
|
|
192
191
|
await engine.stop();
|
|
193
192
|
});
|
|
194
193
|
|
|
195
|
-
// Unit:
|
|
196
|
-
it("
|
|
194
|
+
// Unit: build failure reflects in result
|
|
195
|
+
it("reflects build failure in result", async () => {
|
|
197
196
|
mockWorker.build.mockResolvedValue({
|
|
198
197
|
success: false,
|
|
199
198
|
errors: ["error"],
|
|
@@ -202,8 +201,7 @@ describe("ViteEngine", () => {
|
|
|
202
201
|
const engine = new ViteEngine({ cwd: "/root", pkg: createMockPkg() });
|
|
203
202
|
const result = await engine.run({ js: true, dts: false });
|
|
204
203
|
|
|
205
|
-
expect(result.
|
|
206
|
-
expect(result.dts.diagnostics).toEqual([]);
|
|
204
|
+
expect(result.build.success).toBe(false);
|
|
207
205
|
await engine.stop();
|
|
208
206
|
});
|
|
209
207
|
});
|
|
@@ -268,7 +266,7 @@ describe("ViteEngine", () => {
|
|
|
268
266
|
});
|
|
269
267
|
|
|
270
268
|
// Acceptance: Scenario "ResultCollector에 결과 보고"
|
|
271
|
-
it("reports build
|
|
269
|
+
it("reports build result to ResultCollector", async () => {
|
|
272
270
|
const mockResultCollector = { add: vi.fn() };
|
|
273
271
|
|
|
274
272
|
mockWorker.startWatch.mockResolvedValue({ success: true });
|
|
@@ -283,12 +281,9 @@ describe("ViteEngine", () => {
|
|
|
283
281
|
|
|
284
282
|
const addCalls = mockResultCollector.add.mock.calls;
|
|
285
283
|
const buildResult = addCalls.find((c: any[]) => c[0].type === "build");
|
|
286
|
-
const dtsResult = addCalls.find((c: any[]) => c[0].type === "dts");
|
|
287
284
|
|
|
288
285
|
expect(buildResult).toBeDefined();
|
|
289
286
|
expect(buildResult![0].status).toBe("success");
|
|
290
|
-
expect(dtsResult).toBeDefined();
|
|
291
|
-
expect(dtsResult![0].status).toBe("success");
|
|
292
287
|
|
|
293
288
|
await engine.stop();
|
|
294
289
|
});
|
|
@@ -23,12 +23,12 @@ describe("ResultCollector", () => {
|
|
|
23
23
|
it("returns all results via toMap", () => {
|
|
24
24
|
const collector = new ResultCollector();
|
|
25
25
|
collector.add({ name: "core", target: "node", type: "build", status: "success" });
|
|
26
|
-
collector.add({ name: "core", target: "node", type: "
|
|
26
|
+
collector.add({ name: "core", target: "node", type: "lint", status: "building" });
|
|
27
27
|
|
|
28
28
|
const map = collector.toMap();
|
|
29
29
|
expect(map.size).toBe(2);
|
|
30
30
|
expect(map.has("core:build")).toBe(true);
|
|
31
|
-
expect(map.has("core:
|
|
31
|
+
expect(map.has("core:lint")).toBe(true);
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
it("returns undefined for non-existent key", () => {
|
|
@@ -51,6 +51,9 @@ vi.mock("@simplysm/core-node", () => ({
|
|
|
51
51
|
fsx: {
|
|
52
52
|
rm: vi.fn().mockResolvedValue(undefined),
|
|
53
53
|
},
|
|
54
|
+
pathx: {
|
|
55
|
+
posixResolve: vi.fn((...args: string[]) => args.join("/").replace(/\\/g, "/")),
|
|
56
|
+
},
|
|
54
57
|
}));
|
|
55
58
|
|
|
56
59
|
const mockEngines: Array<{
|
|
@@ -64,8 +67,7 @@ vi.mock("../../src/engines/index", () => ({
|
|
|
64
67
|
const engine = {
|
|
65
68
|
run: vi.fn().mockResolvedValue({
|
|
66
69
|
success: true,
|
|
67
|
-
|
|
68
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
70
|
+
build: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
69
71
|
}),
|
|
70
72
|
startWatch: vi.fn().mockResolvedValue(undefined),
|
|
71
73
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -158,8 +160,7 @@ beforeEach(() => {
|
|
|
158
160
|
const engine = {
|
|
159
161
|
run: vi.fn().mockResolvedValue({
|
|
160
162
|
success: true,
|
|
161
|
-
|
|
162
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
163
|
+
build: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
163
164
|
|
|
164
165
|
}),
|
|
165
166
|
startWatch: vi.fn().mockResolvedValue(undefined),
|
|
@@ -413,8 +414,7 @@ describe("BuildOrchestrator.start", () => {
|
|
|
413
414
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
414
415
|
run: vi.fn().mockResolvedValue({
|
|
415
416
|
success: false,
|
|
416
|
-
|
|
417
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
417
|
+
build: { success: false, errors: ["Module not found"], warnings: [], diagnostics: [] },
|
|
418
418
|
}),
|
|
419
419
|
startWatch: vi.fn(),
|
|
420
420
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -464,8 +464,7 @@ describe("BuildOrchestrator.start", () => {
|
|
|
464
464
|
active--;
|
|
465
465
|
return {
|
|
466
466
|
success: true,
|
|
467
|
-
|
|
468
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
467
|
+
build: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
469
468
|
};
|
|
470
469
|
}),
|
|
471
470
|
startWatch: vi.fn(),
|
|
@@ -498,8 +497,7 @@ describe("BuildOrchestrator.start", () => {
|
|
|
498
497
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
499
498
|
run: vi.fn().mockResolvedValue({
|
|
500
499
|
success: true,
|
|
501
|
-
|
|
502
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
500
|
+
build: { success: true, errors: [], warnings: ["Unused variable"], diagnostics: [] },
|
|
503
501
|
}),
|
|
504
502
|
startWatch: vi.fn(),
|
|
505
503
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -606,8 +604,7 @@ describe("BuildOrchestrator client build", () => {
|
|
|
606
604
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
607
605
|
run: vi.fn().mockResolvedValue({
|
|
608
606
|
success: true,
|
|
609
|
-
|
|
610
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
607
|
+
build: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
611
608
|
}),
|
|
612
609
|
startWatch: vi.fn(),
|
|
613
610
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -641,8 +638,7 @@ describe("BuildOrchestrator client build", () => {
|
|
|
641
638
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
642
639
|
run: vi.fn().mockResolvedValue({
|
|
643
640
|
success: false,
|
|
644
|
-
|
|
645
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
641
|
+
build: { success: false, errors: ["Template error"], warnings: [], diagnostics: [] },
|
|
646
642
|
}),
|
|
647
643
|
startWatch: vi.fn(),
|
|
648
644
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -962,8 +958,7 @@ describe("BuildOrchestrator native build integration (Slice 1)", () => {
|
|
|
962
958
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
963
959
|
run: vi.fn().mockResolvedValue({
|
|
964
960
|
success: false,
|
|
965
|
-
|
|
966
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
961
|
+
build: { success: false, errors: ["Build error"], warnings: [], diagnostics: [] },
|
|
967
962
|
}),
|
|
968
963
|
startWatch: vi.fn(),
|
|
969
964
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -1032,8 +1027,7 @@ describe("BuildOrchestrator lint integration", () => {
|
|
|
1032
1027
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
1033
1028
|
run: vi.fn().mockResolvedValue({
|
|
1034
1029
|
success: true,
|
|
1035
|
-
|
|
1036
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
1030
|
+
build: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
1037
1031
|
lint: { success: false, errorCount: 3, warningCount: 0, formattedOutput: "lint errors here" },
|
|
1038
1032
|
}),
|
|
1039
1033
|
startWatch: vi.fn(),
|
|
@@ -1080,8 +1074,7 @@ describe("Feature 2.1: build에서 lint 에러가 'lint' 라벨로 출력", () =
|
|
|
1080
1074
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
1081
1075
|
run: vi.fn().mockResolvedValue({
|
|
1082
1076
|
success: true,
|
|
1083
|
-
|
|
1084
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
1077
|
+
build: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
1085
1078
|
lint: { success: false, errorCount: 1, warningCount: 0, formattedOutput: "no-unused-vars" },
|
|
1086
1079
|
}),
|
|
1087
1080
|
startWatch: vi.fn(),
|
|
@@ -1109,8 +1102,7 @@ describe("Feature 2.1: build에서 lint 에러가 'lint' 라벨로 출력", () =
|
|
|
1109
1102
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
1110
1103
|
run: vi.fn().mockResolvedValue({
|
|
1111
1104
|
success: false,
|
|
1112
|
-
|
|
1113
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
1105
|
+
build: { success: false, errors: ["Module not found"], warnings: [], diagnostics: [] },
|
|
1114
1106
|
}),
|
|
1115
1107
|
startWatch: vi.fn(),
|
|
1116
1108
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -1126,7 +1118,7 @@ describe("Feature 2.1: build에서 lint 에러가 'lint' 라벨로 출력", () =
|
|
|
1126
1118
|
expect(jsCall).toBeDefined();
|
|
1127
1119
|
});
|
|
1128
1120
|
|
|
1129
|
-
it("build에서
|
|
1121
|
+
it("build에서 빌드 에러는 target 라벨 유지", async () => {
|
|
1130
1122
|
setupDefaults({
|
|
1131
1123
|
packages: {
|
|
1132
1124
|
"core-common": { target: "neutral", publish: { type: "npm" } },
|
|
@@ -1135,8 +1127,7 @@ describe("Feature 2.1: build에서 lint 에러가 'lint' 라벨로 출력", () =
|
|
|
1135
1127
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
1136
1128
|
run: vi.fn().mockResolvedValue({
|
|
1137
1129
|
success: false,
|
|
1138
|
-
|
|
1139
|
-
dts: { success: false, errors: ["Type error"], warnings: [], diagnostics: [] },
|
|
1130
|
+
build: { success: false, errors: ["Type error"], warnings: [], diagnostics: [] },
|
|
1140
1131
|
}),
|
|
1141
1132
|
startWatch: vi.fn(),
|
|
1142
1133
|
stop: vi.fn().mockResolvedValue(undefined),
|
|
@@ -1148,8 +1139,8 @@ describe("Feature 2.1: build에서 lint 에러가 'lint' 라벨로 출력", () =
|
|
|
1148
1139
|
|
|
1149
1140
|
const { formatBuildMessages } = await import("../../src/utils/output-utils");
|
|
1150
1141
|
const fmtCalls = vi.mocked(formatBuildMessages).mock.calls;
|
|
1151
|
-
const
|
|
1152
|
-
expect(
|
|
1142
|
+
const buildCall = fmtCalls.find((c) => c[1] === "neutral");
|
|
1143
|
+
expect(buildCall).toBeDefined();
|
|
1153
1144
|
});
|
|
1154
1145
|
|
|
1155
1146
|
it("build에서 lint 성공 시 에러 출력 없음", async () => {
|
|
@@ -1161,8 +1152,7 @@ describe("Feature 2.1: build에서 lint 에러가 'lint' 라벨로 출력", () =
|
|
|
1161
1152
|
vi.mocked(createBuildEngine).mockReturnValue({
|
|
1162
1153
|
run: vi.fn().mockResolvedValue({
|
|
1163
1154
|
success: true,
|
|
1164
|
-
|
|
1165
|
-
dts: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
1155
|
+
build: { success: true, errors: [], warnings: [], diagnostics: [] },
|
|
1166
1156
|
lint: { success: true, errorCount: 0, warningCount: 0, formattedOutput: "" },
|
|
1167
1157
|
}),
|
|
1168
1158
|
startWatch: vi.fn(),
|