@simplysm/sd-cli 11.1.56 → 11.1.58

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.
@@ -4,13 +4,14 @@ import { FsUtil, Logger, PathUtil } from "@simplysm/sd-core-node";
4
4
  import { transformSupportedBrowsersToTargets } from "@angular-devkit/build-angular/src/tools/esbuild/utils";
5
5
  import browserslist from "browserslist";
6
6
  import { ComponentStylesheetBundler } from "@angular-devkit/build-angular/src/tools/esbuild/angular/component-stylesheets";
7
- import { StringUtil } from "@simplysm/sd-core-common";
7
+ import { NeverEntryError, StringUtil } from "@simplysm/sd-core-common";
8
8
  import { NgtscProgram, OptimizeFor } from "@angular/compiler-cli";
9
9
  import { createHash } from "crypto";
10
10
  export class SdTsCompiler {
11
11
  #logger = Logger.get(["simplysm", "sd-cli", "SdTsCompiler"]);
12
12
  #parsedTsconfig;
13
13
  #isForAngular;
14
+ #revDependencyCacheMap = new Map();
14
15
  #resourceDependencyCacheMap = new Map();
15
16
  #sourceFileCacheMap = new Map();
16
17
  #emittedFilesCacheMap = new Map();
@@ -18,7 +19,7 @@ export class SdTsCompiler {
18
19
  #compilerHost;
19
20
  #ngProgram;
20
21
  #program;
21
- #builder;
22
+ // #builder: ts.EmitAndSemanticDiagnosticsBuilderProgram | undefined;
22
23
  #modifiedFileSet = new Set();
23
24
  #watchFileSet = new Set();
24
25
  #stylesheetBundlingResultMap = 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.#revDependencyCacheMap.get(modifiedFile) ?? []));
132
+ affectedFileSet.adds(...(this.#resourceDependencyCacheMap.get(modifiedFile) ?? []));
133
+ this.#emittedFilesCacheMap.delete(path.normalize(modifiedFile));
134
+ }
135
+ this.#debug(`invalidate & clear cache...`);
136
+ this.#stylesheetBundler?.invalidate(this.#modifiedFileSet);
137
+ for (const affectedFile of affectedFileSet) {
138
+ this.#sourceFileCacheMap.delete(path.normalize(affectedFile));
139
+ this.#stylesheetBundlingResultMap.delete(path.normalize(affectedFile));
140
+ this.#watchFileSet.delete(path.normalize(affectedFile));
141
+ }
142
+ this.#revDependencyCacheMap.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;
@@ -158,57 +160,121 @@ export class SdTsCompiler {
158
160
  return files;
159
161
  };
160
162
  this.#debug(`create builder...`);
161
- this.#builder = ts.createEmitAndSemanticDiagnosticsBuilderProgram(this.#program, this.#compilerHost, this.#builder);
163
+ // this.#builder = ts.createEmitAndSemanticDiagnosticsBuilderProgram(
164
+ // this.#program,
165
+ // this.#compilerHost,
166
+ // this.#builder
167
+ // );
162
168
  if (this.#ngProgram) {
163
169
  await this.#ngProgram.compiler.analyzeAsync();
164
170
  }
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));
171
+ const getOrgSourceFile = (sf) => {
172
+ if (sf.fileName.endsWith('.ngtypecheck.ts')) {
173
+ const orgFileName = sf.fileName.slice(0, -15) + '.ts';
174
+ return this.#program.getSourceFile(orgFileName);
175
+ }
176
+ return sf;
177
+ };
178
+ this.#debug(`get affected (new deps)...`);
179
+ const depMap = new Map();
180
+ for (const sf of this.#program.getSourceFiles()) {
181
+ const orgSf = getOrgSourceFile(sf);
182
+ if (!orgSf)
183
+ continue;
184
+ const refs = this.#findDeps(orgSf);
185
+ depMap.set(path.normalize(orgSf.fileName), refs);
186
+ }
187
+ const allDepMap = new Map();
188
+ const getAllDeps = (fileName, prevSet) => {
189
+ if (allDepMap.has(fileName)) {
190
+ return allDepMap.get(fileName);
191
+ }
192
+ const result = new Set();
193
+ const deps = depMap.get(fileName) ?? [];
194
+ result.adds(...deps.map(item => item.fileName));
195
+ for (const dep of deps) {
196
+ const targetDeps = depMap.get(dep.fileName) ?? [];
197
+ if (dep.importName === "*") {
198
+ for (const targetRefItem of targetDeps.filter(item => item.exportName != null)) {
199
+ if (prevSet?.has(targetRefItem.fileName))
200
+ continue;
201
+ result.add(targetRefItem.fileName);
202
+ result.adds(...getAllDeps(targetRefItem.fileName, new Set(prevSet).adds(...result)));
203
+ }
204
+ }
205
+ else {
206
+ for (const targetRefItem of targetDeps.filter(item => item.exportName === dep.importName)) {
207
+ if (prevSet?.has(targetRefItem.fileName))
208
+ continue;
209
+ result.add(targetRefItem.fileName);
210
+ result.adds(...getAllDeps(targetRefItem.fileName, new Set(prevSet).adds(...result)));
175
211
  }
176
- return true;
177
212
  }
178
- return false;
179
- });
180
- if (!result) {
181
- break;
182
213
  }
183
- affectedFileSet.add(path.normalize(result.affected.fileName));
214
+ return result;
215
+ };
216
+ for (const sf of this.#program.getSourceFiles()) {
217
+ const orgSf = getOrgSourceFile(sf);
218
+ if (!orgSf)
219
+ continue;
220
+ const deps = getAllDeps(path.normalize(orgSf.fileName));
221
+ allDepMap.set(path.normalize(orgSf.fileName), deps);
222
+ for (const dep of getAllDeps(path.normalize(orgSf.fileName))) {
223
+ const depCache = this.#revDependencyCacheMap.getOrCreate(path.normalize(dep), new Set());
224
+ depCache.add(path.normalize(orgSf.fileName));
225
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
226
+ affectedFileSet.add(path.normalize(orgSf.fileName));
227
+ }
228
+ }
184
229
  }
185
- this.#debug(`get resource ref...`);
230
+ /*for (const sf of this.#program.getSourceFiles()) {
231
+ const orgSf = getOrgSourceFile(sf);
232
+ if (!orgSf) continue;
233
+
234
+ for (const dep of this.#builder.getAllDependencies(sf)) {
235
+ const depCache = this.#dependencyCacheMap.getOrCreate(path.normalize(dep), new Set<string>());
236
+ depCache.add(path.normalize(orgSf.fileName));
237
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
238
+ affectedFileSet.add(path.normalize(orgSf.fileName));
239
+ }
240
+ }
241
+ }*/
186
242
  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) {
243
+ this.#debug(`get affected (new res deps)...`);
244
+ for (const sf of this.#program.getSourceFiles()) {
245
+ if (this.#ngProgram.compiler.ignoreForEmit.has(sf)) {
246
+ continue;
247
+ }
248
+ for (const dep of this.#ngProgram.compiler.getResourceDependencies(sf)) {
192
249
  const ref = this.#resourceDependencyCacheMap.getOrCreate(path.normalize(dep), new Set());
193
250
  ref.add(path.normalize(sf.fileName));
194
251
  if (this.#modifiedFileSet.has(path.normalize(dep))) {
195
252
  affectedFileSet.add(path.normalize(sf.fileName));
196
253
  }
197
254
  }
198
- });
255
+ }
256
+ }
257
+ if (affectedFileSet.size === 0) {
258
+ this.#debug(`get affected (init)...`);
259
+ for (const sf of this.#program.getSourceFiles()) {
260
+ const orgSf = getOrgSourceFile(sf);
261
+ if (!orgSf)
262
+ continue;
263
+ affectedFileSet.add(path.normalize(orgSf.fileName));
264
+ }
199
265
  }
200
266
  this.#debug(`get diagnostics...`);
201
267
  const diagnostics = [];
202
- diagnostics.push(...this.#builder.getConfigFileParsingDiagnostics(), ...this.#builder.getOptionsDiagnostics(), ...this.#builder.getGlobalDiagnostics());
268
+ diagnostics.push(...this.#program.getConfigFileParsingDiagnostics(), ...this.#program.getOptionsDiagnostics(), ...this.#program.getGlobalDiagnostics());
203
269
  if (this.#ngProgram) {
204
270
  diagnostics.push(...this.#ngProgram.compiler.getOptionDiagnostics());
205
271
  }
206
272
  for (const affectedFile of affectedFileSet) {
207
- const affectedSourceFile = this.#sourceFileCacheMap.get(affectedFile);
273
+ const affectedSourceFile = this.#program.getSourceFile(affectedFile);
208
274
  if (!affectedSourceFile || (this.#ngProgram && this.#ngProgram.compiler.ignoreForDiagnostics.has(affectedSourceFile))) {
209
275
  continue;
210
276
  }
211
- diagnostics.push(...this.#builder.getSyntacticDiagnostics(affectedSourceFile), ...this.#builder.getSemanticDiagnostics(affectedSourceFile));
277
+ diagnostics.push(...this.#program.getSyntacticDiagnostics(affectedSourceFile), ...this.#program.getSemanticDiagnostics(affectedSourceFile));
212
278
  if (this.#ngProgram) {
213
279
  if (affectedSourceFile.isDeclarationFile) {
214
280
  continue;
@@ -217,8 +283,16 @@ export class SdTsCompiler {
217
283
  }
218
284
  }
219
285
  this.#debug(`prepare emit...`);
220
- while (true) {
221
- const affectedFileResult = this.#builder.emitNextAffectedFile((fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
286
+ const ngTransformers = this.#ngProgram?.compiler.prepareEmit().transformers;
287
+ for (const affectedFile of affectedFileSet) {
288
+ if (this.#emittedFilesCacheMap.has(affectedFile)) {
289
+ continue;
290
+ }
291
+ const sf = this.#program.getSourceFile(affectedFile);
292
+ if (!sf) {
293
+ continue;
294
+ }
295
+ this.#program.emit(sf, (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
222
296
  if (!sourceFiles || sourceFiles.length === 0) {
223
297
  this.#compilerHost.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
224
298
  return;
@@ -230,7 +304,7 @@ export class SdTsCompiler {
230
304
  }
231
305
  this.#ngProgram.compiler.incrementalCompilation.recordSuccessfulEmit(sourceFile);
232
306
  }
233
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
307
+ const emitFileInfoCaches = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
234
308
  if (PathUtil.isChildPath(sourceFile.fileName, this.#pkgPath)) {
235
309
  let realFilePath = fileName;
236
310
  let realText = text;
@@ -243,20 +317,16 @@ export class SdTsCompiler {
243
317
  realText = JSON.stringify(sourceMapContents);
244
318
  }
245
319
  }
246
- emitFiles.push({
320
+ emitFileInfoCaches.push({
247
321
  outRelPath: path.relative(this.#distPath, realFilePath),
248
322
  text: realText
249
323
  });
250
324
  }
251
325
  else {
252
- emitFiles.push({ text });
326
+ emitFileInfoCaches.push({ text });
253
327
  }
254
328
  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);
329
+ }, undefined, undefined, ngTransformers);
260
330
  }
261
331
  //-- global style
262
332
  if (this.#globalStyleFilePath != null
@@ -265,8 +335,8 @@ export class SdTsCompiler {
265
335
  this.#debug(`bundle global style...`);
266
336
  const data = await FsUtil.readFileAsync(this.#globalStyleFilePath);
267
337
  const contents = await this.#bundleStylesheetAsync(data, this.#globalStyleFilePath, this.#globalStyleFilePath);
268
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
269
- emitFiles.push({
338
+ const emitFileInfos = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
339
+ emitFileInfos.push({
270
340
  outRelPath: path.relative(path.resolve(this.#pkgPath, "src"), this.#globalStyleFilePath).replace(/\.scss$/, ".css"),
271
341
  text: contents
272
342
  });
@@ -274,7 +344,7 @@ export class SdTsCompiler {
274
344
  }
275
345
  //-- init
276
346
  this.#modifiedFileSet.clear();
277
- this.#debug(`build completed`);
347
+ this.#debug(`build completed`, affectedFileSet);
278
348
  //-- result
279
349
  return {
280
350
  program: this.#program,
@@ -289,5 +359,86 @@ export class SdTsCompiler {
289
359
  #debug(...msg) {
290
360
  this.#logger.debug(`[${path.basename(this.#pkgPath)}]`, ...msg);
291
361
  }
362
+ #findDeps(sf) {
363
+ const deps = [];
364
+ const tc = this.#program.getTypeChecker();
365
+ sf.forEachChild((node) => {
366
+ if (ts.isExportDeclaration(node)) {
367
+ if (node.moduleSpecifier) {
368
+ const moduleSymbol = tc.getSymbolAtLocation(node.moduleSpecifier);
369
+ if (!moduleSymbol)
370
+ throw new NeverEntryError(`export moduleSymbol: ${sf.fileName}`);
371
+ const decls = moduleSymbol.getDeclarations();
372
+ if (!decls)
373
+ throw new NeverEntryError(`export decls: ${sf.fileName}`);
374
+ const namedBindings = node.exportClause;
375
+ if (namedBindings && ts.isNamedExports(namedBindings)) {
376
+ for (const el of namedBindings.elements) {
377
+ for (const decl of decls) {
378
+ deps.push({
379
+ fileName: path.normalize(decl.getSourceFile().fileName),
380
+ importName: el.name.text,
381
+ exportName: el.propertyName?.text ?? el.name.text
382
+ });
383
+ }
384
+ }
385
+ }
386
+ else {
387
+ if (!moduleSymbol.exports) {
388
+ throw new NeverEntryError("1234");
389
+ }
390
+ for (const decl of decls) {
391
+ for (const key of moduleSymbol.exports.keys()) {
392
+ deps.push({
393
+ fileName: path.normalize(decl.getSourceFile().fileName),
394
+ importName: key.toString(),
395
+ exportName: key.toString()
396
+ });
397
+ }
398
+ }
399
+ }
400
+ }
401
+ }
402
+ else if (ts.isImportDeclaration(node)) {
403
+ const moduleSymbol = tc.getSymbolAtLocation(node.moduleSpecifier);
404
+ if (!moduleSymbol) {
405
+ if (ts.isStringLiteral(node.moduleSpecifier) && node.moduleSpecifier.text.startsWith("./")) {
406
+ deps.push({
407
+ fileName: path.normalize(path.resolve(path.dirname(sf.fileName), node.moduleSpecifier.text)),
408
+ importName: "*",
409
+ });
410
+ }
411
+ /*else {
412
+ throw new NeverEntryError(`import moduleSymbol: ${sf.fileName} ${node.moduleSpecifier["text"]}`);
413
+ }*/
414
+ }
415
+ else {
416
+ const decls = moduleSymbol.getDeclarations();
417
+ if (!decls)
418
+ throw new NeverEntryError(`import decls: ${sf.fileName}`);
419
+ const namedBindings = node.importClause?.namedBindings;
420
+ if (namedBindings && ts.isNamedImports(namedBindings)) {
421
+ for (const el of namedBindings.elements) {
422
+ for (const decl of decls) {
423
+ deps.push({
424
+ fileName: path.normalize(decl.getSourceFile().fileName),
425
+ importName: el.name.text,
426
+ });
427
+ }
428
+ }
429
+ }
430
+ else {
431
+ for (const decl of decls) {
432
+ deps.push({
433
+ fileName: path.normalize(decl.getSourceFile().fileName),
434
+ importName: "*",
435
+ });
436
+ }
437
+ }
438
+ }
439
+ }
440
+ });
441
+ return deps;
442
+ }
292
443
  }
293
444
  //# sourceMappingURL=SdTsCompiler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SdTsCompiler.js","sourceRoot":"","sources":["../../src/build-tools/SdTsCompiler.ts"],"names":[],"mappings":"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"}
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.58",
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.58",
27
+ "@simplysm/sd-core-node": "11.1.58",
28
+ "@simplysm/sd-service-server": "11.1.58",
29
+ "@simplysm/sd-storage": "11.1.58",
30
30
  "browserslist": "^4.23.0",
31
31
  "cordova": "^12.0.0",
32
32
  "electron": "^29.4.1",
@@ -7,7 +7,7 @@ import {
7
7
  ComponentStylesheetBundler
8
8
  } from "@angular-devkit/build-angular/src/tools/esbuild/angular/component-stylesheets";
9
9
  import {AngularCompilerHost} from "@angular-devkit/build-angular/src/tools/esbuild/angular/angular-host";
10
- import {StringUtil} from "@simplysm/sd-core-common";
10
+ import {NeverEntryError, StringUtil} from "@simplysm/sd-core-common";
11
11
  import esbuild from "esbuild";
12
12
  import {NgtscProgram, OptimizeFor} from "@angular/compiler-cli";
13
13
  import {createHash} from "crypto";
@@ -18,6 +18,7 @@ export class SdTsCompiler {
18
18
  readonly #parsedTsconfig: ts.ParsedCommandLine;
19
19
  readonly #isForAngular: boolean;
20
20
 
21
+ readonly #revDependencyCacheMap = 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, {
@@ -30,7 +31,7 @@ export class SdTsCompiler {
30
31
 
31
32
  #ngProgram: NgtscProgram | undefined;
32
33
  #program: ts.Program | undefined;
33
- #builder: ts.EmitAndSemanticDiagnosticsBuilderProgram | undefined;
34
+ // #builder: ts.EmitAndSemanticDiagnosticsBuilderProgram | undefined;
34
35
 
35
36
  readonly #modifiedFileSet = new Set<string>();
36
37
 
@@ -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,35 @@ 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.#revDependencyCacheMap.get(modifiedFile) ?? []));
199
+ affectedFileSet.adds(...(this.#resourceDependencyCacheMap.get(modifiedFile) ?? []));
200
+
201
+ this.#emittedFilesCacheMap.delete(path.normalize(modifiedFile));
202
+ }
203
+
204
+ this.#debug(`invalidate & clear cache...`);
205
+
206
+ this.#stylesheetBundler?.invalidate(this.#modifiedFileSet);
207
+
208
+ for (const affectedFile of affectedFileSet) {
209
+ this.#sourceFileCacheMap.delete(path.normalize(affectedFile));
210
+ this.#stylesheetBundlingResultMap.delete(path.normalize(affectedFile));
211
+ this.#watchFileSet.delete(path.normalize(affectedFile));
212
+ }
213
+
214
+ this.#revDependencyCacheMap.clear();
208
215
  this.#resourceDependencyCacheMap.clear();
209
- this.#watchFileSet.clear();
210
- this.#stylesheetBundlingResultMap.clear();
211
216
 
212
217
  this.#debug(`create program...`);
213
218
 
@@ -221,7 +226,6 @@ export class SdTsCompiler {
221
226
  this.#program = this.#ngProgram.getTsProgram();
222
227
  }
223
228
  else {
224
- // noinspection UnnecessaryLocalVariableJS
225
229
  this.#program = ts.createProgram(
226
230
  this.#parsedTsconfig.fileNames,
227
231
  this.#parsedTsconfig.options,
@@ -245,59 +249,131 @@ export class SdTsCompiler {
245
249
 
246
250
  this.#debug(`create builder...`);
247
251
 
248
- this.#builder = ts.createEmitAndSemanticDiagnosticsBuilderProgram(
249
- this.#program,
250
- this.#compilerHost,
251
- this.#builder
252
- );
252
+ // this.#builder = ts.createEmitAndSemanticDiagnosticsBuilderProgram(
253
+ // this.#program,
254
+ // this.#compilerHost,
255
+ // this.#builder
256
+ // );
253
257
 
254
258
  if (this.#ngProgram) {
255
259
  await this.#ngProgram.compiler.analyzeAsync();
256
260
  }
257
261
 
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));
262
+ const getOrgSourceFile = (sf: ts.SourceFile) => {
263
+ if (sf.fileName.endsWith('.ngtypecheck.ts')) {
264
+ const orgFileName = sf.fileName.slice(0, -15) + '.ts';
265
+ return this.#program!.getSourceFile(orgFileName);
266
+ }
267
+
268
+ return sf;
269
+ };
270
+
271
+ this.#debug(`get affected (new deps)...`);
272
+
273
+ const depMap = new Map<string, {
274
+ fileName: string;
275
+ importName: string;
276
+ exportName?: string;
277
+ }[]>();
278
+ for (const sf of this.#program.getSourceFiles()) {
279
+ const orgSf = getOrgSourceFile(sf);
280
+ if (!orgSf) continue;
281
+
282
+ const refs = this.#findDeps(orgSf);
283
+ depMap.set(path.normalize(orgSf.fileName), refs);
284
+ }
285
+
286
+ const allDepMap = new Map<string, Set<string>>();
287
+ const getAllDeps = (fileName: string, prevSet?: Set<string>) => {
288
+ if (allDepMap.has(fileName)) {
289
+ return allDepMap.get(fileName)!;
290
+ }
291
+
292
+ const result = new Set<string>();
293
+
294
+ const deps = depMap.get(fileName) ?? [];
295
+ result.adds(...deps.map(item => item.fileName));
296
+
297
+ for (const dep of deps) {
298
+ const targetDeps = depMap.get(dep.fileName) ?? [];
299
+
300
+ if (dep.importName === "*") {
301
+ for (const targetRefItem of targetDeps.filter(item => item.exportName != null)) {
302
+ if (prevSet?.has(targetRefItem.fileName)) continue;
303
+
304
+ result.add(targetRefItem.fileName);
305
+ result.adds(...getAllDeps(targetRefItem.fileName, new Set<string>(prevSet).adds(...result)));
271
306
  }
307
+ }
308
+ else {
309
+ for (const targetRefItem of targetDeps.filter(item => item.exportName === dep.importName)) {
310
+ if (prevSet?.has(targetRefItem.fileName)) continue;
272
311
 
273
- return true;
312
+ result.add(targetRefItem.fileName);
313
+ result.adds(...getAllDeps(targetRefItem.fileName, new Set<string>(prevSet).adds(...result)));
314
+ }
274
315
  }
316
+ }
275
317
 
276
- return false;
277
- });
318
+ return result;
319
+ };
278
320
 
279
- if (!result) {
280
- break;
281
- }
321
+ for (const sf of this.#program.getSourceFiles()) {
322
+ const orgSf = getOrgSourceFile(sf);
323
+ if (!orgSf) continue;
282
324
 
283
- affectedFileSet.add(path.normalize((result.affected as ts.SourceFile).fileName));
325
+ const deps = getAllDeps(path.normalize(orgSf.fileName));
326
+ allDepMap.set(path.normalize(orgSf.fileName), deps);
327
+
328
+ for (const dep of getAllDeps(path.normalize(orgSf.fileName))) {
329
+ const depCache = this.#revDependencyCacheMap.getOrCreate(path.normalize(dep), new Set<string>());
330
+ depCache.add(path.normalize(orgSf.fileName));
331
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
332
+ affectedFileSet.add(path.normalize(orgSf.fileName));
333
+ }
334
+ }
284
335
  }
285
336
 
286
- this.#debug(`get resource ref...`);
337
+ /*for (const sf of this.#program.getSourceFiles()) {
338
+ const orgSf = getOrgSourceFile(sf);
339
+ if (!orgSf) continue;
340
+
341
+ for (const dep of this.#builder.getAllDependencies(sf)) {
342
+ const depCache = this.#dependencyCacheMap.getOrCreate(path.normalize(dep), new Set<string>());
343
+ depCache.add(path.normalize(orgSf.fileName));
344
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
345
+ affectedFileSet.add(path.normalize(orgSf.fileName));
346
+ }
347
+ }
348
+ }*/
287
349
 
288
350
  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
- }
351
+ this.#debug(`get affected (new res deps)...`);
352
+
353
+ for (const sf of this.#program.getSourceFiles()) {
354
+ if (this.#ngProgram.compiler.ignoreForEmit.has(sf)) {
355
+ continue;
356
+ }
357
+
358
+ for (const dep of this.#ngProgram.compiler.getResourceDependencies(sf)) {
359
+ const ref = this.#resourceDependencyCacheMap.getOrCreate(path.normalize(dep), new Set<string>());
360
+ ref.add(path.normalize(sf.fileName));
361
+ if (this.#modifiedFileSet.has(path.normalize(dep))) {
362
+ affectedFileSet.add(path.normalize(sf.fileName));
299
363
  }
300
- });
364
+ }
365
+ }
366
+ }
367
+
368
+ if (affectedFileSet.size === 0) {
369
+ this.#debug(`get affected (init)...`);
370
+
371
+ for (const sf of this.#program.getSourceFiles()) {
372
+ const orgSf = getOrgSourceFile(sf);
373
+ if (!orgSf) continue;
374
+
375
+ affectedFileSet.add(path.normalize(orgSf.fileName));
376
+ }
301
377
  }
302
378
 
303
379
  this.#debug(`get diagnostics...`);
@@ -305,9 +381,9 @@ export class SdTsCompiler {
305
381
  const diagnostics: ts.Diagnostic[] = [];
306
382
 
307
383
  diagnostics.push(
308
- ...this.#builder.getConfigFileParsingDiagnostics(),
309
- ...this.#builder.getOptionsDiagnostics(),
310
- ...this.#builder.getGlobalDiagnostics()
384
+ ...this.#program.getConfigFileParsingDiagnostics(),
385
+ ...this.#program.getOptionsDiagnostics(),
386
+ ...this.#program.getGlobalDiagnostics()
311
387
  );
312
388
 
313
389
  if (this.#ngProgram) {
@@ -315,14 +391,14 @@ export class SdTsCompiler {
315
391
  }
316
392
 
317
393
  for (const affectedFile of affectedFileSet) {
318
- const affectedSourceFile = this.#sourceFileCacheMap.get(affectedFile);
394
+ const affectedSourceFile = this.#program.getSourceFile(affectedFile);
319
395
  if (!affectedSourceFile || (this.#ngProgram && this.#ngProgram.compiler.ignoreForDiagnostics.has(affectedSourceFile))) {
320
396
  continue;
321
397
  }
322
398
 
323
399
  diagnostics.push(
324
- ...this.#builder.getSyntacticDiagnostics(affectedSourceFile),
325
- ...this.#builder.getSemanticDiagnostics(affectedSourceFile)
400
+ ...this.#program.getSyntacticDiagnostics(affectedSourceFile),
401
+ ...this.#program.getSemanticDiagnostics(affectedSourceFile)
326
402
  );
327
403
 
328
404
  if (this.#ngProgram) {
@@ -338,15 +414,25 @@ export class SdTsCompiler {
338
414
 
339
415
  this.#debug(`prepare emit...`);
340
416
 
341
- while (true) {
342
- const affectedFileResult = this.#builder.emitNextAffectedFile((fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
417
+ const ngTransformers = this.#ngProgram?.compiler.prepareEmit().transformers;
418
+
419
+ for (const affectedFile of affectedFileSet) {
420
+ if (this.#emittedFilesCacheMap.has(affectedFile)) {
421
+ continue;
422
+ }
423
+
424
+ const sf = this.#program.getSourceFile(affectedFile);
425
+ if (!sf) {
426
+ continue;
427
+ }
428
+
429
+ this.#program.emit(sf, (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
343
430
  if (!sourceFiles || sourceFiles.length === 0) {
344
431
  this.#compilerHost.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
345
432
  return;
346
433
  }
347
434
 
348
435
  const sourceFile = ts.getOriginalNode(sourceFiles[0], ts.isSourceFile);
349
-
350
436
  if (this.#ngProgram) {
351
437
  if (this.#ngProgram.compiler.ignoreForEmit.has(sourceFile)) {
352
438
  return;
@@ -354,7 +440,7 @@ export class SdTsCompiler {
354
440
  this.#ngProgram.compiler.incrementalCompilation.recordSuccessfulEmit(sourceFile);
355
441
  }
356
442
 
357
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
443
+ const emitFileInfoCaches = this.#emittedFilesCacheMap.getOrCreate(path.normalize(sourceFile.fileName), []);
358
444
  if (PathUtil.isChildPath(sourceFile.fileName, this.#pkgPath)) {
359
445
  let realFilePath = fileName;
360
446
  let realText = text;
@@ -369,23 +455,17 @@ export class SdTsCompiler {
369
455
  }
370
456
  }
371
457
 
372
- emitFiles.push({
458
+ emitFileInfoCaches.push({
373
459
  outRelPath: path.relative(this.#distPath, realFilePath),
374
460
  text: realText
375
461
  });
376
462
  }
377
463
  else {
378
- emitFiles.push({text});
464
+ emitFileInfoCaches.push({text});
379
465
  }
380
466
 
381
467
  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);
468
+ }, undefined, undefined, ngTransformers);
389
469
  }
390
470
 
391
471
  //-- global style
@@ -398,8 +478,8 @@ export class SdTsCompiler {
398
478
 
399
479
  const data = await FsUtil.readFileAsync(this.#globalStyleFilePath);
400
480
  const contents = await this.#bundleStylesheetAsync(data, this.#globalStyleFilePath, this.#globalStyleFilePath);
401
- const emitFiles = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
402
- emitFiles.push({
481
+ const emitFileInfos = this.#emittedFilesCacheMap.getOrCreate(this.#globalStyleFilePath, []);
482
+ emitFileInfos.push({
403
483
  outRelPath: path.relative(path.resolve(this.#pkgPath, "src"), this.#globalStyleFilePath).replace(/\.scss$/, ".css"),
404
484
  text: contents
405
485
  });
@@ -410,7 +490,7 @@ export class SdTsCompiler {
410
490
 
411
491
  this.#modifiedFileSet.clear();
412
492
 
413
- this.#debug(`build completed`);
493
+ this.#debug(`build completed`, affectedFileSet);
414
494
 
415
495
  //-- result
416
496
 
@@ -428,6 +508,96 @@ export class SdTsCompiler {
428
508
  #debug(...msg: any[]): void {
429
509
  this.#logger.debug(`[${path.basename(this.#pkgPath)}]`, ...msg);
430
510
  }
511
+
512
+ #findDeps(sf: ts.SourceFile) {
513
+ const deps: {
514
+ fileName: string;
515
+ importName: string;
516
+ exportName?: string;
517
+ }[] = [];
518
+
519
+ const tc = this.#program!.getTypeChecker();
520
+
521
+ sf.forEachChild((node) => {
522
+ if (ts.isExportDeclaration(node)) {
523
+ if (node.moduleSpecifier) {
524
+ const moduleSymbol = tc.getSymbolAtLocation(node.moduleSpecifier);
525
+ if (!moduleSymbol) throw new NeverEntryError(`export moduleSymbol: ${sf.fileName}`);
526
+
527
+ const decls = moduleSymbol.getDeclarations();
528
+ if (!decls) throw new NeverEntryError(`export decls: ${sf.fileName}`);
529
+
530
+ const namedBindings = node.exportClause;
531
+ if (namedBindings && ts.isNamedExports(namedBindings)) {
532
+ for (const el of namedBindings.elements) {
533
+ for (const decl of decls) {
534
+ deps.push({
535
+ fileName: path.normalize(decl.getSourceFile().fileName),
536
+ importName: el.name.text,
537
+ exportName: el.propertyName?.text ?? el.name.text
538
+ });
539
+ }
540
+ }
541
+ }
542
+ else {
543
+ if (!moduleSymbol.exports) {
544
+ throw new NeverEntryError("1234");
545
+ }
546
+
547
+ for (const decl of decls) {
548
+ for (const key of moduleSymbol.exports.keys()) {
549
+ deps.push({
550
+ fileName: path.normalize(decl.getSourceFile().fileName),
551
+ importName: key.toString(),
552
+ exportName: key.toString()
553
+ });
554
+ }
555
+ }
556
+ }
557
+ }
558
+ }
559
+ else if (ts.isImportDeclaration(node)) {
560
+ const moduleSymbol = tc.getSymbolAtLocation(node.moduleSpecifier);
561
+ if (!moduleSymbol) {
562
+ if (ts.isStringLiteral(node.moduleSpecifier) && node.moduleSpecifier.text.startsWith("./")) {
563
+ deps.push({
564
+ fileName: path.normalize(path.resolve(path.dirname(sf.fileName), node.moduleSpecifier.text)),
565
+ importName: "*",
566
+ });
567
+ }
568
+ /*else {
569
+ throw new NeverEntryError(`import moduleSymbol: ${sf.fileName} ${node.moduleSpecifier["text"]}`);
570
+ }*/
571
+ }
572
+ else {
573
+ const decls = moduleSymbol.getDeclarations();
574
+ if (!decls) throw new NeverEntryError(`import decls: ${sf.fileName}`);
575
+
576
+ const namedBindings = node.importClause?.namedBindings;
577
+ if (namedBindings && ts.isNamedImports(namedBindings)) {
578
+ for (const el of namedBindings.elements) {
579
+ for (const decl of decls) {
580
+ deps.push({
581
+ fileName: path.normalize(decl.getSourceFile().fileName),
582
+ importName: el.name.text,
583
+ });
584
+ }
585
+ }
586
+ }
587
+ else {
588
+ for (const decl of decls) {
589
+ deps.push({
590
+ fileName: path.normalize(decl.getSourceFile().fileName),
591
+ importName: "*",
592
+ });
593
+ }
594
+ }
595
+ }
596
+ }
597
+ });
598
+
599
+ return deps;
600
+ }
431
601
  }
432
602
 
433
603
  export interface ISdTsCompilerResult {
@@ -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
  }