@simplysm/sd-cli 12.5.22 → 12.5.23

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 (43) hide show
  1. package/dist/entry/SdCliCordova.js +2 -2
  2. package/dist/entry/SdCliCordova.js.map +1 -1
  3. package/dist/entry/SdCliLocalUpdate.js +1 -1
  4. package/dist/entry/SdCliLocalUpdate.js.map +1 -1
  5. package/dist/pkg-builders/SdMultiBuildRunner.js +1 -1
  6. package/dist/pkg-builders/SdMultiBuildRunner.js.map +1 -1
  7. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js +1 -1
  8. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js.map +1 -1
  9. package/dist/pkg-builders/client/SdClientBuildRunner.js +1 -1
  10. package/dist/pkg-builders/client/SdNgBundler.js +12 -61
  11. package/dist/pkg-builders/client/SdNgBundler.js.map +1 -1
  12. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js +1 -1
  13. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js.map +1 -1
  14. package/dist/pkg-builders/lib/SdJsLibBuildRunner.js +1 -1
  15. package/dist/pkg-builders/lib/SdTsLibBuildRunner.js +3 -3
  16. package/dist/pkg-builders/lib/SdTsLibBuildRunner.js.map +1 -1
  17. package/dist/pkg-builders/lib/SdTsLibBuilder.d.ts +1 -1
  18. package/dist/pkg-builders/lib/SdTsLibBuilder.js.map +1 -1
  19. package/dist/pkg-builders/server/SdServerBuildRunner.js +1 -1
  20. package/dist/ts-builder/SdTsCompileWorker.d.ts +1 -1
  21. package/dist/ts-builder/SdTsCompileWorker.js.map +1 -1
  22. package/dist/ts-builder/SdTsCompiler.d.ts +1 -1
  23. package/dist/ts-builder/SdTsCompiler.js +58 -49
  24. package/dist/ts-builder/SdTsCompiler.js.map +1 -1
  25. package/dist/types/workers.type.d.ts +1 -1
  26. package/dist/workers/compile-worker.js.map +1 -1
  27. package/package.json +6 -6
  28. package/src/entry/SdCliCordova.ts +2 -2
  29. package/src/entry/SdCliLocalUpdate.ts +1 -1
  30. package/src/pkg-builders/SdMultiBuildRunner.ts +1 -1
  31. package/src/pkg-builders/client/SdCliNgRoutesFileGenerator.ts +1 -1
  32. package/src/pkg-builders/client/SdClientBuildRunner.ts +1 -1
  33. package/src/pkg-builders/client/SdNgBundler.ts +15 -74
  34. package/src/pkg-builders/lib/SdCliIndexFileGenerator.ts +1 -1
  35. package/src/pkg-builders/lib/SdJsLibBuildRunner.ts +1 -1
  36. package/src/pkg-builders/lib/SdTsLibBuildRunner.ts +4 -4
  37. package/src/pkg-builders/lib/SdTsLibBuilder.ts +1 -1
  38. package/src/pkg-builders/server/SdServerBuildRunner.ts +1 -1
  39. package/src/ts-builder/SdTsCompileWorker.ts +1 -1
  40. package/src/ts-builder/SdTsCompiler.ts +70 -53
  41. package/src/types/workers.type.ts +1 -1
  42. package/src/workers/compile-worker.ts +1 -1
  43. package/lib/dev-worker.cjs +0 -5
@@ -159,7 +159,7 @@ export class SdTsCompiler {
159
159
  };
160
160
 
161
161
  (this.#compilerHost as AngularCompilerHost).getModifiedResourceFiles = () => {
162
- return this.#modifiedFileSet;
162
+ return new Set(Array.from(this.#modifiedFileSet).map((item) => PathUtil.posix(item)));
163
163
  };
164
164
  }
165
165
  }
@@ -200,38 +200,40 @@ export class SdTsCompiler {
200
200
  return stylesheetResult.contents;
201
201
  }
202
202
 
203
- async compileAsync(modifiedFileSet?: Set<TNormPath>): Promise<ISdTsCompilerResult> {
203
+ async compileAsync(modifiedFileSet: Set<TNormPath>): Promise<ISdTsCompilerResult> {
204
204
  let perf = new SdCliPerformanceTimer("esbuild compile");
205
205
 
206
- this.#modifiedFileSet = modifiedFileSet ?? new Set<TNormPath>();
206
+ this.#modifiedFileSet = new Set(modifiedFileSet);
207
207
  this.#affectedFileSet = new Set<TNormPath>();
208
208
 
209
- this.#debug(`get affected (old deps & old res deps)...`);
209
+ if (modifiedFileSet.size !== 0) {
210
+ this.#debug(`get affected (old deps & old res deps)...`);
210
211
 
211
- perf.run("get affected", () => {
212
- for (const modifiedFile of this.#modifiedFileSet) {
213
- this.#affectedFileSet.add(modifiedFile);
214
- this.#affectedFileSet.adds(...(this.#revDependencyCacheMap.get(modifiedFile) ?? []));
215
- this.#affectedFileSet.adds(...(this.#resourceDependencyCacheMap.get(modifiedFile) ?? []));
212
+ perf.run("get affected", () => {
213
+ for (const modifiedFile of modifiedFileSet) {
214
+ this.#affectedFileSet.add(modifiedFile);
215
+ this.#affectedFileSet.adds(...(this.#revDependencyCacheMap.get(modifiedFile) ?? []));
216
+ this.#affectedFileSet.adds(...(this.#resourceDependencyCacheMap.get(modifiedFile) ?? []));
216
217
 
217
- this.#emittedFilesCacheMap.delete(modifiedFile);
218
- }
219
- });
218
+ this.#emittedFilesCacheMap.delete(modifiedFile);
219
+ }
220
+ });
220
221
 
221
- this.#debug(`invalidate & clear cache...`);
222
+ this.#debug(`invalidate & clear cache...`);
222
223
 
223
- perf.run("invalidate & clear cache", () => {
224
- this.#stylesheetBundler?.invalidate(this.#modifiedFileSet);
224
+ perf.run("invalidate & clear cache", () => {
225
+ this.#stylesheetBundler?.invalidate(modifiedFileSet);
225
226
 
226
- for (const affectedFile of this.#affectedFileSet) {
227
- this.#sourceFileCacheMap.delete(affectedFile);
228
- this.#stylesheetBundlingResultMap.delete(affectedFile);
229
- this.#watchFileSet.delete(affectedFile);
230
- }
227
+ for (const affectedFile of this.#affectedFileSet) {
228
+ this.#sourceFileCacheMap.delete(affectedFile);
229
+ this.#stylesheetBundlingResultMap.delete(affectedFile);
230
+ this.#watchFileSet.delete(affectedFile);
231
+ }
231
232
 
232
- this.#revDependencyCacheMap.clear();
233
- this.#resourceDependencyCacheMap.clear();
234
- });
233
+ this.#revDependencyCacheMap.clear();
234
+ this.#resourceDependencyCacheMap.clear();
235
+ });
236
+ }
235
237
 
236
238
  this.#debug(`create program...`);
237
239
 
@@ -269,17 +271,17 @@ export class SdTsCompiler {
269
271
  return sf;
270
272
  };
271
273
 
272
- this.#debug(`get affected (new deps)...`);
274
+ const sourceFileSet = new Set(
275
+ this.#program!.getSourceFiles()
276
+ .map((sf) => getOrgSourceFile(sf))
277
+ .filterExists(),
278
+ );
273
279
 
274
- const messages: ISdBuildMessage[] = [];
280
+ this.#debug(`get new deps...`);
275
281
 
276
- perf.run("get affected (deps)", () => {
277
- const sourceFileSet = new Set(
278
- this.#program!.getSourceFiles()
279
- .map((sf) => getOrgSourceFile(sf))
280
- .filterExists(),
281
- );
282
+ const messages: ISdBuildMessage[] = [];
282
283
 
284
+ perf.run("get new deps", () => {
283
285
  const depMap = new Map<
284
286
  TNormPath,
285
287
  {
@@ -346,14 +348,6 @@ export class SdTsCompiler {
346
348
  for (const dep of getAllDeps(PathUtil.norm(sf.fileName))) {
347
349
  const depCache = this.#revDependencyCacheMap.getOrCreate(dep, new Set<TNormPath>());
348
350
  depCache.add(PathUtil.norm(sf.fileName));
349
- if (this.#modifiedFileSet.has(dep)) {
350
- this.#affectedFileSet.add(PathUtil.norm(sf.fileName));
351
- }
352
- // dep이 emit된적이 없으면 affected에 추가해야함.
353
- // dep파일이 추가된후 기존 파일에서 import하면 dep파일이 affected에 포함이 안되는 현상 때문
354
- if (!this.#emittedFilesCacheMap.has(dep)) {
355
- this.#affectedFileSet.add(dep);
356
- }
357
351
  }
358
352
 
359
353
  if (this.#ngProgram) {
@@ -364,36 +358,59 @@ export class SdTsCompiler {
364
358
  for (const dep of this.#ngProgram.compiler.getResourceDependencies(sf)) {
365
359
  const ref = this.#resourceDependencyCacheMap.getOrCreate(PathUtil.norm(dep), new Set<TNormPath>());
366
360
  ref.add(PathUtil.norm(sf.fileName));
367
- if (this.#modifiedFileSet.has(PathUtil.norm(dep))) {
368
- this.#affectedFileSet.add(PathUtil.norm(sf.fileName));
369
- }
370
- // dep이 emit된적이 없으면 affected에 추가해야함.
371
- // dep파일이 추가된후 기존 파일에서 import하면 dep파일이 affected에 포함이 안되는 현상 때문
372
- if (!this.#emittedFilesCacheMap.has(PathUtil.norm(dep))) {
373
- this.#affectedFileSet.add(PathUtil.norm(dep));
374
- }
375
361
  }
376
362
  }
377
363
  }
378
364
  });
379
365
 
380
- if (this.#modifiedFileSet.size === 0) {
366
+ if (modifiedFileSet.size === 0) {
381
367
  this.#debug(`get affected (init)...`);
382
368
 
383
369
  perf.run("get affected (init)", () => {
384
- for (const sf of this.#program!.getSourceFiles()) {
370
+ for (const sf of sourceFileSet) {
385
371
  if (!this.#watchScopePaths.some((scopePath) => PathUtil.isChildPath(sf.fileName, scopePath))) {
386
372
  continue;
387
373
  }
388
374
 
389
- const orgSf = getOrgSourceFile(sf);
390
- if (!orgSf) continue;
391
-
392
- this.#affectedFileSet.add(PathUtil.norm(orgSf.fileName));
375
+ this.#affectedFileSet.add(PathUtil.norm(sf.fileName));
393
376
  }
394
377
  });
395
378
  }
396
379
 
380
+ for (const dep of this.#revDependencyCacheMap.keys()) {
381
+ if (this.#modifiedFileSet.has(dep)) {
382
+ this.#affectedFileSet.adds(
383
+ ...Array.from(this.#revDependencyCacheMap.get(dep)!).mapMany((item) =>
384
+ [
385
+ item,
386
+ // .d.ts면 .js파일도 affected에 추가
387
+ item.endsWith(".d.ts") ? PathUtil.norm(item.replace(/\.d\.ts$/, ".js")) : undefined,
388
+ ].filterExists(),
389
+ ),
390
+ );
391
+ }
392
+
393
+ // dep이 emit된적이 없으면 affected에 추가해야함.
394
+ // dep파일이 추가된후 기존 파일에서 import하면 dep파일이 affected에 포함이 안되는 현상 때문
395
+ if (!this.#emittedFilesCacheMap.has(dep)) {
396
+ this.#affectedFileSet.add(dep);
397
+ }
398
+ }
399
+
400
+ if (this.#ngProgram) {
401
+ for (const dep of this.#resourceDependencyCacheMap.keys()) {
402
+ if (this.#modifiedFileSet.has(dep)) {
403
+ this.#affectedFileSet.adds(...this.#resourceDependencyCacheMap.get(dep)!);
404
+ }
405
+
406
+ // dep이 emit된적이 없으면 affected에 추가해야함.
407
+ // dep파일이 추가된후 기존 파일에서 import하면 dep파일이 affected에 포함이 안되는 현상 때문
408
+ if (!this.#emittedFilesCacheMap.has(dep)) {
409
+ this.#affectedFileSet.add(dep);
410
+ }
411
+ }
412
+ }
413
+
397
414
  const emitFileSet = new Set<TNormPath>();
398
415
 
399
416
  const [lintResults] = await Promise.all([
@@ -21,7 +21,7 @@ export interface TSdLintWorkerType {
21
21
  export interface TSdTsCompileWorkerType {
22
22
  methods: {
23
23
  initialize: { params: [SdTsCompilerOptions]; returnType: void };
24
- compile: { params: [Set<TNormPath>?]; returnType: ISdTsCompilerResult };
24
+ compile: { params: [Set<TNormPath>]; returnType: ISdTsCompilerResult };
25
25
  };
26
26
  events: {};
27
27
  }
@@ -25,7 +25,7 @@ createSdWorker<TSdTsCompileWorkerType>({
25
25
  initialize(opt: SdTsCompilerOptions) {
26
26
  compiler = new SdTsCompiler(opt);
27
27
  },
28
- async compile(modifiedFileSet?: Set<TNormPath>) {
28
+ async compile(modifiedFileSet: Set<TNormPath>) {
29
29
  return await compiler.compileAsync(modifiedFileSet);
30
30
  },
31
31
  });
@@ -1,5 +0,0 @@
1
- const tsx = require("tsx/cjs/api");
2
- const { workerData } = require("piscina");
3
-
4
- tsx.register();
5
- module.exports = require(workerData.__file__);