@simplysm/sd-cli 14.0.10 → 14.0.12
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/README.md +58 -253
- package/dist/angular/client-transform-stylesheet.js +1 -1
- package/dist/angular/client-transform-stylesheet.js.map +1 -1
- package/dist/angular/vite-angular-plugin.d.ts +1 -1
- package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
- package/dist/angular/vite-angular-plugin.js +60 -34
- package/dist/angular/vite-angular-plugin.js.map +1 -1
- package/dist/angular/vite-postcss-inline-plugin.d.ts +1 -1
- package/dist/angular/vite-postcss-inline-plugin.js +1 -1
- package/dist/capacitor/capacitor.d.ts +14 -2
- package/dist/capacitor/capacitor.d.ts.map +1 -1
- package/dist/capacitor/capacitor.js +131 -17
- package/dist/capacitor/capacitor.js.map +1 -1
- package/dist/commands/build.d.ts +3 -10
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +3 -10
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/check.js +3 -3
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/dev.d.ts +3 -9
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +3 -9
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/device.d.ts +13 -0
- package/dist/commands/device.d.ts.map +1 -0
- package/dist/commands/device.js +53 -0
- package/dist/commands/device.js.map +1 -0
- package/dist/commands/publish.d.ts +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +18 -26
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/replace-deps.d.ts +3 -3
- package/dist/commands/replace-deps.d.ts.map +1 -1
- package/dist/commands/replace-deps.js +1 -1
- package/dist/commands/typecheck.d.ts +4 -3
- package/dist/commands/typecheck.d.ts.map +1 -1
- package/dist/commands/typecheck.js +5 -11
- package/dist/commands/typecheck.js.map +1 -1
- package/dist/commands/watch.d.ts +9 -9
- package/dist/commands/watch.js +9 -9
- package/dist/electron/electron.d.ts.map +1 -1
- package/dist/electron/electron.js +42 -3
- package/dist/electron/electron.js.map +1 -1
- package/dist/engines/BaseEngine.d.ts +1 -1
- package/dist/engines/BaseEngine.d.ts.map +1 -1
- package/dist/engines/BaseEngine.js +3 -1
- package/dist/engines/BaseEngine.js.map +1 -1
- package/dist/engines/NgtscEngine.d.ts +7 -7
- package/dist/engines/NgtscEngine.d.ts.map +1 -1
- package/dist/engines/NgtscEngine.js +3 -3
- package/dist/engines/ServerEsbuildEngine.d.ts +7 -7
- package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
- package/dist/engines/ServerEsbuildEngine.js +3 -3
- package/dist/engines/TscEngine.d.ts +7 -7
- package/dist/engines/TscEngine.d.ts.map +1 -1
- package/dist/engines/TscEngine.js +3 -3
- package/dist/engines/ViteEngine.d.ts +1 -1
- package/dist/engines/ViteEngine.d.ts.map +1 -1
- package/dist/engines/ViteEngine.js +7 -12
- package/dist/engines/ViteEngine.js.map +1 -1
- package/dist/engines/index.d.ts +5 -5
- package/dist/engines/index.js +5 -5
- package/dist/engines/types.d.ts +20 -20
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/infra/ResultCollector.d.ts +9 -9
- package/dist/infra/ResultCollector.js +8 -8
- package/dist/infra/SignalHandler.d.ts +7 -7
- package/dist/infra/SignalHandler.js +7 -7
- package/dist/infra/WorkerManager.d.ts +14 -14
- package/dist/infra/WorkerManager.js +14 -14
- package/dist/orchestrators/BuildOrchestrator.d.ts +25 -25
- package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.js +29 -29
- package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
- package/dist/orchestrators/DevWatchOrchestrator.d.ts +7 -7
- package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/DevWatchOrchestrator.js +35 -57
- package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -1
- package/dist/sd-cli-entry.d.ts +2 -2
- package/dist/sd-cli-entry.d.ts.map +1 -1
- package/dist/sd-cli-entry.js +45 -9
- package/dist/sd-cli-entry.js.map +1 -1
- package/dist/sd-cli.d.ts +3 -3
- package/dist/sd-cli.js +16 -16
- package/dist/sd-cli.js.map +1 -1
- package/dist/sd-config.types.d.ts +105 -105
- package/dist/sd-config.types.d.ts.map +1 -1
- package/dist/utils/angular-compiler.js +5 -5
- package/dist/utils/angular-compiler.js.map +1 -1
- package/dist/utils/build-env.d.ts +1 -1
- package/dist/utils/build-env.js +1 -1
- package/dist/utils/concurrency.d.ts +7 -7
- package/dist/utils/concurrency.js +7 -7
- package/dist/utils/copy-public.d.ts +9 -9
- package/dist/utils/copy-public.js +17 -17
- package/dist/utils/copy-public.js.map +1 -1
- package/dist/utils/copy-src.d.ts +9 -9
- package/dist/utils/copy-src.js +11 -11
- package/dist/utils/copy-src.js.map +1 -1
- package/dist/utils/engine-stop.d.ts +8 -9
- package/dist/utils/engine-stop.d.ts.map +1 -1
- package/dist/utils/engine-stop.js +9 -10
- package/dist/utils/engine-stop.js.map +1 -1
- package/dist/utils/esbuild-config.d.ts +23 -23
- package/dist/utils/esbuild-config.d.ts.map +1 -1
- package/dist/utils/esbuild-config.js +25 -25
- package/dist/utils/esbuild-config.js.map +1 -1
- package/dist/utils/lint-with-program.d.ts +15 -15
- package/dist/utils/lint-with-program.d.ts.map +1 -1
- package/dist/utils/lint-with-program.js +29 -29
- package/dist/utils/lint-with-program.js.map +1 -1
- package/dist/utils/ngtsc-build-core.d.ts +8 -8
- package/dist/utils/ngtsc-build-core.d.ts.map +1 -1
- package/dist/utils/ngtsc-build-core.js +14 -14
- package/dist/utils/ngtsc-build-core.js.map +1 -1
- package/dist/utils/output-path-rewriter.d.ts +14 -14
- package/dist/utils/output-path-rewriter.js +18 -18
- package/dist/utils/output-path-rewriter.js.map +1 -1
- package/dist/utils/output-utils.d.ts +6 -6
- package/dist/utils/output-utils.js +11 -11
- package/dist/utils/output-utils.js.map +1 -1
- package/dist/utils/package-utils.d.ts +21 -21
- package/dist/utils/package-utils.d.ts.map +1 -1
- package/dist/utils/package-utils.js +56 -45
- package/dist/utils/package-utils.js.map +1 -1
- package/dist/utils/replace-deps.d.ts +25 -25
- package/dist/utils/replace-deps.d.ts.map +1 -1
- package/dist/utils/replace-deps.js +84 -65
- package/dist/utils/replace-deps.js.map +1 -1
- package/dist/utils/sd-config.d.ts +3 -3
- package/dist/utils/sd-config.js +3 -3
- package/dist/utils/tsc-build.d.ts +13 -13
- package/dist/utils/tsc-build.d.ts.map +1 -1
- package/dist/utils/tsc-build.js +9 -9
- package/dist/utils/tsc-build.js.map +1 -1
- package/dist/utils/tsconfig.d.ts +11 -9
- package/dist/utils/tsconfig.d.ts.map +1 -1
- package/dist/utils/tsconfig.js +11 -9
- package/dist/utils/tsconfig.js.map +1 -1
- package/dist/utils/typecheck-non-package.d.ts +5 -6
- package/dist/utils/typecheck-non-package.d.ts.map +1 -1
- package/dist/utils/typecheck-non-package.js +7 -8
- package/dist/utils/typecheck-non-package.js.map +1 -1
- package/dist/utils/typecheck-serialization.d.ts +8 -8
- package/dist/utils/typecheck-serialization.d.ts.map +1 -1
- package/dist/utils/typecheck-serialization.js +12 -16
- package/dist/utils/typecheck-serialization.js.map +1 -1
- package/dist/utils/vite-config.d.ts +8 -5
- package/dist/utils/vite-config.d.ts.map +1 -1
- package/dist/utils/vite-config.js +36 -29
- 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 +1 -1
- package/dist/utils/vite-scope-watch-plugin.js.map +1 -1
- package/dist/utils/worker-events.d.ts +12 -12
- package/dist/utils/worker-events.d.ts.map +1 -1
- package/dist/utils/worker-events.js +10 -10
- package/dist/utils/worker-events.js.map +1 -1
- package/dist/utils/worker-utils.d.ts +12 -13
- package/dist/utils/worker-utils.d.ts.map +1 -1
- package/dist/utils/worker-utils.js +12 -13
- package/dist/utils/worker-utils.js.map +1 -1
- package/dist/vitest-plugin.d.ts.map +1 -1
- package/dist/vitest-plugin.js +5 -7
- package/dist/vitest-plugin.js.map +1 -1
- package/dist/workers/client.worker.d.ts +4 -2
- package/dist/workers/client.worker.d.ts.map +1 -1
- package/dist/workers/client.worker.js +209 -1
- package/dist/workers/client.worker.js.map +1 -1
- package/dist/workers/library-build.worker.d.ts +1 -1
- package/dist/workers/library-build.worker.d.ts.map +1 -1
- package/dist/workers/library-build.worker.js +7 -7
- package/dist/workers/library-build.worker.js.map +1 -1
- package/dist/workers/lint.worker.d.ts +2 -2
- package/dist/workers/lint.worker.js +2 -2
- package/dist/workers/ngtsc-build.worker.js +30 -30
- package/dist/workers/ngtsc-build.worker.js.map +1 -1
- package/dist/workers/server-build.worker.d.ts +17 -17
- package/dist/workers/server-build.worker.d.ts.map +1 -1
- package/dist/workers/server-build.worker.js +46 -46
- package/dist/workers/server-build.worker.js.map +1 -1
- package/dist/workers/server-runtime.worker.d.ts +7 -7
- package/dist/workers/server-runtime.worker.d.ts.map +1 -1
- package/dist/workers/server-runtime.worker.js +17 -17
- package/dist/workers/server-runtime.worker.js.map +1 -1
- package/docs/config.md +340 -0
- package/docs/publish-configuration-types.md +87 -0
- package/docs/pwa-configuration-types.md +55 -0
- package/docs/vitest-plugin.md +47 -0
- package/package.json +9 -7
- package/src/angular/client-transform-stylesheet.ts +1 -1
- package/src/angular/vite-angular-plugin.ts +70 -37
- package/src/angular/vite-postcss-inline-plugin.ts +1 -1
- package/src/capacitor/capacitor.ts +159 -23
- package/src/commands/build.ts +3 -10
- package/src/commands/check.ts +3 -3
- package/src/commands/dev.ts +3 -9
- package/src/commands/device.ts +65 -0
- package/src/commands/publish.ts +30 -26
- package/src/commands/replace-deps.ts +3 -3
- package/src/commands/typecheck.ts +7 -13
- package/src/commands/watch.ts +9 -9
- package/src/electron/electron.ts +49 -4
- package/src/engines/BaseEngine.ts +4 -1
- package/src/engines/NgtscEngine.ts +7 -7
- package/src/engines/ServerEsbuildEngine.ts +7 -7
- package/src/engines/TscEngine.ts +7 -7
- package/src/engines/ViteEngine.ts +8 -13
- package/src/engines/index.ts +5 -5
- package/src/engines/types.ts +20 -20
- package/src/infra/ResultCollector.ts +9 -9
- package/src/infra/SignalHandler.ts +7 -7
- package/src/infra/WorkerManager.ts +14 -14
- package/src/orchestrators/BuildOrchestrator.ts +37 -37
- package/src/orchestrators/DevWatchOrchestrator.ts +37 -61
- package/src/sd-cli-entry.ts +51 -9
- package/src/sd-cli.ts +16 -16
- package/src/sd-config.types.ts +107 -107
- package/src/utils/angular-compiler.ts +5 -5
- package/src/utils/build-env.ts +1 -1
- package/src/utils/concurrency.ts +7 -7
- package/src/utils/copy-public.ts +17 -17
- package/src/utils/copy-src.ts +11 -11
- package/src/utils/engine-stop.ts +9 -10
- package/src/utils/esbuild-config.ts +29 -29
- package/src/utils/lint-with-program.ts +34 -34
- package/src/utils/ngtsc-build-core.ts +17 -17
- package/src/utils/output-path-rewriter.ts +18 -18
- package/src/utils/output-utils.ts +11 -11
- package/src/utils/package-utils.ts +57 -45
- package/src/utils/replace-deps.ts +92 -67
- package/src/utils/sd-config.ts +3 -3
- package/src/utils/tsc-build.ts +18 -18
- package/src/utils/tsconfig.ts +11 -9
- package/src/utils/typecheck-non-package.ts +7 -8
- package/src/utils/typecheck-serialization.ts +13 -15
- package/src/utils/vite-config.ts +45 -35
- package/src/utils/vite-scope-watch-plugin.ts +6 -1
- package/src/utils/worker-events.ts +16 -16
- package/src/utils/worker-utils.ts +12 -13
- package/src/vitest-plugin.ts +5 -8
- package/src/workers/client.worker.ts +236 -2
- package/src/workers/library-build.worker.ts +8 -8
- package/src/workers/lint.worker.ts +2 -2
- package/src/workers/ngtsc-build.worker.ts +31 -31
- package/src/workers/server-build.worker.ts +60 -60
- package/src/workers/server-runtime.worker.ts +22 -22
- package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +1 -0
- package/tests/angular/vite-angular-plugin-hmr.spec.ts +78 -0
- package/tests/angular/vite-angular-plugin.spec.ts +67 -0
- package/tests/capacitor/capacitor-build.spec.ts +6 -4
- package/tests/capacitor/capacitor-icon.spec.ts +7 -5
- package/tests/capacitor/capacitor-init.spec.ts +120 -10
- package/tests/capacitor/capacitor-run.spec.ts +14 -17
- package/tests/capacitor/capacitor-workspace.spec.ts +5 -3
- package/tests/commands/check.spec.ts +2 -2
- package/tests/commands/device.spec.ts +147 -0
- package/tests/commands/publish.spec.ts +2 -2
- package/tests/commands/typecheck.spec.ts +8 -0
- package/tests/electron/electron.spec.ts +12 -10
- package/tests/engines/base-engine.spec.ts +37 -0
- package/tests/engines/vite-engine.spec.ts +115 -3
- package/tests/orchestrators/dev-watch-orchestrator.spec.ts +21 -93
- package/tests/utils/vite-config.spec.ts +144 -90
- package/tests/workers/client-worker.spec.ts +690 -0
- package/tests/workers/server-build-worker.spec.ts +3 -3
package/dist/engines/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { SerializedDiagnostic } from "../utils/typecheck-serialization";
|
|
|
3
3
|
import type { TypecheckEnv } from "../utils/tsconfig";
|
|
4
4
|
import type { LintWithProgramResult } from "../utils/lint-with-program";
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* 패키지 정보
|
|
7
7
|
*/
|
|
8
8
|
export interface PackageInfo {
|
|
9
9
|
name: string;
|
|
@@ -11,38 +11,38 @@ export interface PackageInfo {
|
|
|
11
11
|
config: SdPackageConfig;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* 빌드 패키지(node/browser/neutral)로 좁혀진 PackageInfo
|
|
15
15
|
*/
|
|
16
16
|
export type BuildPackageInfo = PackageInfo & {
|
|
17
17
|
config: SdBuildPackageConfig;
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* 서버 패키지로 좁혀진 PackageInfo
|
|
21
21
|
*/
|
|
22
22
|
export type ServerPackageInfo = PackageInfo & {
|
|
23
23
|
config: SdServerPackageConfig;
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* 클라이언트 패키지로 좁혀진 PackageInfo
|
|
27
27
|
*/
|
|
28
28
|
export type ClientPackageInfo = PackageInfo & {
|
|
29
29
|
config: SdClientPackageConfig;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* 빌드 출력 제어 플래그
|
|
33
33
|
*/
|
|
34
34
|
export interface BuildOutput {
|
|
35
35
|
js: boolean;
|
|
36
36
|
dts: boolean;
|
|
37
|
-
/**
|
|
37
|
+
/** true일 때, 타입체크 중 생성된 ts.Program으로 ESLint를 실행한다. */
|
|
38
38
|
lint?: boolean;
|
|
39
|
-
/**
|
|
39
|
+
/** 타입체크 환경. 설정 시 getCompilerOptionsForEnv()를 통해 compilerOptions를 조정한다. */
|
|
40
40
|
env?: TypecheckEnv;
|
|
41
|
-
/**
|
|
41
|
+
/** 타입체크 범위에 tests/ 파일을 포함한다. check 커맨드에서만 사용된다. */
|
|
42
42
|
includeTests?: boolean;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
* BuildEngine.run()
|
|
45
|
+
* BuildEngine.run() 반환값
|
|
46
46
|
*/
|
|
47
47
|
export interface EngineResult {
|
|
48
48
|
success: boolean;
|
|
@@ -52,30 +52,30 @@ export interface EngineResult {
|
|
|
52
52
|
warnings: string[];
|
|
53
53
|
diagnostics: SerializedDiagnostic[];
|
|
54
54
|
};
|
|
55
|
-
/**
|
|
55
|
+
/** 린트 결과 (BuildOutput.lint가 true일 때 존재) */
|
|
56
56
|
lint?: LintWithProgramResult;
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* 빌드 엔진 인터페이스
|
|
60
60
|
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
61
|
+
* 모든 빌드 엔진의 공통 계약.
|
|
62
|
+
* 타입체크(diagnostics)는 항상 포함되며 선택사항이 아니다.
|
|
63
63
|
*/
|
|
64
64
|
export interface BuildEngine {
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
66
|
+
* 일회성 빌드 (프로덕션)
|
|
67
|
+
* Worker를 생성하고, 빌드를 실행하고, 결합된 결과를 반환한다.
|
|
68
|
+
* 호출 후 stop()으로 리소스를 정리한다.
|
|
69
69
|
*/
|
|
70
70
|
run(output: BuildOutput): Promise<EngineResult>;
|
|
71
71
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
72
|
+
* 워치 모드 시작
|
|
73
|
+
* 초기 빌드가 완료되면 Promise가 resolve된다.
|
|
74
|
+
* 이후 리빌드는 주입된 ResultCollector를 통해 보고된다.
|
|
75
75
|
*/
|
|
76
76
|
startWatch(output: BuildOutput): Promise<void>;
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
78
|
+
* 엔진을 중지하고 리소스(Worker, esbuild context 등)를 정리한다
|
|
79
79
|
*/
|
|
80
80
|
stop(): Promise<void>;
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9H,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,eAAe,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9H,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,eAAe,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,qDAAqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,oBAAoB,EAAE,CAAC;KACrC,CAAC;IACF,2CAA2C;IAC3C,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhD;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 빌드 결과 상태
|
|
3
3
|
*/
|
|
4
4
|
export interface BuildResult {
|
|
5
5
|
name: string;
|
|
@@ -10,25 +10,25 @@ export interface BuildResult {
|
|
|
10
10
|
port?: number;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* 빌드 결과를 수집·관리하는 클래스
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* 여러 Builder의 빌드 결과를 중앙에서 관리하며,
|
|
16
|
+
* 상태별 필터링 및 출력 기능을 제공한다.
|
|
17
17
|
*/
|
|
18
18
|
export declare class ResultCollector {
|
|
19
19
|
private readonly _results;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* @param result
|
|
21
|
+
* 결과를 추가한다
|
|
22
|
+
* @param result 빌드 결과
|
|
23
23
|
*/
|
|
24
24
|
add(result: BuildResult): void;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
27
|
-
* @param key
|
|
26
|
+
* 키로 결과를 조회한다
|
|
27
|
+
* @param key 결과 키 (예: "core-common:build")
|
|
28
28
|
*/
|
|
29
29
|
get(key: string): BuildResult | undefined;
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* 내부 Map을 반환한다 (외부 접근용)
|
|
32
32
|
*/
|
|
33
33
|
toMap(): Map<string, BuildResult>;
|
|
34
34
|
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 빌드 결과를 수집·관리하는 클래스
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* 여러 Builder의 빌드 결과를 중앙에서 관리하며,
|
|
5
|
+
* 상태별 필터링 및 출력 기능을 제공한다.
|
|
6
6
|
*/
|
|
7
7
|
export class ResultCollector {
|
|
8
8
|
_results = new Map();
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @param result
|
|
10
|
+
* 결과를 추가한다
|
|
11
|
+
* @param result 빌드 결과
|
|
12
12
|
*/
|
|
13
13
|
add(result) {
|
|
14
14
|
const key = `${result.name}:${result.type}`;
|
|
15
15
|
this._results.set(key, result);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @param key
|
|
18
|
+
* 키로 결과를 조회한다
|
|
19
|
+
* @param key 결과 키 (예: "core-common:build")
|
|
20
20
|
*/
|
|
21
21
|
get(key) {
|
|
22
22
|
return this._results.get(key);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* 내부 Map을 반환한다 (외부 접근용)
|
|
26
26
|
*/
|
|
27
27
|
toMap() {
|
|
28
28
|
return this._results;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 프로세스 종료 시그널을 처리하는 클래스
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* SIGINT(Ctrl+C) 및 SIGTERM 시그널을 감지하고,
|
|
5
|
+
* 종료까지 대기하는 Promise를 제공한다.
|
|
6
6
|
*/
|
|
7
7
|
export declare class SignalHandler {
|
|
8
8
|
private _terminateResolver;
|
|
@@ -10,16 +10,16 @@ export declare class SignalHandler {
|
|
|
10
10
|
private _terminated;
|
|
11
11
|
constructor();
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* 종료 시그널이 수신될 때까지 대기한다
|
|
14
14
|
*/
|
|
15
15
|
waitForTermination(): Promise<void>;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* 종료 여부를 확인한다
|
|
18
18
|
*/
|
|
19
19
|
isTerminated(): boolean;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* (
|
|
21
|
+
* 프로그래밍 방식으로 종료를 요청한다
|
|
22
|
+
* (테스트나 외부에서 종료를 트리거할 때 사용)
|
|
23
23
|
*/
|
|
24
24
|
requestTermination(): void;
|
|
25
25
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 프로세스 종료 시그널을 처리하는 클래스
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* SIGINT(Ctrl+C) 및 SIGTERM 시그널을 감지하고,
|
|
5
|
+
* 종료까지 대기하는 Promise를 제공한다.
|
|
6
6
|
*/
|
|
7
7
|
export class SignalHandler {
|
|
8
8
|
_terminateResolver = null;
|
|
@@ -22,20 +22,20 @@ export class SignalHandler {
|
|
|
22
22
|
process.on("SIGTERM", handler);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* 종료 시그널이 수신될 때까지 대기한다
|
|
26
26
|
*/
|
|
27
27
|
waitForTermination() {
|
|
28
28
|
return this._terminatePromise;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* 종료 여부를 확인한다
|
|
32
32
|
*/
|
|
33
33
|
isTerminated() {
|
|
34
34
|
return this._terminated;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
38
|
-
* (
|
|
37
|
+
* 프로그래밍 방식으로 종료를 요청한다
|
|
38
|
+
* (테스트나 외부에서 종료를 트리거할 때 사용)
|
|
39
39
|
*/
|
|
40
40
|
requestTermination() {
|
|
41
41
|
if (!this._terminated) {
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
import { type WorkerProxy, type WorkerModule } from "@simplysm/core-node";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Worker 생명주기를 관리하는 클래스
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Worker 생성, 조회, 종료를 중앙에서 관리하여
|
|
6
|
+
* 리소스 누수를 방지하고 일관된 Worker 관리를 제공한다.
|
|
7
7
|
*/
|
|
8
8
|
export declare class WorkerManager {
|
|
9
9
|
private readonly _workers;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
* @param id Worker
|
|
13
|
-
* @param workerPath Worker
|
|
14
|
-
* @returns
|
|
11
|
+
* 새 Worker를 생성한다
|
|
12
|
+
* @param id Worker 식별자 (예: "core-common:build")
|
|
13
|
+
* @param workerPath Worker 파일 경로
|
|
14
|
+
* @returns 생성된 WorkerProxy
|
|
15
15
|
*/
|
|
16
16
|
create<TModule extends WorkerModule>(id: string, workerPath: string): WorkerProxy<TModule>;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @param id Worker
|
|
18
|
+
* ID로 Worker를 조회한다
|
|
19
|
+
* @param id Worker 식별자
|
|
20
20
|
*/
|
|
21
21
|
get<TModule extends WorkerModule>(id: string): WorkerProxy<TModule> | undefined;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
* @param id Worker
|
|
23
|
+
* 특정 Worker를 종료하고 제거한다
|
|
24
|
+
* @param id Worker 식별자
|
|
25
25
|
*/
|
|
26
26
|
terminate(id: string): Promise<void>;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* 모든 Worker를 종료한다
|
|
29
29
|
*/
|
|
30
30
|
terminateAll(): Promise<void>;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* 관리 중인 Worker 수
|
|
33
33
|
*/
|
|
34
34
|
get size(): number;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* 모든 Worker ID 목록
|
|
37
37
|
*/
|
|
38
38
|
get ids(): string[];
|
|
39
39
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Worker } from "@simplysm/core-node";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Worker 생명주기를 관리하는 클래스
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Worker 생성, 조회, 종료를 중앙에서 관리하여
|
|
6
|
+
* 리소스 누수를 방지하고 일관된 Worker 관리를 제공한다.
|
|
7
7
|
*/
|
|
8
8
|
export class WorkerManager {
|
|
9
9
|
_workers = new Map();
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
* @param id Worker
|
|
13
|
-
* @param workerPath Worker
|
|
14
|
-
* @returns
|
|
11
|
+
* 새 Worker를 생성한다
|
|
12
|
+
* @param id Worker 식별자 (예: "core-common:build")
|
|
13
|
+
* @param workerPath Worker 파일 경로
|
|
14
|
+
* @returns 생성된 WorkerProxy
|
|
15
15
|
*/
|
|
16
16
|
create(id, workerPath) {
|
|
17
17
|
const worker = Worker.create(workerPath);
|
|
@@ -19,15 +19,15 @@ export class WorkerManager {
|
|
|
19
19
|
return worker;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
* @param id Worker
|
|
22
|
+
* ID로 Worker를 조회한다
|
|
23
|
+
* @param id Worker 식별자
|
|
24
24
|
*/
|
|
25
25
|
get(id) {
|
|
26
26
|
return this._workers.get(id);
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
30
|
-
* @param id Worker
|
|
29
|
+
* 특정 Worker를 종료하고 제거한다
|
|
30
|
+
* @param id Worker 식별자
|
|
31
31
|
*/
|
|
32
32
|
async terminate(id) {
|
|
33
33
|
const worker = this._workers.get(id);
|
|
@@ -37,20 +37,20 @@ export class WorkerManager {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* 모든 Worker를 종료한다
|
|
41
41
|
*/
|
|
42
42
|
async terminateAll() {
|
|
43
43
|
await Promise.all([...this._workers.values()].map((w) => w.terminate()));
|
|
44
44
|
this._workers.clear();
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* 관리 중인 Worker 수
|
|
48
48
|
*/
|
|
49
49
|
get size() {
|
|
50
50
|
return this._workers.size;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* 모든 Worker ID 목록
|
|
54
54
|
*/
|
|
55
55
|
get ids() {
|
|
56
56
|
return [...this._workers.keys()];
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import type { SdBuildPackageConfig, SdClientPackageConfig, SdServerPackageConfig } from "../sd-config.types";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* BuildOrchestrator 옵션
|
|
4
4
|
*/
|
|
5
5
|
export interface BuildOrchestratorOptions {
|
|
6
|
-
/**
|
|
6
|
+
/** 빌드 대상 패키지 필터 (빈 배열이면 전체) */
|
|
7
7
|
targets: string[];
|
|
8
|
-
/**
|
|
8
|
+
/** sd.config.ts에 전달할 추가 옵션 */
|
|
9
9
|
options: string[];
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* 패키지 분류 결과
|
|
13
13
|
*/
|
|
14
14
|
interface ClassifiedPackages {
|
|
15
|
-
/** node/browser/neutral
|
|
15
|
+
/** node/browser/neutral 대상 (JS + DTS) */
|
|
16
16
|
buildPackages: Array<{
|
|
17
17
|
name: string;
|
|
18
18
|
config: SdBuildPackageConfig;
|
|
19
19
|
}>;
|
|
20
|
-
/** server
|
|
20
|
+
/** server 대상 (JS 빌드, DTS 없음) */
|
|
21
21
|
serverPackages: Array<{
|
|
22
22
|
name: string;
|
|
23
23
|
config: SdServerPackageConfig;
|
|
24
24
|
}>;
|
|
25
|
-
/** client
|
|
25
|
+
/** client 대상 (Vite 프로덕션 빌드, DTS 없음) */
|
|
26
26
|
clientPackages: Array<{
|
|
27
27
|
name: string;
|
|
28
28
|
config: SdClientPackageConfig;
|
|
29
29
|
}>;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
* - node/browser/neutral: buildPackages (JS +
|
|
34
|
-
* - server: serverPackages (JS
|
|
35
|
-
* - client: clientPackages (Vite
|
|
36
|
-
* - scripts:
|
|
32
|
+
* 패키지를 target별로 분류
|
|
33
|
+
* - node/browser/neutral: buildPackages (JS + DTS)
|
|
34
|
+
* - server: serverPackages (JS 빌드, DTS 없음)
|
|
35
|
+
* - client: clientPackages (Vite 프로덕션 빌드, DTS 없음)
|
|
36
|
+
* - scripts: 제외
|
|
37
37
|
*/
|
|
38
38
|
export declare function classifyPackages(packages: Record<string, SdBuildPackageConfig | SdClientPackageConfig | SdServerPackageConfig | {
|
|
39
39
|
target: "scripts";
|
|
40
40
|
} | undefined>, targets: string[]): ClassifiedPackages;
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* 프로덕션 빌드를 조율하는 Orchestrator
|
|
43
43
|
*
|
|
44
|
-
*
|
|
45
|
-
* -
|
|
46
|
-
* -
|
|
47
|
-
* -
|
|
48
|
-
* -
|
|
49
|
-
* -
|
|
44
|
+
* sd.config.ts 기반으로 패키지를 분류하고 빌드를 실행한다.
|
|
45
|
+
* - dist 폴더 정리 (클린 빌드)
|
|
46
|
+
* - lint + 빌드 동시 실행
|
|
47
|
+
* - 라이브러리 패키지: TscEngine/NgtscEngine으로 JS + DTS 빌드
|
|
48
|
+
* - 서버 패키지: BuildEngine으로 JS 빌드
|
|
49
|
+
* - 클라이언트 패키지: ViteEngine으로 Vite 프로덕션 빌드
|
|
50
50
|
*/
|
|
51
51
|
export declare class BuildOrchestrator {
|
|
52
52
|
private readonly _cwd;
|
|
@@ -66,16 +66,16 @@ export declare class BuildOrchestrator {
|
|
|
66
66
|
*/
|
|
67
67
|
initialize(): Promise<void>;
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
70
|
-
* -
|
|
71
|
-
* -
|
|
72
|
-
* -
|
|
69
|
+
* 빌드 실행
|
|
70
|
+
* - 클린
|
|
71
|
+
* - lint + 빌드 (동시 실행)
|
|
72
|
+
* - 결과 출력
|
|
73
73
|
*
|
|
74
|
-
* @returns
|
|
74
|
+
* @returns 에러 발생 여부 (true: 에러 있음)
|
|
75
75
|
*/
|
|
76
76
|
start(): Promise<boolean>;
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
78
|
+
* Orchestrator 종료 (현재 정리할 리소스 없음)
|
|
79
79
|
*/
|
|
80
80
|
shutdown(): Promise<void>;
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/BuildOrchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAc5B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC
|
|
1
|
+
{"version":3,"file":"BuildOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/BuildOrchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAc5B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,+BAA+B;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAeD;;GAEG;AACH,UAAU,kBAAkB;IAC1B,yCAAyC;IACzC,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAA;KAAE,CAAC,CAAC;IACrE,gCAAgC;IAChC,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,qBAAqB,CAAA;KAAE,CAAC,CAAC;IACvE,uCAAuC;IACvC,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,qBAAqB,CAAA;KAAE,CAAC,CAAC;CACxE;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,CACd,MAAM,EACJ,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,GACrB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB,SAAS,CACZ,EACD,OAAO,EAAE,MAAM,EAAE,GAChB,kBAAkB,CAkBpB;AAaD;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAA2C;gBAE/C,OAAO,EAAE,wBAAwB;IAK7C;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CjC;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAwR/B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
|
|
@@ -14,11 +14,11 @@ import { Electron } from "../electron/electron.js";
|
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region Utilities
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* - node/browser/neutral: buildPackages (JS +
|
|
19
|
-
* - server: serverPackages (JS
|
|
20
|
-
* - client: clientPackages (Vite
|
|
21
|
-
* - scripts:
|
|
17
|
+
* 패키지를 target별로 분류
|
|
18
|
+
* - node/browser/neutral: buildPackages (JS + DTS)
|
|
19
|
+
* - server: serverPackages (JS 빌드, DTS 없음)
|
|
20
|
+
* - client: clientPackages (Vite 프로덕션 빌드, DTS 없음)
|
|
21
|
+
* - scripts: 제외
|
|
22
22
|
*/
|
|
23
23
|
export function classifyPackages(packages, targets) {
|
|
24
24
|
const buildPackages = [];
|
|
@@ -40,7 +40,7 @@ export function classifyPackages(packages, targets) {
|
|
|
40
40
|
return { buildPackages, serverPackages, clientPackages };
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* dist 폴더 삭제
|
|
44
44
|
*/
|
|
45
45
|
async function cleanDistFolders(cwd, packageNames) {
|
|
46
46
|
await Promise.all(packageNames.map((name) => fsx.rm(pathx.posixResolve(cwd, "packages", name, "dist"))));
|
|
@@ -48,14 +48,14 @@ async function cleanDistFolders(cwd, packageNames) {
|
|
|
48
48
|
//#endregion
|
|
49
49
|
//#region BuildOrchestrator
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
51
|
+
* 프로덕션 빌드를 조율하는 Orchestrator
|
|
52
52
|
*
|
|
53
|
-
*
|
|
54
|
-
* -
|
|
55
|
-
* -
|
|
56
|
-
* -
|
|
57
|
-
* -
|
|
58
|
-
* -
|
|
53
|
+
* sd.config.ts 기반으로 패키지를 분류하고 빌드를 실행한다.
|
|
54
|
+
* - dist 폴더 정리 (클린 빌드)
|
|
55
|
+
* - lint + 빌드 동시 실행
|
|
56
|
+
* - 라이브러리 패키지: TscEngine/NgtscEngine으로 JS + DTS 빌드
|
|
57
|
+
* - 서버 패키지: BuildEngine으로 JS 빌드
|
|
58
|
+
* - 클라이언트 패키지: ViteEngine으로 Vite 프로덕션 빌드
|
|
59
59
|
*/
|
|
60
60
|
export class BuildOrchestrator {
|
|
61
61
|
_cwd;
|
|
@@ -115,12 +115,12 @@ export class BuildOrchestrator {
|
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
118
|
-
*
|
|
119
|
-
* -
|
|
120
|
-
* -
|
|
121
|
-
* -
|
|
118
|
+
* 빌드 실행
|
|
119
|
+
* - 클린
|
|
120
|
+
* - lint + 빌드 (동시 실행)
|
|
121
|
+
* - 결과 출력
|
|
122
122
|
*
|
|
123
|
-
* @returns
|
|
123
|
+
* @returns 에러 발생 여부 (true: 에러 있음)
|
|
124
124
|
*/
|
|
125
125
|
async start() {
|
|
126
126
|
if (this._allPackageNames.length === 0) {
|
|
@@ -128,13 +128,13 @@ export class BuildOrchestrator {
|
|
|
128
128
|
}
|
|
129
129
|
const classified = this._classified;
|
|
130
130
|
const baseEnv = this._baseEnv;
|
|
131
|
-
//
|
|
131
|
+
// 결과 수집
|
|
132
132
|
const results = [];
|
|
133
|
-
//
|
|
133
|
+
// 에러 추적 (콜백에서 변경 추적을 위해 객체로 래핑)
|
|
134
134
|
const state = { hasError: false };
|
|
135
|
-
//
|
|
135
|
+
// 파일 캐시 (진단 출력용)
|
|
136
136
|
const fileCache = new Map();
|
|
137
|
-
// formatHost (
|
|
137
|
+
// formatHost (진단 출력용)
|
|
138
138
|
const formatHost = {
|
|
139
139
|
getCanonicalFileName: (f) => f,
|
|
140
140
|
getCurrentDirectory: () => this._cwd,
|
|
@@ -146,9 +146,9 @@ export class BuildOrchestrator {
|
|
|
146
146
|
this._logger.success("dist 폴더 정리 완료");
|
|
147
147
|
// Phase 2: 빌드
|
|
148
148
|
const concurrency = getMaxConcurrency();
|
|
149
|
-
//
|
|
149
|
+
// 빌드 태스크 목록 생성
|
|
150
150
|
const buildTasks = [];
|
|
151
|
-
//
|
|
151
|
+
// 라이브러리 패키지: BuildEngine으로 JS + DTS 빌드
|
|
152
152
|
for (const { name, config } of classified.buildPackages) {
|
|
153
153
|
const pkgDir = pathx.posixResolve(this._cwd, "packages", name);
|
|
154
154
|
buildTasks.push(async () => {
|
|
@@ -193,7 +193,7 @@ export class BuildOrchestrator {
|
|
|
193
193
|
this._logger.debug(`[${name}] (${config.target}) 빌드 완료`);
|
|
194
194
|
});
|
|
195
195
|
}
|
|
196
|
-
//
|
|
196
|
+
// 서버 패키지: BuildEngine으로 JS 빌드 + 타입체크
|
|
197
197
|
for (const { name, config } of classified.serverPackages) {
|
|
198
198
|
const pkgDir = pathx.posixResolve(this._cwd, "packages", name);
|
|
199
199
|
buildTasks.push(async () => {
|
|
@@ -233,7 +233,7 @@ export class BuildOrchestrator {
|
|
|
233
233
|
this._logger.debug(`[${name}] (server) 빌드 완료`);
|
|
234
234
|
});
|
|
235
235
|
}
|
|
236
|
-
//
|
|
236
|
+
// 클라이언트 패키지: ViteEngine으로 Vite 프로덕션 빌드 (DTS 없음)
|
|
237
237
|
for (const { name, config } of classified.clientPackages) {
|
|
238
238
|
const pkgDir = pathx.posixResolve(this._cwd, "packages", name);
|
|
239
239
|
buildTasks.push(async () => {
|
|
@@ -362,11 +362,11 @@ export class BuildOrchestrator {
|
|
|
362
362
|
return state.hasError;
|
|
363
363
|
}
|
|
364
364
|
/**
|
|
365
|
-
*
|
|
365
|
+
* Orchestrator 종료 (현재 정리할 리소스 없음)
|
|
366
366
|
*/
|
|
367
367
|
async shutdown() {
|
|
368
|
-
//
|
|
369
|
-
//
|
|
368
|
+
// 프로덕션 빌드는 일회성 작업이므로 종료 시 정리할 리소스가 없음
|
|
369
|
+
// Worker는 각 빌드 태스크 내에서 terminate()로 정리됨
|
|
370
370
|
await Promise.resolve();
|
|
371
371
|
}
|
|
372
372
|
}
|