@simplysm/sd-cli 12.8.22 → 12.9.1

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 (95) hide show
  1. package/dist/entry/sd-cli-ai-command.js +2 -1
  2. package/dist/entry/sd-cli-ai-command.js.map +1 -1
  3. package/dist/entry/sd-cli-cordova.d.ts +1 -1
  4. package/dist/entry/sd-cli-cordova.js +1 -1
  5. package/dist/entry/sd-cli-cordova.js.map +1 -1
  6. package/dist/entry/sd-cli-electron.d.ts +6 -6
  7. package/dist/entry/sd-cli-electron.js +15 -9
  8. package/dist/entry/sd-cli-electron.js.map +1 -1
  9. package/dist/entry/sd-cli-local-update.d.ts +5 -5
  10. package/dist/entry/sd-cli-local-update.js +8 -12
  11. package/dist/entry/sd-cli-local-update.js.map +1 -1
  12. package/dist/entry/sd-cli-project.d.ts +11 -11
  13. package/dist/entry/sd-cli-project.js +11 -14
  14. package/dist/entry/sd-cli-project.js.map +1 -1
  15. package/dist/entry/utils/loadProjConfAsync.d.ts +5 -0
  16. package/dist/entry/utils/loadProjConfAsync.js +8 -0
  17. package/dist/entry/utils/loadProjConfAsync.js.map +1 -0
  18. package/dist/pkg-builders/client/sd-client.build-runner.js +1 -1
  19. package/dist/pkg-builders/client/sd-client.build-runner.js.map +1 -1
  20. package/dist/pkg-builders/client/sd-ng.bundler-context.d.ts +6 -5
  21. package/dist/pkg-builders/client/sd-ng.bundler-context.js +6 -6
  22. package/dist/pkg-builders/client/sd-ng.bundler-context.js.map +1 -1
  23. package/dist/pkg-builders/client/sd-ng.bundler.d.ts +13 -13
  24. package/dist/pkg-builders/client/sd-ng.bundler.js.map +1 -1
  25. package/dist/pkg-builders/client/sd-ng.plugin-creator.js +4 -88
  26. package/dist/pkg-builders/client/sd-ng.plugin-creator.js.map +1 -1
  27. package/dist/pkg-builders/lib/sd-js-lib.build-runner.js.map +1 -1
  28. package/dist/pkg-builders/lib/sd-ts-lib.build-runner.d.ts +1 -1
  29. package/dist/pkg-builders/lib/sd-ts-lib.build-runner.js.map +1 -1
  30. package/dist/pkg-builders/lib/sd-ts-lib.builder.js.map +1 -1
  31. package/dist/pkg-builders/sd-multi.build-runner.d.ts +4 -0
  32. package/dist/pkg-builders/sd-multi.build-runner.js +33 -25
  33. package/dist/pkg-builders/sd-multi.build-runner.js.map +1 -1
  34. package/dist/pkg-builders/server/sd-server.build-runner.js.map +1 -1
  35. package/dist/pkg-builders/server/sd-server.bundler.d.ts +6 -2
  36. package/dist/pkg-builders/server/sd-server.bundler.js +18 -19
  37. package/dist/pkg-builders/server/sd-server.bundler.js.map +1 -1
  38. package/dist/sd-cli/vitest.config.d.ts +2 -0
  39. package/dist/sd-cli/vitest.config.js +15 -0
  40. package/dist/sd-cli/vitest.config.js.map +1 -0
  41. package/dist/sd-cli.js +7 -36
  42. package/dist/sd-cli.js.map +1 -1
  43. package/dist/ts-compiler/sd-dependency-analyzer.d.ts +8 -0
  44. package/dist/ts-compiler/sd-dependency-analyzer.js +244 -0
  45. package/dist/ts-compiler/sd-dependency-analyzer.js.map +1 -0
  46. package/dist/ts-compiler/sd-dependency-cache.d.ts +27 -0
  47. package/dist/ts-compiler/sd-dependency-cache.js +232 -0
  48. package/dist/ts-compiler/sd-dependency-cache.js.map +1 -0
  49. package/dist/ts-compiler/sd-ts-compiler.d.ts +7 -10
  50. package/dist/ts-compiler/sd-ts-compiler.js +102 -228
  51. package/dist/ts-compiler/sd-ts-compiler.js.map +1 -1
  52. package/dist/types/worker.types.d.ts +19 -0
  53. package/dist/utils/sd-cli-performance-time.d.ts +2 -1
  54. package/dist/utils/sd-cli-performance-time.js +9 -9
  55. package/dist/utils/sd-cli-performance-time.js.map +1 -1
  56. package/dist/workers/style-bundler.worker.d.ts +1 -0
  57. package/dist/workers/style-bundler.worker.js +56 -0
  58. package/dist/workers/style-bundler.worker.js.map +1 -0
  59. package/package.json +10 -10
  60. package/src/entry/sd-cli-ai-command.ts +2 -1
  61. package/src/entry/sd-cli-cordova.ts +5 -5
  62. package/src/entry/sd-cli-electron.ts +54 -23
  63. package/src/entry/sd-cli-local-update.ts +14 -29
  64. package/src/entry/sd-cli-project.ts +24 -41
  65. package/src/entry/utils/loadProjConfAsync.ts +12 -0
  66. package/src/pkg-builders/client/sd-client.build-runner.ts +7 -7
  67. package/src/pkg-builders/client/sd-ng.bundler-context.ts +15 -12
  68. package/src/pkg-builders/client/sd-ng.bundler.ts +16 -16
  69. package/src/pkg-builders/client/sd-ng.plugin-creator.ts +5 -94
  70. package/src/pkg-builders/lib/sd-js-lib.build-runner.ts +6 -6
  71. package/src/pkg-builders/lib/sd-ts-lib.build-runner.ts +7 -7
  72. package/src/pkg-builders/lib/sd-ts-lib.builder.ts +1 -1
  73. package/src/pkg-builders/sd-multi.build-runner.ts +54 -39
  74. package/src/pkg-builders/server/sd-server.build-runner.ts +6 -6
  75. package/src/pkg-builders/server/sd-server.bundler.ts +26 -28
  76. package/src/sd-cli.ts +7 -36
  77. package/src/ts-compiler/sd-dependency-analyzer.ts +312 -0
  78. package/src/ts-compiler/sd-dependency-cache.ts +328 -0
  79. package/src/ts-compiler/sd-ts-compiler.ts +161 -302
  80. package/src/types/worker.types.ts +17 -0
  81. package/src/utils/sd-cli-performance-time.ts +9 -9
  82. package/src/workers/style-bundler.worker.ts +70 -0
  83. package/tests/deps/sd-dependency-analyzer.spec.ts +272 -0
  84. package/tests/deps/sd-dependency-cache.spec.ts +144 -0
  85. package/tsconfig.json +1 -1
  86. package/tsconfig.test.json +8 -0
  87. package/vitest.config.ts +15 -0
  88. package/dist/index.d.ts +0 -34
  89. package/dist/index.js +0 -35
  90. package/dist/index.js.map +0 -1
  91. package/dist/ts-compiler/sd-ts-dependency-analyzer.d.ts +0 -6
  92. package/dist/ts-compiler/sd-ts-dependency-analyzer.js +0 -141
  93. package/dist/ts-compiler/sd-ts-dependency-analyzer.js.map +0 -1
  94. package/src/index.ts +0 -34
  95. package/src/ts-compiler/sd-ts-dependency-analyzer.ts +0 -185
@@ -1,66 +1,31 @@
1
1
  import ts from "typescript";
2
2
  import path from "path";
3
- import { FsUtils, PathUtils, SdLogger } from "@simplysm/sd-core-node";
3
+ import { FsUtils, PathUtils, SdLogger, SdWorker } from "@simplysm/sd-core-node";
4
4
  import { StringUtils } from "@simplysm/sd-core-common";
5
5
  import { NgtscProgram, OptimizeFor } from "@angular/compiler-cli";
6
- import { ComponentStylesheetBundler, } from "@angular/build/src/tools/esbuild/angular/component-stylesheets";
7
- import { transformSupportedBrowsersToTargets } from "@angular/build/src/tools/esbuild/utils";
8
- import browserslist from "browserslist";
9
6
  import { replaceBootstrap, } from "@angular/build/src/tools/angular/transformers/jit-bootstrap-transformer";
10
7
  import { SdCliPerformanceTimer } from "../utils/sd-cli-performance-time";
11
8
  import { SdCliConvertMessageUtils } from "../utils/sd-cli-convert-message.utils";
12
9
  import { createWorkerTransformer, } from "@angular/build/src/tools/angular/transformers/web-worker-transformer";
13
10
  import { ESLint } from "eslint";
14
- import { SdTsDependencyAnalyzer } from "./sd-ts-dependency-analyzer";
11
+ import { SdDependencyCache } from "./sd-dependency-cache";
12
+ import { SdDependencyAnalyzer } from "./sd-dependency-analyzer";
15
13
  export class SdTsCompiler {
16
14
  constructor(_opt) {
17
15
  this._opt = _opt;
18
16
  this._logger = SdLogger.get(["simplysm", "sd-cli", "SdTsCompiler"]);
19
- this._allDepCacheMap = new Map();
20
- this._revDepCacheMap = new Map();
17
+ // 빌드정보 캐싱
18
+ this._depCache = new SdDependencyCache();
21
19
  this._sourceFileCacheMap = new Map();
22
20
  this._emittedFilesCacheMap = new Map();
23
- this._modifiedFileSet = new Set();
24
- this._affectedFileSet = new Set();
25
- this._watchFileSet = new Set();
21
+ // 빌드결과 캐싱
26
22
  this._stylesheetBundlingResultMap = new Map();
27
23
  this._debug("초기화 중...");
28
24
  const tsconfigPath = path.resolve(this._opt.pkgPath, "tsconfig.json");
29
25
  const tsconfig = FsUtils.readJson(tsconfigPath);
30
26
  this._isForAngular = Boolean(tsconfig.angularCompilerOptions);
31
- if (this._isForAngular) {
32
- //-- stylesheetBundler
33
- this._stylesheetBundler = new ComponentStylesheetBundler({
34
- workspaceRoot: this._opt.pkgPath,
35
- optimization: !this._opt.isDevMode,
36
- inlineFonts: true,
37
- preserveSymlinks: false,
38
- sourcemap: this._opt.isDevMode ? "inline" : false,
39
- outputNames: { bundles: "[name]", media: "media/[name]" },
40
- includePaths: [],
41
- externalDependencies: [],
42
- target: transformSupportedBrowsersToTargets(browserslist(["Chrome > 78"])),
43
- postcssConfiguration: {
44
- plugins: [["css-has-pseudo"]],
45
- },
46
- tailwindConfiguration: undefined,
47
- cacheOptions: {
48
- enabled: true,
49
- path: ".cache/angular",
50
- basePath: ".cache",
51
- },
52
- }, "scss", this._opt.isDevMode);
53
- }
54
27
  }
55
28
  _parseTsConfig() {
56
- const config = this._loadTsConfig();
57
- const compilerHost = this._createCompilerHost(config.options);
58
- return {
59
- ...config,
60
- compilerHost,
61
- };
62
- }
63
- _loadTsConfig() {
64
29
  const tsconfigPath = path.resolve(this._opt.pkgPath, "tsconfig.json");
65
30
  const tsconfig = FsUtils.readJson(tsconfigPath);
66
31
  const parsedTsconfig = ts.parseJsonConfigFileContent(tsconfig, ts.sys, this._opt.pkgPath, {
@@ -74,7 +39,7 @@ export class SdTsCompiler {
74
39
  distPath: distPath,
75
40
  };
76
41
  }
77
- _createCompilerHost(compilerOptions) {
42
+ _createCompilerHost(compilerOptions, modifiedFileSet) {
78
43
  const compilerHost = ts.createCompilerHost(compilerOptions);
79
44
  const baseGetSourceFile = compilerHost.getSourceFile;
80
45
  compilerHost.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile, ...args) => {
@@ -91,11 +56,6 @@ export class SdTsCompiler {
91
56
  }
92
57
  return sf;
93
58
  };
94
- const baseReadFile = compilerHost.readFile;
95
- compilerHost.readFile = (fileName) => {
96
- this._watchFileSet.add(PathUtils.norm(fileName));
97
- return baseReadFile.call(compilerHost, fileName);
98
- };
99
59
  if (this._isForAngular) {
100
60
  compilerHost.readResource = (fileName) => {
101
61
  return compilerHost.readFile(fileName) ?? "";
@@ -110,11 +70,19 @@ export class SdTsCompiler {
110
70
  : { content: stylesheetBundlingResult.contents };
111
71
  };
112
72
  compilerHost.getModifiedResourceFiles = () => {
113
- return new Set(Array.from(this._modifiedFileSet).map((item) => PathUtils.posix(item)));
73
+ return new Set(Array.from(modifiedFileSet).map((item) => PathUtils.posix(item)));
114
74
  };
115
75
  }
116
76
  return compilerHost;
117
77
  }
78
+ async _getOrCreateStyleBundleWorkerAsync() {
79
+ if (this._stylesheetBundlingWorker) {
80
+ return this._stylesheetBundlingWorker;
81
+ }
82
+ this._stylesheetBundlingWorker = new SdWorker(import.meta.resolve("../workers/style-bundler.worker"));
83
+ await this._stylesheetBundlingWorker.run("prepare", [this._opt.pkgPath, this._opt.isDevMode]);
84
+ return this._stylesheetBundlingWorker;
85
+ }
118
86
  async _bundleStylesheetAsync(data, containingFile, resourceFile = null) {
119
87
  // containingFile: 포함된 파일 (.ts)
120
88
  // resourceFile: 외부 리소스 파일 (styleUrls로 입력하지 않고 styles에 직접 입력한 경우 null)
@@ -126,16 +94,11 @@ export class SdTsCompiler {
126
94
  return this._stylesheetBundlingResultMap.get(fileNPath);
127
95
  }
128
96
  try {
129
- const result = resourceFile != null
130
- ? await this._stylesheetBundler.bundleFile(resourceFile)
131
- : await this._stylesheetBundler.bundleInline(data, containingFile, "scss");
132
- if (result.referencedFiles) {
133
- for (const referencedFile of result.referencedFiles) {
134
- const depCacheSet = this._revDepCacheMap.getOrCreate(PathUtils.norm(referencedFile), new Set());
135
- depCacheSet.add(fileNPath);
136
- }
137
- this._watchFileSet.adds(...Array.from(result.referencedFiles.values())
138
- .map((item) => PathUtils.norm(item)));
97
+ const worker = this._stylesheetBundlingWorker;
98
+ const result = await worker.run("bundle", [data, containingFile, resourceFile]);
99
+ for (const referencedFile of result.referencedFiles ?? []) {
100
+ // 참조하는 파일과 참조된 파일 사이의 의존성 관계 추가
101
+ this._depCache.addImport(fileNPath, PathUtils.norm(referencedFile), 0);
139
102
  }
140
103
  this._stylesheetBundlingResultMap.set(fileNPath, result);
141
104
  return result;
@@ -157,93 +120,69 @@ export class SdTsCompiler {
157
120
  }
158
121
  async compileAsync(modifiedFileSet) {
159
122
  this._perf = new SdCliPerformanceTimer("esbuild compile");
160
- this._modifiedFileSet = new Set(modifiedFileSet);
161
- this._affectedFileSet = new Set();
162
- /*for (const mod of modifiedFileSet) {
163
- const workerImporters = this.#workerRevDependencyCacheMap.get(mod);
164
- if (workerImporters) {
165
- this.#modifiedFileSet.adds(...workerImporters);
166
- } else {
167
- this.#modifiedFileSet.add(mod);
168
- }
169
- }*/
170
- const tsconf = this._parseTsConfig();
171
- const prepareResult = await this._prepareAsync(tsconf);
172
- const [buildResult, lintResults] = await Promise.all([
173
- this._buildAsync(tsconf),
174
- this._lintAsync(),
123
+ const prepareResult = await this._prepareAsync(modifiedFileSet);
124
+ const [globalStyleSheet, buildResult, lintResults] = await Promise.all([
125
+ this._buildGlobalStyleAsync(),
126
+ this._build(prepareResult),
127
+ this._lintAsync(prepareResult),
175
128
  ]);
176
129
  this._debug(`빌드 완료됨`, this._perf.toString());
177
- this._debug(`영향 받은 파일: ${this._affectedFileSet.size}개`);
178
- this._debug(`감시 중인 파일: ${this._watchFileSet.size}개`);
130
+ this._debug(`영향 받은 파일: ${prepareResult.affectedFileSet.size}개`);
131
+ this._debug(`감시 중인 파일: ${prepareResult.watchFileSet.size}개`);
179
132
  return {
180
133
  messages: [
181
- ...prepareResult.messages,
182
134
  ...SdCliConvertMessageUtils.convertToBuildMessagesFromTsDiag(buildResult.diagnostics),
183
135
  ...SdCliConvertMessageUtils.convertToBuildMessagesFromEslint(lintResults),
184
136
  ],
185
- watchFileSet: this._watchFileSet,
186
- affectedFileSet: this._affectedFileSet,
137
+ affectedFileSet: prepareResult.affectedFileSet,
138
+ watchFileSet: prepareResult.watchFileSet,
187
139
  stylesheetBundlingResultMap: this._stylesheetBundlingResultMap,
188
140
  emittedFilesCacheMap: this._emittedFilesCacheMap,
189
- emitFileSet: buildResult.emitFileSet,
141
+ emitFileSet: new Set([...buildResult.emitFileSet, globalStyleSheet].filterExists()),
190
142
  };
191
143
  }
192
- async _prepareAsync(tsconf) {
193
- if (this._modifiedFileSet.size !== 0) {
194
- this._debug(`영향 받은 파일 추적 중... (구 의존성)`);
195
- this._perf.run("영향 받은 파일 추적", () => {
196
- for (const modifiedFile of this._modifiedFileSet) {
197
- this._affectedFileSet.add(modifiedFile);
198
- this._affectedFileSet.adds(...(this._revDepCacheMap.get(modifiedFile) ?? []));
199
- // .d.ts → .js 대응
200
- if (modifiedFile.endsWith(".d.ts")) {
201
- const jsEquivalent = PathUtils.norm(modifiedFile.replace(/\.d\.ts$/, ".js"));
202
- this._affectedFileSet.add(jsEquivalent);
203
- }
204
- }
205
- });
144
+ async _prepareAsync(modifiedFileSet) {
145
+ const worker = await this._getOrCreateStyleBundleWorkerAsync();
146
+ const tsconfig = this._parseTsConfig();
147
+ if (modifiedFileSet.size !== 0) {
206
148
  this._debug(`캐시 무효화 및 초기화 중...`);
207
- this._perf.run("캐시 무효화 및 초기화", () => {
208
- this._stylesheetBundler?.invalidate(this._affectedFileSet);
209
- const toDeleteSet = new Set();
210
- // 초기: 명시적으로 수정된 파일들
211
- for (const file of this._affectedFileSet) {
212
- toDeleteSet.add(file);
213
- // 역방향으로 영향을 받는 파일들도 포함
214
- const dependents = this._revDepCacheMap.get(file);
215
- if (dependents) {
216
- for (const dep of dependents) {
217
- toDeleteSet.add(dep);
218
- }
219
- }
220
- }
221
- for (const toDeleteFile of toDeleteSet) {
222
- this._emittedFilesCacheMap.delete(toDeleteFile);
223
- this._sourceFileCacheMap.delete(toDeleteFile);
224
- this._stylesheetBundlingResultMap.delete(toDeleteFile);
225
- this._watchFileSet.delete(toDeleteFile);
226
- this._allDepCacheMap.delete(toDeleteFile);
227
- this._revDepCacheMap.delete(toDeleteFile);
228
- }
229
- for (const [key, deps] of this._revDepCacheMap) {
230
- for (const file of toDeleteSet) {
231
- deps.delete(file);
232
- }
233
- if (deps.size === 0) {
234
- this._revDepCacheMap.delete(key);
149
+ await this._perf.run("캐시 무효화 및 초기화", async () => {
150
+ // 기존 의존성에 의해 영향받는 파일들 계산
151
+ const affectedFileSet = this._depCache.getAffectedFileSet(modifiedFileSet);
152
+ const getTreeText = (node, indent = "") => {
153
+ let result = indent + node.fileNPath + "\n";
154
+ for (const child of node.children) {
155
+ result += getTreeText(child, indent + " ");
235
156
  }
157
+ return result;
158
+ };
159
+ const affectedFileTree = this._depCache.getAffectedFileTree(modifiedFileSet);
160
+ this._debug(`
161
+ 영향받은 기존파일:
162
+ ${affectedFileTree.map(item => getTreeText(item)).join("\n")}`.trim());
163
+ // 스타일 번들러에서 영향받은 파일 관련 항목 무효화
164
+ await worker.run("invalidate", [affectedFileSet]);
165
+ // 의존성 캐시에서 영향받은 파일 관련 항목 무효화
166
+ this._depCache.invalidates(affectedFileSet);
167
+ // 내부 캐시에서 영향받은 파일 관련 항목 무효화
168
+ for (const affectedFile of affectedFileSet) {
169
+ this._emittedFilesCacheMap.delete(affectedFile);
170
+ this._sourceFileCacheMap.delete(affectedFile);
171
+ this._stylesheetBundlingResultMap.delete(affectedFile);
236
172
  }
237
173
  });
238
174
  }
239
175
  this._debug(`ts.Program 생성 중...`);
176
+ const compilerHost = this._perf.run("ts.CompilerHost 생성", () => {
177
+ return this._createCompilerHost(tsconfig.options, modifiedFileSet);
178
+ });
240
179
  this._perf.run("ts.Program 생성", () => {
241
180
  if (this._isForAngular) {
242
- this._ngProgram = new NgtscProgram(tsconf.fileNames, tsconf.options, tsconf.compilerHost, this._ngProgram);
181
+ this._ngProgram = new NgtscProgram(tsconfig.fileNames, tsconfig.options, compilerHost, this._ngProgram);
243
182
  this._program = this._ngProgram.getTsProgram();
244
183
  }
245
184
  else {
246
- this._program = ts.createProgram(tsconf.fileNames, tsconf.options, tsconf.compilerHost, this._program);
185
+ this._program = ts.createProgram(tsconfig.fileNames, tsconfig.options, compilerHost, this._program);
247
186
  }
248
187
  });
249
188
  if (this._ngProgram) {
@@ -252,88 +191,27 @@ export class SdTsCompiler {
252
191
  });
253
192
  }
254
193
  this._debug(`새 의존성 분석 중...`);
255
- const messages = [];
256
194
  this._perf.run("새 의존성 분석", () => {
257
- const analysed = SdTsDependencyAnalyzer.analyze(this._program, tsconf.compilerHost, this._opt.watchScopePaths, this._allDepCacheMap);
258
- messages.push(...analysed);
259
- for (const fileNPath of this._allDepCacheMap.keys()) {
260
- // const filePath = PathUtils.norm(sf.fileName);
261
- const deps = this._allDepCacheMap.get(fileNPath);
262
- for (const dep of deps) {
263
- const depCache = this._revDepCacheMap.getOrCreate(dep, new Set());
264
- depCache.add(fileNPath);
265
- }
266
- if (this._ngProgram) {
267
- const sf = this._program.getSourceFile(fileNPath);
268
- if (this._ngProgram.compiler.ignoreForEmit.has(sf)) {
269
- continue;
270
- }
271
- for (const dep of this._ngProgram.compiler.getResourceDependencies(sf)) {
272
- const ref = this._revDepCacheMap.getOrCreate(PathUtils.norm(dep), new Set());
273
- ref.add(fileNPath);
274
- }
275
- }
195
+ // SdTsDependencyAnalyzer를 통해 의존성 분석 SdDepCache 업데이트
196
+ SdDependencyAnalyzer.analyze(this._program, compilerHost, this._opt.watchScopePaths, this._depCache);
197
+ // Angular 리소스 의존성 추가
198
+ if (this._ngProgram) {
199
+ SdDependencyAnalyzer.analyzeAngularResources(this._ngProgram, this._opt.watchScopePaths, this._depCache);
276
200
  }
277
201
  });
278
- if (this._modifiedFileSet.size === 0) {
279
- this._debug(`영향 받은 파일 추가 중... (새 의존성)`);
280
- this._perf.run("영향 받은 파일 추가 중 (새 의존성)", () => {
281
- for (const fileNPath of this._allDepCacheMap.keys()) {
282
- if (!this._opt.watchScopePaths.some((scopePath) => PathUtils.isChildPath(fileNPath, scopePath))) {
283
- continue;
284
- }
285
- this._affectedFileSet.add(fileNPath);
286
- }
287
- });
288
- }
289
- /**
290
- * AI가 넣으라고해서 넣었지만 이유는 잘 모르겠음.
291
- * AI측의 설명은 아래와 같음:
292
- *
293
- * 변경된 파일이 .d.ts일 경우, 타입 정보만을 가져다 쓰는 다수의 .ts 파일들이
294
- * 직접적으로 import하고 있어도 revDepMap에는 기록되지 않을 수 있음.
295
- *
296
- * 따라서 .d.ts 파일을 참조하는 모든 파일을 allDepCacheMap에서 역추적하여
297
- * 간접 영향 파일들을 정확하게 affectedFileSet에 포함시켜야 함.
298
- *
299
- * 이 블록은 정확도 보완을 위한 보증 로직이며, 특히 초기 빌드 또는 watch 시 의존성 누락을 방지함.
300
- */
301
- for (const modifiedFile of this._modifiedFileSet) {
302
- // 신규 추가된 파일이 누락되지 않도록 추가하라고 하여 넣음
303
- if (!this._revDepCacheMap.has(modifiedFile) &&
304
- !this._allDepCacheMap.has(modifiedFile) &&
305
- this._program.getSourceFile(modifiedFile)) {
306
- this._affectedFileSet.add(modifiedFile);
307
- }
308
- // AI가 넣으라 한부분에 대한 설명은 여기서부터임
309
- if (!modifiedFile.endsWith(".d.ts"))
310
- continue;
311
- for (const [importer, deps] of this._allDepCacheMap) {
312
- if (deps.has(modifiedFile)) {
313
- this._affectedFileSet.add(importer);
314
- }
315
- }
316
- }
317
- for (const dep of this._revDepCacheMap.keys()) {
318
- if (this._modifiedFileSet.has(dep)) {
319
- this._affectedFileSet.adds(...Array.from(this._revDepCacheMap.get(dep)).mapMany((item) => [
320
- item,
321
- // .d.ts면 .js파일도 affected에 추가
322
- item.endsWith(".d.ts") ? PathUtils.norm(item.replace(/\.d\.ts$/, ".js")) : undefined,
323
- ].filterExists()));
324
- }
325
- // dep이 emit된적이 없으면 affected에 추가해야함.
326
- // dep파일이 추가된후 기존 파일에서 import하면 dep파일이 affected에 포함이 안되는 현상 때문
327
- if (!this._emittedFilesCacheMap.has(dep)) {
328
- this._affectedFileSet.add(dep);
329
- }
330
- }
202
+ const affectedFileSet = modifiedFileSet.size === 0
203
+ ? this._depCache.getFiles()
204
+ : this._depCache.getAffectedFileSet(modifiedFileSet);
205
+ const watchFileSet = this._depCache.getFiles();
331
206
  return {
332
- messages,
207
+ tsconfig,
208
+ compilerHost,
209
+ affectedFileSet,
210
+ watchFileSet,
333
211
  };
334
212
  }
335
- async _lintAsync() {
336
- const lintFilePaths = Array.from(this._affectedFileSet)
213
+ async _lintAsync(prepareResult) {
214
+ const lintFilePaths = Array.from(prepareResult.affectedFileSet)
337
215
  .filter((item) => PathUtils.isChildPath(item, this._opt.pkgPath))
338
216
  .filter((item) => ((!item.endsWith(".d.ts") && item.endsWith(".ts")) ||
339
217
  item.endsWith(".js")))
@@ -347,7 +225,6 @@ export class SdTsCompiler {
347
225
  overrideConfig: {
348
226
  languageOptions: {
349
227
  parserOptions: {
350
- // parser: tseslint.parser,
351
228
  project: null,
352
229
  programs: [this._program],
353
230
  },
@@ -355,14 +232,28 @@ export class SdTsCompiler {
355
232
  },
356
233
  });
357
234
  return await linter.lintFiles(lintFilePaths);
358
- // return await this.#lintWorker.run("lint", [
359
- // {
360
- // cwd: this.#pkgPath,
361
- // fileSet: this.#affectedFileSet,
362
- // },
363
- // ]);
364
235
  }
365
- async _buildAsync(tsconf) {
236
+ async _buildGlobalStyleAsync() {
237
+ //-- global style
238
+ if (this._opt.globalStyleFilePath != null &&
239
+ FsUtils.exists(this._opt.globalStyleFilePath) &&
240
+ !this._emittedFilesCacheMap.has(this._opt.globalStyleFilePath)) {
241
+ this._debug(`전역 스타일 번들링 중...`);
242
+ await this._perf.run("전역 스타일 번들링", async () => {
243
+ const data = await FsUtils.readFileAsync(this._opt.globalStyleFilePath);
244
+ const stylesheetBundlingResult = await this._bundleStylesheetAsync(data, this._opt.globalStyleFilePath, this._opt.globalStyleFilePath);
245
+ const emitFileInfos = this._emittedFilesCacheMap.getOrCreate(this._opt.globalStyleFilePath, []);
246
+ emitFileInfos.push({
247
+ outAbsPath: PathUtils.norm(this._opt.pkgPath, path.relative(path.resolve(this._opt.pkgPath, "src"), this._opt.globalStyleFilePath)
248
+ .replace(/\.scss$/, ".css")),
249
+ text: stylesheetBundlingResult.contents ?? "",
250
+ });
251
+ });
252
+ return this._opt.globalStyleFilePath;
253
+ }
254
+ return undefined;
255
+ }
256
+ _build(prepareResult) {
366
257
  const emitFileSet = new Set();
367
258
  const diagnostics = [];
368
259
  this._debug(`프로그램 진단 수집 중...`);
@@ -373,7 +264,7 @@ export class SdTsCompiler {
373
264
  }
374
265
  });
375
266
  this._debug(`개별 파일 진단 수집 중...`);
376
- for (const affectedFile of this._affectedFileSet) {
267
+ for (const affectedFile of prepareResult.affectedFileSet) {
377
268
  if (!PathUtils.isChildPath(affectedFile, this._opt.pkgPath))
378
269
  continue;
379
270
  const affectedSourceFile = this._program.getSourceFile(affectedFile);
@@ -412,7 +303,7 @@ export class SdTsCompiler {
412
303
  // affected에 새로 추가된 파일은 포함되지 않는 현상이 있어 sourceFileSet으로 바꿈
413
304
  // 비교해보니, 딱히 getSourceFiles라서 더 느려지는것 같지는 않음
414
305
  // 그래도 affected로 다시 테스트 (조금이라도 더 빠르게)
415
- for (const affectedFile of this._affectedFileSet) {
306
+ for (const affectedFile of prepareResult.affectedFileSet) {
416
307
  if (this._emittedFilesCacheMap.has(affectedFile))
417
308
  continue;
418
309
  const sf = this._program.getSourceFile(affectedFile);
@@ -429,7 +320,7 @@ export class SdTsCompiler {
429
320
  }
430
321
  this._program.emit(sf, (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
431
322
  if (!sourceFiles || sourceFiles.length === 0) {
432
- tsconf.compilerHost.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
323
+ prepareResult.compilerHost.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
433
324
  return;
434
325
  }
435
326
  const sourceFile = ts.getOriginalNode(sourceFiles[0], ts.isSourceFile);
@@ -440,7 +331,7 @@ export class SdTsCompiler {
440
331
  }
441
332
  const emitFileInfoCaches = this._emittedFilesCacheMap.getOrCreate(PathUtils.norm(sourceFile.fileName), []);
442
333
  if (PathUtils.isChildPath(sourceFile.fileName, this._opt.pkgPath)) {
443
- const real = this._convertOutputToReal(fileName, tsconf.distPath, text);
334
+ const real = this._convertOutputToReal(fileName, prepareResult.tsconfig.distPath, text);
444
335
  emitFileInfoCaches.push({
445
336
  outAbsPath: real.filePath,
446
337
  text: real.text,
@@ -453,23 +344,6 @@ export class SdTsCompiler {
453
344
  }, undefined, undefined, transformers);
454
345
  }
455
346
  });
456
- //-- global style
457
- if (this._opt.globalStyleFilePath != null &&
458
- FsUtils.exists(this._opt.globalStyleFilePath) &&
459
- !this._emittedFilesCacheMap.has(this._opt.globalStyleFilePath)) {
460
- this._debug(`전역 스타일 번들링 중...`);
461
- await this._perf.run("전역 스타일 번들링", async () => {
462
- const data = FsUtils.readFile(this._opt.globalStyleFilePath);
463
- const stylesheetBundlingResult = await this._bundleStylesheetAsync(data, this._opt.globalStyleFilePath, this._opt.globalStyleFilePath);
464
- const emitFileInfos = this._emittedFilesCacheMap.getOrCreate(this._opt.globalStyleFilePath, []);
465
- emitFileInfos.push({
466
- outAbsPath: PathUtils.norm(this._opt.pkgPath, path.relative(path.resolve(this._opt.pkgPath, "src"), this._opt.globalStyleFilePath)
467
- .replace(/\.scss$/, ".css")),
468
- text: stylesheetBundlingResult.contents ?? "",
469
- });
470
- emitFileSet.add(this._opt.globalStyleFilePath);
471
- });
472
- }
473
347
  return {
474
348
  emitFileSet,
475
349
  diagnostics,
@@ -1 +1 @@
1
- {"version":3,"file":"sd-ts-compiler.js","sourceRoot":"","sources":["../../src/ts-compiler/sd-ts-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-ts-compiler.js","sourceRoot":"","sources":["../../src/ts-compiler/sd-ts-compiler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { ISdBuildRunnerWorkerRequest } from "./build-runner.types";
2
2
  import { ISdBuildMessage, ISdBuildRunnerResult } from "./build.types";
3
3
  import { ESLint } from "eslint";
4
+ import { TNormPath } from "@simplysm/sd-core-node";
5
+ import { ComponentStylesheetResult } from "@angular/build/src/tools/esbuild/angular/component-stylesheets";
4
6
  export interface TServerWorkerType {
5
7
  methods: {
6
8
  listen: {
@@ -46,3 +48,20 @@ export interface TSdBuildRunnerWorkerType {
46
48
  complete: ISdBuildRunnerResult;
47
49
  };
48
50
  }
51
+ export interface TStyleBundlerWorkerType {
52
+ methods: {
53
+ prepare: {
54
+ params: [string, boolean];
55
+ returnType: void;
56
+ };
57
+ bundle: {
58
+ params: [string, TNormPath, TNormPath | null];
59
+ returnType: ComponentStylesheetResult;
60
+ };
61
+ invalidate: {
62
+ params: [Set<TNormPath>];
63
+ returnType: void;
64
+ };
65
+ };
66
+ events: {};
67
+ }
@@ -1,6 +1,7 @@
1
1
  export declare class SdCliPerformanceTimer {
2
- #private;
3
2
  private _name;
3
+ private _startingMap;
4
+ private _resultMap;
4
5
  constructor(_name: string);
5
6
  start(name: string): void;
6
7
  end(name: string): void;
@@ -1,18 +1,18 @@
1
1
  export class SdCliPerformanceTimer {
2
- #startingMap = new Map();
3
- #resultMap = new Map();
4
2
  constructor(_name) {
5
3
  this._name = _name;
4
+ this._startingMap = new Map();
5
+ this._resultMap = new Map();
6
6
  }
7
7
  start(name) {
8
- this.#startingMap.set(name, new Date().getTime());
8
+ this._startingMap.set(name, new Date().getTime());
9
9
  }
10
10
  end(name) {
11
- const val = this.#startingMap.get(name);
11
+ const val = this._startingMap.get(name);
12
12
  if (val == null)
13
13
  throw new Error();
14
- this.#resultMap.set(name, new Date().getTime() - val);
15
- this.#startingMap.delete(name);
14
+ this._resultMap.set(name, new Date().getTime() - val);
15
+ this._startingMap.delete(name);
16
16
  }
17
17
  run(name, fn) {
18
18
  const startTime = new Date().getTime();
@@ -20,18 +20,18 @@ export class SdCliPerformanceTimer {
20
20
  if (res instanceof Promise) {
21
21
  return res.then((realRes) => {
22
22
  const duration = new Date().getTime() - startTime;
23
- this.#resultMap.update(name, (v) => (v ?? 0) + duration);
23
+ this._resultMap.update(name, (v) => (v ?? 0) + duration);
24
24
  return realRes;
25
25
  });
26
26
  }
27
27
  const duration = new Date().getTime() - startTime;
28
- this.#resultMap.update(name, (v) => (v ?? 0) + duration);
28
+ this._resultMap.update(name, (v) => (v ?? 0) + duration);
29
29
  return res;
30
30
  }
31
31
  toString() {
32
32
  return `${this._name} 성능 보고서
33
33
  ------------------------------------
34
- ${Array.from(this.#resultMap.entries())
34
+ ${Array.from(this._resultMap.entries())
35
35
  .map((en) => `${en[0]}: ${en[1].toLocaleString()}ms`)
36
36
  .join("\n")}
37
37
  ------------------------------------`;