@simplysm/sd-cli 11.1.56 → 11.1.57

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.
@@ -11,6 +11,7 @@ export class SdTsCompiler {
11
11
  #logger = Logger.get(["simplysm", "sd-cli", "SdTsCompiler"]);
12
12
  #parsedTsconfig;
13
13
  #isForAngular;
14
+ #dependencyCacheMap = new Map();
14
15
  #resourceDependencyCacheMap = new Map();
15
16
  #sourceFileCacheMap = new Map();
16
17
  #emittedFilesCacheMap = new Map();
@@ -39,7 +40,7 @@ export class SdTsCompiler {
39
40
  });
40
41
  this.#distPath = this.#parsedTsconfig.options.outDir ?? path.resolve(pkgPath, "dist");
41
42
  //-- compilerHost
42
- this.#compilerHost = ts.createIncrementalCompilerHost(this.#parsedTsconfig.options);
43
+ this.#compilerHost = ts.createCompilerHost(this.#parsedTsconfig.options);
43
44
  const baseGetSourceFile = this.#compilerHost.getSourceFile;
44
45
  this.#compilerHost.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile, ...args) => {
45
46
  if (!shouldCreateNewSourceFile && this.#sourceFileCacheMap.has(path.normalize(fileName))) {
@@ -119,32 +120,33 @@ export class SdTsCompiler {
119
120
  return stylesheetResult.contents;
120
121
  }
121
122
  invalidate(modifiedFileSet) {
122
- this.#stylesheetBundler?.invalidate(modifiedFileSet);
123
- for (const modifiedFile of modifiedFileSet) {
124
- this.#sourceFileCacheMap.delete(path.normalize(modifiedFile));
125
- this.#emittedFilesCacheMap.delete(path.normalize(modifiedFile));
126
- if (this.#resourceDependencyCacheMap.has(path.normalize(modifiedFile))) {
127
- for (const referencingFile of this.#resourceDependencyCacheMap.get(path.normalize(modifiedFile))) {
128
- this.#sourceFileCacheMap.delete(path.normalize(referencingFile));
129
- this.#emittedFilesCacheMap.delete(path.normalize(referencingFile));
130
- }
131
- }
132
- }
133
- this.#modifiedFileSet.adds(...modifiedFileSet);
123
+ this.#modifiedFileSet.adds(...Array.from(modifiedFileSet).map(item => path.normalize(item)));
134
124
  }
135
125
  async buildAsync() {
136
126
  const affectedFileSet = new Set();
137
127
  const emitFileSet = new Set();
128
+ this.#debug(`get affected (old deps & old res deps)...`);
129
+ for (const modifiedFile of this.#modifiedFileSet) {
130
+ affectedFileSet.add(modifiedFile);
131
+ affectedFileSet.adds(...(this.#dependencyCacheMap.get(modifiedFile) ?? []));
132
+ affectedFileSet.adds(...(this.#resourceDependencyCacheMap.get(modifiedFile) ?? []));
133
+ }
134
+ this.#debug(`invalidate & clear cache...`);
135
+ this.#stylesheetBundler?.invalidate(this.#modifiedFileSet);
136
+ for (const affectedFile of affectedFileSet) {
137
+ this.#sourceFileCacheMap.delete(path.normalize(affectedFile));
138
+ this.#emittedFilesCacheMap.delete(path.normalize(affectedFile));
139
+ this.#stylesheetBundlingResultMap.delete(path.normalize(affectedFile));
140
+ this.#watchFileSet.delete(path.normalize(affectedFile));
141
+ }
142
+ this.#dependencyCacheMap.clear();
138
143
  this.#resourceDependencyCacheMap.clear();
139
- this.#watchFileSet.clear();
140
- this.#stylesheetBundlingResultMap.clear();
141
144
  this.#debug(`create program...`);
142
145
  if (this.#isForAngular) {
143
146
  this.#ngProgram = new NgtscProgram(this.#parsedTsconfig.fileNames, this.#parsedTsconfig.options, this.#compilerHost, this.#ngProgram);
144
147
  this.#program = this.#ngProgram.getTsProgram();
145
148
  }
146
149
  else {
147
- // noinspection UnnecessaryLocalVariableJS
148
150
  this.#program = ts.createProgram(this.#parsedTsconfig.fileNames, this.#parsedTsconfig.options, this.#compilerHost, this.#program);
149
151
  }
150
152
  const baseGetSourceFiles = this.#program.getSourceFiles;
@@ -162,53 +164,62 @@ export class SdTsCompiler {
162
164
  if (this.#ngProgram) {
163
165
  await this.#ngProgram.compiler.analyzeAsync();
164
166
  }
165
- this.#debug(`get affected...`);
166
- while (true) {
167
- const result = this.#builder.getSemanticDiagnosticsOfNextAffectedFile(undefined, (sourceFile) => {
168
- if (this.#ngProgram
169
- && this.#ngProgram.compiler.ignoreForDiagnostics.has(sourceFile)
170
- && sourceFile.fileName.endsWith('.ngtypecheck.ts')) {
171
- const originalFilename = sourceFile.fileName.slice(0, -15) + '.ts';
172
- const originalSourceFile = this.#builder.getSourceFile(originalFilename);
173
- if (originalSourceFile) {
174
- affectedFileSet.add(path.normalize(originalSourceFile.fileName));
175
- }
176
- return true;
167
+ const getOrgSourceFile = (sf) => {
168
+ if (sf.fileName.endsWith('.ngtypecheck.ts')) {
169
+ const orgFileName = sf.fileName.slice(0, -15) + '.ts';
170
+ return this.#program.getSourceFile(orgFileName);
171
+ }
172
+ return sf;
173
+ };
174
+ this.#debug(`get affected (new deps)...`);
175
+ for (const sf of this.#program.getSourceFiles()) {
176
+ const orgSf = getOrgSourceFile(sf);
177
+ if (!orgSf)
178
+ continue;
179
+ for (const dep of this.#builder.getAllDependencies(sf)) {
180
+ const depCache = this.#dependencyCacheMap.getOrCreate(path.normalize(dep), new Set());
181
+ depCache.add(path.normalize(orgSf.fileName));
182
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
183
+ affectedFileSet.add(path.normalize(orgSf.fileName));
177
184
  }
178
- return false;
179
- });
180
- if (!result) {
181
- break;
182
185
  }
183
- affectedFileSet.add(path.normalize(result.affected.fileName));
184
186
  }
185
- this.#debug(`get resource ref...`);
187
+ this.#debug(`get affected (new res deps)...`);
186
188
  if (this.#ngProgram) {
187
- this.#builder.getSourceFiles()
188
- .filter(sf => !this.#ngProgram || !this.#ngProgram.compiler.ignoreForEmit.has(sf))
189
- .forEach(sf => {
190
- const deps = this.#ngProgram.compiler.getResourceDependencies(sf);
191
- for (const dep of deps) {
189
+ for (const sf of this.#program.getSourceFiles()) {
190
+ if (this.#ngProgram.compiler.ignoreForEmit.has(sf)) {
191
+ continue;
192
+ }
193
+ for (const dep of this.#ngProgram.compiler.getResourceDependencies(sf)) {
192
194
  const ref = this.#resourceDependencyCacheMap.getOrCreate(path.normalize(dep), new Set());
193
195
  ref.add(path.normalize(sf.fileName));
194
196
  if (this.#modifiedFileSet.has(path.normalize(dep))) {
195
197
  affectedFileSet.add(path.normalize(sf.fileName));
196
198
  }
197
199
  }
198
- });
200
+ }
201
+ }
202
+ this.#debug(`get affected (init)...`);
203
+ if (affectedFileSet.size === 0) {
204
+ for (const sf of this.#program.getSourceFiles()) {
205
+ const orgSf = getOrgSourceFile(sf);
206
+ if (!orgSf)
207
+ continue;
208
+ affectedFileSet.add(path.normalize(orgSf.fileName));
209
+ }
199
210
  }
200
211
  this.#debug(`get diagnostics...`);
201
212
  const diagnostics = [];
202
- diagnostics.push(...this.#builder.getConfigFileParsingDiagnostics(), ...this.#builder.getOptionsDiagnostics(), ...this.#builder.getGlobalDiagnostics());
213
+ diagnostics.push(...this.#program.getConfigFileParsingDiagnostics(), ...this.#program.getOptionsDiagnostics(), ...this.#program.getGlobalDiagnostics());
203
214
  if (this.#ngProgram) {
204
215
  diagnostics.push(...this.#ngProgram.compiler.getOptionDiagnostics());
205
216
  }
206
217
  for (const affectedFile of affectedFileSet) {
207
- const affectedSourceFile = this.#sourceFileCacheMap.get(affectedFile);
218
+ const affectedSourceFile = this.#program.getSourceFile(affectedFile);
208
219
  if (!affectedSourceFile || (this.#ngProgram && this.#ngProgram.compiler.ignoreForDiagnostics.has(affectedSourceFile))) {
209
220
  continue;
210
221
  }
211
- diagnostics.push(...this.#builder.getSyntacticDiagnostics(affectedSourceFile), ...this.#builder.getSemanticDiagnostics(affectedSourceFile));
222
+ diagnostics.push(...this.#program.getSyntacticDiagnostics(affectedSourceFile), ...this.#program.getSemanticDiagnostics(affectedSourceFile));
212
223
  if (this.#ngProgram) {
213
224
  if (affectedSourceFile.isDeclarationFile) {
214
225
  continue;
@@ -217,8 +228,10 @@ export class SdTsCompiler {
217
228
  }
218
229
  }
219
230
  this.#debug(`prepare emit...`);
220
- while (true) {
221
- const affectedFileResult = this.#builder.emitNextAffectedFile((fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
231
+ const ngTransformers = this.#ngProgram?.compiler.prepareEmit().transformers;
232
+ for (const affectedFile of affectedFileSet) {
233
+ const sf = this.#program.getSourceFile(affectedFile);
234
+ this.#program.emit(sf, (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
222
235
  if (!sourceFiles || sourceFiles.length === 0) {
223
236
  this.#compilerHost.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
224
237
  return;
@@ -230,7 +243,7 @@ export class SdTsCompiler {
230
243
  }
231
244
  this.#ngProgram.compiler.incrementalCompilation.recordSuccessfulEmit(sourceFile);
232
245
  }
233
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
246
+ const emitFileInfoCaches = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
234
247
  if (PathUtil.isChildPath(sourceFile.fileName, this.#pkgPath)) {
235
248
  let realFilePath = fileName;
236
249
  let realText = text;
@@ -243,20 +256,16 @@ export class SdTsCompiler {
243
256
  realText = JSON.stringify(sourceMapContents);
244
257
  }
245
258
  }
246
- emitFiles.push({
259
+ emitFileInfoCaches.push({
247
260
  outRelPath: path.relative(this.#distPath, realFilePath),
248
261
  text: realText
249
262
  });
250
263
  }
251
264
  else {
252
- emitFiles.push({ text });
265
+ emitFileInfoCaches.push({ text });
253
266
  }
254
267
  emitFileSet.add(path.normalize(sourceFile.fileName));
255
- }, undefined, undefined, this.#ngProgram?.compiler.prepareEmit().transformers);
256
- if (!affectedFileResult) {
257
- break;
258
- }
259
- diagnostics.push(...affectedFileResult.result.diagnostics);
268
+ }, undefined, undefined, ngTransformers);
260
269
  }
261
270
  //-- global style
262
271
  if (this.#globalStyleFilePath != null
@@ -265,8 +274,8 @@ export class SdTsCompiler {
265
274
  this.#debug(`bundle global style...`);
266
275
  const data = await FsUtil.readFileAsync(this.#globalStyleFilePath);
267
276
  const contents = await this.#bundleStylesheetAsync(data, this.#globalStyleFilePath, this.#globalStyleFilePath);
268
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
269
- emitFiles.push({
277
+ const emitFileInfos = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
278
+ emitFileInfos.push({
270
279
  outRelPath: path.relative(path.resolve(this.#pkgPath, "src"), this.#globalStyleFilePath).replace(/\.scss$/, ".css"),
271
280
  text: contents
272
281
  });
@@ -274,7 +283,7 @@ export class SdTsCompiler {
274
283
  }
275
284
  //-- init
276
285
  this.#modifiedFileSet.clear();
277
- this.#debug(`build completed`);
286
+ this.#debug(`build completed`, affectedFileSet);
278
287
  //-- result
279
288
  return {
280
289
  program: this.#program,
@@ -1 +1 @@
1
- {"version":3,"file":"SdTsCompiler.js","sourceRoot":"","sources":["../../src/build-tools/SdTsCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,YAAY,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAC,mCAAmC,EAAC,MAAM,uDAAuD,CAAC;AAC1G,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC3B,MAAM,+EAA+E,CAAC;AAEvF,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAElC,MAAM,OAAO,YAAY;IACd,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7D,eAAe,CAAuB;IACtC,aAAa,CAAU;IAEvB,2BAA2B,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7D,mBAAmB,GAAG,IAAI,GAAG,EAAyB,CAAC;IACvD,qBAAqB,GAAG,IAAI,GAAG,EAGlC,CAAC;IAEE,kBAAkB,CAAyC;IAC3D,aAAa,CAAwC;IAE9D,UAAU,CAA2B;IACrC,QAAQ,CAAyB;IACjC,QAAQ,CAA0D;IAEzD,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,4BAA4B,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE5E,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,oBAAoB,CAAU;IAEvC,YAAY,OAAe,EACf,iBAAkC,EAClC,SAAkB,EAClB,mBAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAG1G,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtB,kCAAkC;QAElC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,0BAA0B,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE;YAC9E,GAAG,QAAQ,CAAC,sBAAsB;YAClC,GAAG,iBAAiB;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEtF,iBAAiB;QAEjB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEpF,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,QAAQ,EAAE,wBAAwB,EAAE,OAAO,EAAE,yBAAyB,EAAE,GAAG,IAAI,EAAE,EAAE;YACrH,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACzF,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAC/B,IAAI,CAAC,aAAa,EAClB,QAAQ,EACR,wBAAwB,EACxB,OAAO,EACP,IAAI,EACJ,GAAG,IAAI,CACR,CAAC;YAEF,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,CAAC;iBACI,CAAC;gBACJ,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,QAAQ,EAAE,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,sBAAsB;YAEtB,MAAM,aAAa,GAAG,mCAAmC,CAAC,YAAY,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAClH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0BAA0B,CACtD;gBACE,aAAa,EAAE,OAAO;gBACtB,YAAY,EAAE,CAAC,SAAS;gBACxB,WAAW,EAAE,IAAI;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,SAAS,EAAE,QAAQ,EAAE,8BAA8B;gBACnD,WAAW,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAC;gBACvD,YAAY,EAAE,EAAE;gBAChB,oBAAoB,EAAE,EAAE;gBACxB,MAAM,EAAE,aAAa;gBACrB,qBAAqB,EAAE,SAAS;gBAChC,YAAY,EAAE;oBACZ,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,gBAAgB;oBACtB,QAAQ,EAAE,QAAQ;iBACnB;aACF,EACD,SAAS,CACV,CAAC;YAEF,iBAAiB;YAEhB,IAAI,CAAC,aAAqC,CAAC,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;gBAC9E,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrD,CAAC,CAAC;YAED,IAAI,CAAC,aAAqC,CAAC,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAE,OAIpF,EAAE,EAAE;gBACH,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEvG,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC;YACzE,CAAC,CAAC;YAED,IAAI,CAAC,aAAqC,CAAC,wBAAwB,GAAG,GAAG,EAAE;gBAC1E,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC/B,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY,EAAE,cAAsB,EAAE,eAA8B,IAAI;QACnG,+BAA+B;QAC/B,sEAAsE;QACtE,uDAAuD;QAEvD,IAAI,CAAC,MAAM,CAAC,gBAAgB,cAAc,KAAK,YAAY,GAAG,CAAC,CAAC;QAEhE,MAAM,gBAAgB,GAAG,YAAY,IAAI,IAAI;YAC3C,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC;YACzD,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAmB,CAAC,YAAY,CAC3C,IAAI,EACJ,cAAc,EACd,MAAM,CACP,CAAC;QAEJ,IAAI,gBAAgB,CAAC,eAAe,EAAE,CAAC;YACrC,KAAK,MAAM,cAAc,IAAI,gBAAgB,CAAC,eAAe,EAAE,CAAC;gBAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;gBACpH,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,cAAc,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtH,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,cAAc,CAAC,EAAE;YACpF,WAAW,EAAE,gBAAgB,CAAC,WAAW;YACzC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;SACpC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,eAA4B;QACrC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAErD,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;gBACvE,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAE,EAAE,CAAC;oBAClG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;oBACjE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAChC,IAAI,CAAC,eAAe,CAAC,SAAS,EAC9B,IAAI,CAAC,eAAe,CAAC,OAAO,EAC5B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAU,CAChB,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QACjD,CAAC;aACI,CAAC;YACJ,0CAA0C;YAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,aAAa,CAC9B,IAAI,CAAC,eAAe,CAAC,SAAS,EAC9B,IAAI,CAAC,eAAe,CAAC,OAAO,EAC5B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,QAAQ,CACd,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,UAAU,GAAG,UAAU;YACpD,MAAM,KAAK,GAAsD,kBAAkB,CAAC,GAAG,UAAU,CAAC,CAAC;YAEnG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEjC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,8CAA8C,CAC/D,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE/B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,wCAAwC,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;gBAC9F,IACE,IAAI,CAAC,UAAU;uBACZ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC;uBAC7D,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAClD,CAAC;oBACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;oBACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;oBAC1E,IAAI,kBAAkB,EAAE,CAAC;wBACvB,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACnE,CAAC;oBAED,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM;YACR,CAAC;YAED,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAE,MAAM,CAAC,QAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;iBAC3B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACjF,OAAO,CAAC,EAAE,CAAC,EAAE;gBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;gBACnE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;oBACjG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACrC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACnD,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAElC,MAAM,WAAW,GAAoB,EAAE,CAAC;QAExC,WAAW,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,QAAQ,CAAC,+BAA+B,EAAE,EAClD,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EACxC,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CACxC,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;YAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACtE,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;gBACtH,SAAS;YACX,CAAC;YAED,WAAW,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,EAC5D,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAC5D,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;oBACzC,SAAS;gBACX,CAAC;gBAED,WAAW,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,WAAW,CAAC,YAAY,CAAC,CAChG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE/B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;gBAC/H,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;oBAC7F,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;gBAEvE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC3D,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBACnF,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClG,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7D,IAAI,YAAY,GAAG,QAAQ,CAAC;oBAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC;oBACpB,IAAI,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC1G,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;wBAE5I,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;4BACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BAC/C,kBAAkB;4BAClB,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BACrE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;wBAC/C,CAAC;oBACH,CAAC;oBAED,SAAS,CAAC,IAAI,CAAC;wBACb,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;wBACvD,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;gBACL,CAAC;qBACI,CAAC;oBACJ,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;gBACzB,CAAC;gBAED,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvD,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC;YAE/E,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM;YACR,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAED,iBAAiB;QACjB,IACE,IAAI,CAAC,oBAAoB,IAAI,IAAI;eAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;eACxC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAC7D,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAEtC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/G,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;YACxF,SAAS,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;gBACnH,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC;QAED,SAAS;QAET,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE/B,WAAW;QAEX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,qBAAqB,EAAE,WAAW;YAClC,2BAA2B,EAAE,IAAI,CAAC,4BAA4B;YAC9D,iBAAiB,EAAE,IAAI,CAAC,qBAAqB;YAC7C,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,eAAe;YACf,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,GAAU;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"SdTsCompiler.js","sourceRoot":"","sources":["../../src/build-tools/SdTsCompiler.ts"],"names":[],"mappings":"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"}
@@ -15,13 +15,13 @@ export class SdTsLibBundler {
15
15
  async buildAsync() {
16
16
  const buildResult = await this.#compiler.buildAsync();
17
17
  for (const emitFile of buildResult.emitFileSet) {
18
- const emittedFiles = buildResult.emitFilesCacheMap.get(emitFile);
19
- if (emittedFiles) {
20
- for (const emittedFile of emittedFiles) {
21
- if (emittedFile.outRelPath != null) {
22
- const distPath = path.resolve(this.#pkgPath, "dist", emittedFile.outRelPath);
18
+ const emitFileInfos = buildResult.emitFilesCacheMap.get(emitFile);
19
+ if (emitFileInfos) {
20
+ for (const emitFileInfo of emitFileInfos) {
21
+ if (emitFileInfo.outRelPath != null) {
22
+ const distPath = path.resolve(this.#pkgPath, "dist", emitFileInfo.outRelPath);
23
23
  if (PathUtil.isChildPath(distPath, path.resolve(this.#pkgPath, "dist"))) {
24
- await FsUtil.writeFileAsync(distPath, emittedFile.text);
24
+ await FsUtil.writeFileAsync(distPath, emitFileInfo.text);
25
25
  }
26
26
  }
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SdTsLibBundler.js","sourceRoot":"","sources":["../../src/build-tools/SdTsLibBundler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdTsLibBundler.js","sourceRoot":"","sources":["../../src/build-tools/SdTsLibBundler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "11.1.56",
3
+ "version": "11.1.57",
4
4
  "description": "심플리즘 패키지 - CLI",
5
5
  "author": "김석래",
6
6
  "repository": {
@@ -23,10 +23,10 @@
23
23
  "@angular/compiler-cli": "^17.3.10",
24
24
  "@angular/core": "^17.3.10",
25
25
  "@electron/rebuild": "^3.6.0",
26
- "@simplysm/sd-core-common": "11.1.56",
27
- "@simplysm/sd-core-node": "11.1.56",
28
- "@simplysm/sd-service-server": "11.1.56",
29
- "@simplysm/sd-storage": "11.1.56",
26
+ "@simplysm/sd-core-common": "11.1.57",
27
+ "@simplysm/sd-core-node": "11.1.57",
28
+ "@simplysm/sd-service-server": "11.1.57",
29
+ "@simplysm/sd-storage": "11.1.57",
30
30
  "browserslist": "^4.23.0",
31
31
  "cordova": "^12.0.0",
32
32
  "electron": "^29.4.1",
@@ -18,6 +18,7 @@ export class SdTsCompiler {
18
18
  readonly #parsedTsconfig: ts.ParsedCommandLine;
19
19
  readonly #isForAngular: boolean;
20
20
 
21
+ readonly #dependencyCacheMap = new Map<string, Set<string>>();
21
22
  readonly #resourceDependencyCacheMap = new Map<string, Set<string>>();
22
23
  readonly #sourceFileCacheMap = new Map<string, ts.SourceFile>();
23
24
  readonly #emittedFilesCacheMap = new Map<string, {
@@ -48,7 +49,6 @@ export class SdTsCompiler {
48
49
  this.#pkgPath = pkgPath;
49
50
  this.#globalStyleFilePath = globalStyleFilePath != null ? path.normalize(globalStyleFilePath) : undefined;
50
51
 
51
-
52
52
  this.#debug("초기화...");
53
53
 
54
54
  //-- isForAngular / parsedTsConfig
@@ -65,7 +65,7 @@ export class SdTsCompiler {
65
65
 
66
66
  //-- compilerHost
67
67
 
68
- this.#compilerHost = ts.createIncrementalCompilerHost(this.#parsedTsconfig.options);
68
+ this.#compilerHost = ts.createCompilerHost(this.#parsedTsconfig.options);
69
69
 
70
70
  const baseGetSourceFile = this.#compilerHost.getSourceFile;
71
71
  this.#compilerHost.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile, ...args) => {
@@ -184,30 +184,34 @@ export class SdTsCompiler {
184
184
  }
185
185
 
186
186
  invalidate(modifiedFileSet: Set<string>) {
187
- this.#stylesheetBundler?.invalidate(modifiedFileSet);
188
-
189
- for (const modifiedFile of modifiedFileSet) {
190
- this.#sourceFileCacheMap.delete(path.normalize(modifiedFile));
191
- this.#emittedFilesCacheMap.delete(path.normalize(modifiedFile));
192
-
193
- if (this.#resourceDependencyCacheMap.has(path.normalize(modifiedFile))) {
194
- for (const referencingFile of this.#resourceDependencyCacheMap.get(path.normalize(modifiedFile))!) {
195
- this.#sourceFileCacheMap.delete(path.normalize(referencingFile));
196
- this.#emittedFilesCacheMap.delete(path.normalize(referencingFile));
197
- }
198
- }
199
- }
200
-
201
- this.#modifiedFileSet.adds(...modifiedFileSet);
187
+ this.#modifiedFileSet.adds(...Array.from(modifiedFileSet).map(item => path.normalize(item)));
202
188
  }
203
189
 
204
190
  async buildAsync(): Promise<ISdTsCompilerResult> {
205
191
  const affectedFileSet = new Set<string>();
206
192
  const emitFileSet = new Set<string>();
207
193
 
194
+ this.#debug(`get affected (old deps & old res deps)...`);
195
+
196
+ for (const modifiedFile of this.#modifiedFileSet) {
197
+ affectedFileSet.add(modifiedFile);
198
+ affectedFileSet.adds(...(this.#dependencyCacheMap.get(modifiedFile) ?? []));
199
+ affectedFileSet.adds(...(this.#resourceDependencyCacheMap.get(modifiedFile) ?? []));
200
+ }
201
+
202
+ this.#debug(`invalidate & clear cache...`);
203
+
204
+ this.#stylesheetBundler?.invalidate(this.#modifiedFileSet);
205
+
206
+ for (const affectedFile of affectedFileSet) {
207
+ this.#sourceFileCacheMap.delete(path.normalize(affectedFile));
208
+ this.#emittedFilesCacheMap.delete(path.normalize(affectedFile));
209
+ this.#stylesheetBundlingResultMap.delete(path.normalize(affectedFile));
210
+ this.#watchFileSet.delete(path.normalize(affectedFile));
211
+ }
212
+
213
+ this.#dependencyCacheMap.clear();
208
214
  this.#resourceDependencyCacheMap.clear();
209
- this.#watchFileSet.clear();
210
- this.#stylesheetBundlingResultMap.clear();
211
215
 
212
216
  this.#debug(`create program...`);
213
217
 
@@ -221,7 +225,6 @@ export class SdTsCompiler {
221
225
  this.#program = this.#ngProgram.getTsProgram();
222
226
  }
223
227
  else {
224
- // noinspection UnnecessaryLocalVariableJS
225
228
  this.#program = ts.createProgram(
226
229
  this.#parsedTsconfig.fileNames,
227
230
  this.#parsedTsconfig.options,
@@ -255,49 +258,58 @@ export class SdTsCompiler {
255
258
  await this.#ngProgram.compiler.analyzeAsync();
256
259
  }
257
260
 
258
- this.#debug(`get affected...`);
259
-
260
- while (true) {
261
- const result = this.#builder.getSemanticDiagnosticsOfNextAffectedFile(undefined, (sourceFile) => {
262
- if (
263
- this.#ngProgram
264
- && this.#ngProgram.compiler.ignoreForDiagnostics.has(sourceFile)
265
- && sourceFile.fileName.endsWith('.ngtypecheck.ts')
266
- ) {
267
- const originalFilename = sourceFile.fileName.slice(0, -15) + '.ts';
268
- const originalSourceFile = this.#builder!.getSourceFile(originalFilename);
269
- if (originalSourceFile) {
270
- affectedFileSet.add(path.normalize(originalSourceFile.fileName));
271
- }
261
+ const getOrgSourceFile = (sf: ts.SourceFile) => {
262
+ if (sf.fileName.endsWith('.ngtypecheck.ts')) {
263
+ const orgFileName = sf.fileName.slice(0, -15) + '.ts';
264
+ return this.#program!.getSourceFile(orgFileName);
265
+ }
272
266
 
273
- return true;
274
- }
267
+ return sf;
268
+ };
275
269
 
276
- return false;
277
- });
270
+ this.#debug(`get affected (new deps)...`);
278
271
 
279
- if (!result) {
280
- break;
281
- }
272
+ for (const sf of this.#program.getSourceFiles()) {
273
+ const orgSf = getOrgSourceFile(sf);
274
+ if (!orgSf) continue;
282
275
 
283
- affectedFileSet.add(path.normalize((result.affected as ts.SourceFile).fileName));
276
+ //TODO: getDependency 직접 개발하여 속도 개선
277
+ for (const dep of this.#builder.getAllDependencies(sf)) {
278
+ const depCache = this.#dependencyCacheMap.getOrCreate(path.normalize(dep), new Set<string>());
279
+ depCache.add(path.normalize(orgSf.fileName));
280
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
281
+ affectedFileSet.add(path.normalize(orgSf.fileName));
282
+ }
283
+ }
284
284
  }
285
285
 
286
- this.#debug(`get resource ref...`);
286
+ this.#debug(`get affected (new res deps)...`);
287
287
 
288
288
  if (this.#ngProgram) {
289
- this.#builder.getSourceFiles()
290
- .filter(sf => !this.#ngProgram || !this.#ngProgram.compiler.ignoreForEmit.has(sf))
291
- .forEach(sf => {
292
- const deps = this.#ngProgram!.compiler.getResourceDependencies(sf);
293
- for (const dep of deps) {
294
- const ref = this.#resourceDependencyCacheMap.getOrCreate(path.normalize(dep), new Set<string>());
295
- ref.add(path.normalize(sf.fileName));
296
- if (this.#modifiedFileSet.has(path.normalize(dep))) {
297
- affectedFileSet.add(path.normalize(sf.fileName));
298
- }
289
+ for (const sf of this.#program.getSourceFiles()) {
290
+ if (this.#ngProgram.compiler.ignoreForEmit.has(sf)) {
291
+ continue;
292
+ }
293
+
294
+ for (const dep of this.#ngProgram.compiler.getResourceDependencies(sf)) {
295
+ const ref = this.#resourceDependencyCacheMap.getOrCreate(path.normalize(dep), new Set<string>());
296
+ ref.add(path.normalize(sf.fileName));
297
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
298
+ affectedFileSet.add(path.normalize(sf.fileName));
299
299
  }
300
- });
300
+ }
301
+ }
302
+ }
303
+
304
+ this.#debug(`get affected (init)...`);
305
+
306
+ if (affectedFileSet.size === 0) {
307
+ for (const sf of this.#program.getSourceFiles()) {
308
+ const orgSf = getOrgSourceFile(sf);
309
+ if (!orgSf) continue;
310
+
311
+ affectedFileSet.add(path.normalize(orgSf.fileName));
312
+ }
301
313
  }
302
314
 
303
315
  this.#debug(`get diagnostics...`);
@@ -305,9 +317,9 @@ export class SdTsCompiler {
305
317
  const diagnostics: ts.Diagnostic[] = [];
306
318
 
307
319
  diagnostics.push(
308
- ...this.#builder.getConfigFileParsingDiagnostics(),
309
- ...this.#builder.getOptionsDiagnostics(),
310
- ...this.#builder.getGlobalDiagnostics()
320
+ ...this.#program.getConfigFileParsingDiagnostics(),
321
+ ...this.#program.getOptionsDiagnostics(),
322
+ ...this.#program.getGlobalDiagnostics()
311
323
  );
312
324
 
313
325
  if (this.#ngProgram) {
@@ -315,14 +327,14 @@ export class SdTsCompiler {
315
327
  }
316
328
 
317
329
  for (const affectedFile of affectedFileSet) {
318
- const affectedSourceFile = this.#sourceFileCacheMap.get(affectedFile);
330
+ const affectedSourceFile = this.#program.getSourceFile(affectedFile);
319
331
  if (!affectedSourceFile || (this.#ngProgram && this.#ngProgram.compiler.ignoreForDiagnostics.has(affectedSourceFile))) {
320
332
  continue;
321
333
  }
322
334
 
323
335
  diagnostics.push(
324
- ...this.#builder.getSyntacticDiagnostics(affectedSourceFile),
325
- ...this.#builder.getSemanticDiagnostics(affectedSourceFile)
336
+ ...this.#program.getSyntacticDiagnostics(affectedSourceFile),
337
+ ...this.#program.getSemanticDiagnostics(affectedSourceFile)
326
338
  );
327
339
 
328
340
  if (this.#ngProgram) {
@@ -338,15 +350,17 @@ export class SdTsCompiler {
338
350
 
339
351
  this.#debug(`prepare emit...`);
340
352
 
341
- while (true) {
342
- const affectedFileResult = this.#builder.emitNextAffectedFile((fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
353
+ const ngTransformers = this.#ngProgram?.compiler.prepareEmit().transformers;
354
+
355
+ for (const affectedFile of affectedFileSet) {
356
+ const sf = this.#program.getSourceFile(affectedFile);
357
+ this.#program.emit(sf, (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
343
358
  if (!sourceFiles || sourceFiles.length === 0) {
344
359
  this.#compilerHost.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
345
360
  return;
346
361
  }
347
362
 
348
363
  const sourceFile = ts.getOriginalNode(sourceFiles[0], ts.isSourceFile);
349
-
350
364
  if (this.#ngProgram) {
351
365
  if (this.#ngProgram.compiler.ignoreForEmit.has(sourceFile)) {
352
366
  return;
@@ -354,7 +368,7 @@ export class SdTsCompiler {
354
368
  this.#ngProgram.compiler.incrementalCompilation.recordSuccessfulEmit(sourceFile);
355
369
  }
356
370
 
357
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
371
+ const emitFileInfoCaches = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
358
372
  if (PathUtil.isChildPath(sourceFile.fileName, this.#pkgPath)) {
359
373
  let realFilePath = fileName;
360
374
  let realText = text;
@@ -369,23 +383,17 @@ export class SdTsCompiler {
369
383
  }
370
384
  }
371
385
 
372
- emitFiles.push({
386
+ emitFileInfoCaches.push({
373
387
  outRelPath: path.relative(this.#distPath, realFilePath),
374
388
  text: realText
375
389
  });
376
390
  }
377
391
  else {
378
- emitFiles.push({text});
392
+ emitFileInfoCaches.push({text});
379
393
  }
380
394
 
381
395
  emitFileSet.add(path.normalize(sourceFile.fileName));
382
- }, undefined, undefined, this.#ngProgram?.compiler.prepareEmit().transformers);
383
-
384
- if (!affectedFileResult) {
385
- break;
386
- }
387
-
388
- diagnostics.push(...affectedFileResult.result.diagnostics);
396
+ }, undefined, undefined, ngTransformers);
389
397
  }
390
398
 
391
399
  //-- global style
@@ -398,8 +406,8 @@ export class SdTsCompiler {
398
406
 
399
407
  const data = await FsUtil.readFileAsync(this.#globalStyleFilePath);
400
408
  const contents = await this.#bundleStylesheetAsync(data, this.#globalStyleFilePath, this.#globalStyleFilePath);
401
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
402
- emitFiles.push({
409
+ const emitFileInfos = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
410
+ emitFileInfos.push({
403
411
  outRelPath: path.relative(path.resolve(this.#pkgPath, "src"), this.#globalStyleFilePath).replace(/\.scss$/, ".css"),
404
412
  text: contents
405
413
  });
@@ -410,7 +418,7 @@ export class SdTsCompiler {
410
418
 
411
419
  this.#modifiedFileSet.clear();
412
420
 
413
- this.#debug(`build completed`);
421
+ this.#debug(`build completed`, affectedFileSet);
414
422
 
415
423
  //-- result
416
424
 
@@ -33,13 +33,13 @@ export class SdTsLibBundler {
33
33
  const buildResult = await this.#compiler.buildAsync();
34
34
 
35
35
  for (const emitFile of buildResult.emitFileSet) {
36
- const emittedFiles = buildResult.emitFilesCacheMap.get(emitFile);
37
- if (emittedFiles) {
38
- for (const emittedFile of emittedFiles) {
39
- if (emittedFile.outRelPath != null) {
40
- const distPath = path.resolve(this.#pkgPath, "dist", emittedFile.outRelPath);
36
+ const emitFileInfos = buildResult.emitFilesCacheMap.get(emitFile);
37
+ if (emitFileInfos) {
38
+ for (const emitFileInfo of emitFileInfos) {
39
+ if (emitFileInfo.outRelPath != null) {
40
+ const distPath = path.resolve(this.#pkgPath, "dist", emitFileInfo.outRelPath);
41
41
  if (PathUtil.isChildPath(distPath, path.resolve(this.#pkgPath, "dist"))) {
42
- await FsUtil.writeFileAsync(distPath, emittedFile.text);
42
+ await FsUtil.writeFileAsync(distPath, emitFileInfo.text);
43
43
  }
44
44
  }
45
45
  }