@angular/build 22.2.0-next.4 → 22.2.0-next.6

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 (169) hide show
  1. package/package.json +13 -12
  2. package/src/builders/application/build-action.js +47 -39
  3. package/src/builders/application/build-action.js.map +1 -1
  4. package/src/builders/application/execute-build.js +1 -1
  5. package/src/builders/application/execute-build.js.map +1 -1
  6. package/src/builders/application/execute-post-bundle.js +2 -5
  7. package/src/builders/application/execute-post-bundle.js.map +1 -1
  8. package/src/builders/application/i18n.js +20 -10
  9. package/src/builders/application/i18n.js.map +1 -1
  10. package/src/builders/application/index.js +2 -2
  11. package/src/builders/application/index.js.map +1 -1
  12. package/src/builders/application/results.d.ts +3 -2
  13. package/src/builders/application/setup-bundling.js +3 -1
  14. package/src/builders/application/setup-bundling.js.map +1 -1
  15. package/src/builders/dev-server/vite/index.js +4 -7
  16. package/src/builders/dev-server/vite/index.js.map +1 -1
  17. package/src/builders/dev-server/vite/server.js +1 -1
  18. package/src/builders/dev-server/vite/server.js.map +1 -1
  19. package/src/builders/dev-server/vite/utils.d.ts +1 -1
  20. package/src/builders/dev-server/vite/utils.js +9 -4
  21. package/src/builders/dev-server/vite/utils.js.map +1 -1
  22. package/src/builders/extract-i18n/application-extraction.js +6 -5
  23. package/src/builders/extract-i18n/application-extraction.js.map +1 -1
  24. package/src/builders/karma/application_builder.js +1 -1
  25. package/src/builders/karma/application_builder.js.map +1 -1
  26. package/src/builders/karma/assets-middleware.d.ts +2 -2
  27. package/src/builders/karma/assets-middleware.js +5 -2
  28. package/src/builders/karma/assets-middleware.js.map +1 -1
  29. package/src/builders/karma/progress-reporter.js +7 -5
  30. package/src/builders/karma/progress-reporter.js.map +1 -1
  31. package/src/builders/karma/utils.d.ts +2 -1
  32. package/src/builders/karma/utils.js +2 -2
  33. package/src/builders/karma/utils.js.map +1 -1
  34. package/src/builders/unit-test/builder.js +1 -1
  35. package/src/builders/unit-test/options.d.ts +1 -0
  36. package/src/builders/unit-test/options.js +2 -1
  37. package/src/builders/unit-test/options.js.map +1 -1
  38. package/src/builders/unit-test/runners/vitest/build-options.js +5 -6
  39. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
  40. package/src/builders/unit-test/runners/vitest/executor.js +4 -4
  41. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
  42. package/src/builders/unit-test/schema.d.ts +7 -0
  43. package/src/builders/unit-test/schema.js.map +1 -1
  44. package/src/builders/unit-test/schema.json +5 -0
  45. package/src/private.d.ts +1 -1
  46. package/src/private.js +4 -3
  47. package/src/private.js.map +1 -1
  48. package/src/tools/angular/compilation/angular-compilation.d.ts +3 -8
  49. package/src/tools/angular/compilation/angular-compilation.js +2 -88
  50. package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
  51. package/src/tools/angular/compilation/aot-compilation.d.ts +5 -5
  52. package/src/tools/angular/compilation/aot-compilation.js +9 -13
  53. package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
  54. package/src/tools/angular/compilation/compiler-options.d.ts +24 -0
  55. package/src/tools/angular/compilation/compiler-options.js +135 -0
  56. package/src/tools/angular/compilation/compiler-options.js.map +1 -0
  57. package/src/tools/angular/compilation/index.d.ts +1 -1
  58. package/src/tools/angular/compilation/index.js +1 -3
  59. package/src/tools/angular/compilation/index.js.map +1 -1
  60. package/src/tools/angular/compilation/jit-compilation.d.ts +5 -5
  61. package/src/tools/angular/compilation/jit-compilation.js +8 -15
  62. package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
  63. package/src/tools/angular/compilation/parallel-compilation.d.ts +2 -7
  64. package/src/tools/angular/compilation/parallel-compilation.js +39 -41
  65. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
  66. package/src/tools/angular/compilation/parallel-worker.d.ts +2 -2
  67. package/src/tools/angular/compilation/parallel-worker.js +79 -63
  68. package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
  69. package/src/tools/angular/compilation/typescript-compilation.d.ts +24 -0
  70. package/src/tools/angular/compilation/typescript-compilation.js +107 -0
  71. package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
  72. package/src/tools/angular/linker/oxc-linker.d.ts +13 -17
  73. package/src/tools/angular/linker/oxc-linker.js +27 -89
  74. package/src/tools/angular/linker/oxc-linker.js.map +1 -1
  75. package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
  76. package/src/tools/esbuild/angular/compilation-state.js +51 -13
  77. package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
  78. package/src/tools/esbuild/angular/compiler-plugin.js +36 -101
  79. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
  80. package/src/tools/esbuild/angular/component-stylesheets.d.ts +3 -3
  81. package/src/tools/esbuild/angular/component-stylesheets.js +42 -15
  82. package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
  83. package/src/tools/esbuild/application-code-bundle.js +5 -9
  84. package/src/tools/esbuild/application-code-bundle.js.map +1 -1
  85. package/src/tools/esbuild/bundler-context.d.ts +4 -4
  86. package/src/tools/esbuild/bundler-context.js +93 -27
  87. package/src/tools/esbuild/bundler-context.js.map +1 -1
  88. package/src/tools/esbuild/bundler-execution-result.d.ts +1 -0
  89. package/src/tools/esbuild/bundler-execution-result.js +2 -2
  90. package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
  91. package/src/tools/esbuild/cache.d.ts +10 -0
  92. package/src/tools/esbuild/cache.js +18 -0
  93. package/src/tools/esbuild/cache.js.map +1 -1
  94. package/src/tools/esbuild/i18n-inliner-worker.d.ts +82 -37
  95. package/src/tools/esbuild/i18n-inliner-worker.js +134 -97
  96. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
  97. package/src/tools/esbuild/i18n-inliner.d.ts +42 -11
  98. package/src/tools/esbuild/i18n-inliner.js +335 -121
  99. package/src/tools/esbuild/i18n-inliner.js.map +1 -1
  100. package/src/tools/esbuild/i18n-locale-plugin.d.ts +32 -0
  101. package/src/tools/esbuild/i18n-locale-plugin.js +112 -103
  102. package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
  103. package/src/tools/esbuild/i18n-translation-encoder.d.ts +21 -0
  104. package/src/tools/esbuild/i18n-translation-encoder.js +92 -0
  105. package/src/tools/esbuild/i18n-translation-encoder.js.map +1 -0
  106. package/src/tools/esbuild/i18n-translation-reader.d.ts +41 -0
  107. package/src/tools/esbuild/i18n-translation-reader.js +164 -0
  108. package/src/tools/esbuild/i18n-translation-reader.js.map +1 -0
  109. package/src/tools/esbuild/javascript-transformer-worker.js +41 -47
  110. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
  111. package/src/tools/esbuild/javascript-transformer.js +53 -1
  112. package/src/tools/esbuild/javascript-transformer.js.map +1 -1
  113. package/src/tools/esbuild/load-result-cache.d.ts +1 -0
  114. package/src/tools/esbuild/load-result-cache.js +24 -11
  115. package/src/tools/esbuild/load-result-cache.js.map +1 -1
  116. package/src/tools/esbuild/sqlite-cache-store.d.ts +8 -0
  117. package/src/tools/esbuild/sqlite-cache-store.js +19 -7
  118. package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
  119. package/src/tools/esbuild/stylesheets/sass-language.js +19 -14
  120. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
  121. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
  122. package/src/tools/esbuild/utils.d.ts +1 -1
  123. package/src/tools/esbuild/utils.js.map +1 -1
  124. package/src/tools/oxc/oxc-transform.d.ts +3 -0
  125. package/src/tools/oxc/oxc-transform.js +103 -124
  126. package/src/tools/oxc/oxc-transform.js.map +1 -1
  127. package/src/tools/oxc/traversal.d.ts +32 -0
  128. package/src/tools/oxc/traversal.js +299 -0
  129. package/src/tools/oxc/traversal.js.map +1 -0
  130. package/src/tools/sass/rebasing-importer.d.ts +8 -14
  131. package/src/tools/sass/rebasing-importer.js +18 -24
  132. package/src/tools/sass/rebasing-importer.js.map +1 -1
  133. package/src/tools/sass/sass-service.d.ts +11 -38
  134. package/src/tools/sass/sass-service.js +124 -187
  135. package/src/tools/sass/sass-service.js.map +1 -1
  136. package/src/utils/environment-options.d.ts +12 -0
  137. package/src/utils/environment-options.js +20 -12
  138. package/src/utils/environment-options.js.map +1 -1
  139. package/src/utils/i18n-options.d.ts +2 -1
  140. package/src/utils/i18n-options.js.map +1 -1
  141. package/src/utils/normalize-cache.d.ts +11 -1
  142. package/src/utils/normalize-cache.js +6 -3
  143. package/src/utils/normalize-cache.js.map +1 -1
  144. package/src/utils/purge-cache.js +24 -13
  145. package/src/utils/purge-cache.js.map +1 -1
  146. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.d.ts +1 -1
  147. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +12 -9
  148. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js.map +1 -1
  149. package/src/utils/server-rendering/esm-in-memory-loader/utils.d.ts +8 -0
  150. package/src/utils/server-rendering/esm-in-memory-loader/utils.js +30 -0
  151. package/src/utils/server-rendering/esm-in-memory-loader/utils.js.map +1 -1
  152. package/src/utils/server-rendering/prerender.d.ts +2 -1
  153. package/src/utils/server-rendering/prerender.js +83 -30
  154. package/src/utils/server-rendering/prerender.js.map +1 -1
  155. package/src/utils/server-rendering/render-worker.d.ts +10 -5
  156. package/src/utils/server-rendering/render-worker.js +31 -7
  157. package/src/utils/server-rendering/render-worker.js.map +1 -1
  158. package/src/utils/test-files.d.ts +2 -2
  159. package/src/utils/test-files.js +3 -3
  160. package/src/utils/test-files.js.map +1 -1
  161. package/src/tools/angular/compilation/noop-compilation.d.ts +0 -15
  162. package/src/tools/angular/compilation/noop-compilation.js +0 -27
  163. package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
  164. package/src/tools/sass/worker.d.ts +0 -63
  165. package/src/tools/sass/worker.js +0 -202
  166. package/src/tools/sass/worker.js.map +0 -1
  167. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
  168. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
  169. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler-options.js","sourceRoot":"","sources":["compiler-options.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,5 @@
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  export { AngularCompilation, type AngularCompilationOptions, type AngularCompilationResult, DiagnosticModes, type EmitFileResult, type FileTransformResult, } from './angular-compilation';
9
+ export type { CompilerOptionOverrides } from './compiler-options';
9
10
  export { createAngularCompilation, type AngularCompilationMode } from './factory';
10
- export { NoopCompilation } from './noop-compilation';
@@ -7,12 +7,10 @@
7
7
  * found in the LICENSE file at https://angular.dev/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.NoopCompilation = exports.createAngularCompilation = exports.DiagnosticModes = exports.AngularCompilation = void 0;
10
+ exports.createAngularCompilation = exports.DiagnosticModes = exports.AngularCompilation = void 0;
11
11
  var angular_compilation_1 = require("./angular-compilation");
12
12
  Object.defineProperty(exports, "AngularCompilation", { enumerable: true, get: function () { return angular_compilation_1.AngularCompilation; } });
13
13
  Object.defineProperty(exports, "DiagnosticModes", { enumerable: true, get: function () { return angular_compilation_1.DiagnosticModes; } });
14
14
  var factory_1 = require("./factory");
15
15
  Object.defineProperty(exports, "createAngularCompilation", { enumerable: true, get: function () { return factory_1.createAngularCompilation; } });
16
- var noop_compilation_1 = require("./noop-compilation");
17
- Object.defineProperty(exports, "NoopCompilation", { enumerable: true, get: function () { return noop_compilation_1.NoopCompilation; } });
18
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,6DAO+B;AAN7B,yHAAA,kBAAkB,OAAA;AAGlB,sHAAA,eAAe,OAAA;AAIjB,qCAAkF;AAAzE,mHAAA,wBAAwB,OAAA;AACjC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,6DAO+B;AAN7B,yHAAA,kBAAkB,OAAA;AAGlB,sHAAA,eAAe,OAAA;AAKjB,qCAAkF;AAAzE,mHAAA,wBAAwB,OAAA"}
@@ -5,16 +5,16 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
- import type * as ng from '@angular/compiler-cli';
9
8
  import ts from 'typescript';
10
9
  import { AngularHostOptions } from '../angular-host';
11
- import { AngularCompilation, AngularCompilationResult, DiagnosticModes, EmitFileResult } from './angular-compilation';
12
- export declare class JitCompilation extends AngularCompilation {
10
+ import { type AngularCompilationResult, DiagnosticModes, type EmitFileResult } from './angular-compilation';
11
+ import { CompilerOptionOverrides } from './compiler-options';
12
+ import { TypeScriptCompilation } from './typescript-compilation';
13
+ export declare class JitCompilation extends TypeScriptCompilation {
13
14
  #private;
14
15
  private readonly browserOnlyBuild;
15
16
  constructor(browserOnlyBuild: boolean);
16
- initialize(tsconfig: string, hostOptions: AngularHostOptions, compilerOptionsTransformer?: (compilerOptions: ng.CompilerOptions) => ng.CompilerOptions): Promise<AngularCompilationResult>;
17
+ initialize(tsconfig: string, hostOptions: AngularHostOptions, compilerOptionOverrides?: CompilerOptionOverrides): Promise<AngularCompilationResult>;
17
18
  protected collectDiagnostics(modes: DiagnosticModes): Iterable<ts.Diagnostic>;
18
19
  emitAffectedFiles(): Iterable<EmitFileResult>;
19
- update(files: Set<string>): Promise<void>;
20
20
  }
@@ -46,13 +46,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
46
46
  exports.JitCompilation = void 0;
47
47
  const node_assert_1 = __importDefault(require("node:assert"));
48
48
  const typescript_1 = __importDefault(require("typescript"));
49
- const path_1 = require("../../../utils/path");
50
49
  const profiling_1 = require("../../esbuild/profiling");
51
50
  const angular_host_1 = require("../angular-host");
52
51
  const jit_resource_transformer_1 = require("../transformers/jit-resource-transformer");
53
52
  const lazy_routes_transformer_1 = require("../transformers/lazy-routes-transformer");
54
53
  const web_worker_transformer_1 = require("../transformers/web-worker-transformer");
55
54
  const angular_compilation_1 = require("./angular-compilation");
55
+ const compiler_options_1 = require("./compiler-options");
56
+ const typescript_compilation_1 = require("./typescript-compilation");
56
57
  class JitCompilationState {
57
58
  compilerHost;
58
59
  typeScriptProgram;
@@ -67,34 +68,31 @@ class JitCompilationState {
67
68
  this.webWorkerTransform = webWorkerTransform;
68
69
  }
69
70
  }
70
- class JitCompilation extends angular_compilation_1.AngularCompilation {
71
+ class JitCompilation extends typescript_compilation_1.TypeScriptCompilation {
71
72
  browserOnlyBuild;
72
73
  #state;
73
- #sourceFiles = new Map();
74
74
  constructor(browserOnlyBuild) {
75
75
  super();
76
76
  this.browserOnlyBuild = browserOnlyBuild;
77
77
  }
78
- async initialize(tsconfig, hostOptions, compilerOptionsTransformer) {
78
+ async initialize(tsconfig, hostOptions, compilerOptionOverrides) {
79
79
  // Dynamically load the Angular compiler CLI package
80
80
  const { constructorParametersDownlevelTransform } = await Promise.resolve().then(() => __importStar(require('@angular/compiler-cli/private/tooling')));
81
81
  // Load the compiler configuration and transform as needed
82
82
  const { options: originalCompilerOptions, rootNames, errors: configurationDiagnostics, } = await this.loadConfiguration(tsconfig);
83
- const compilerOptions = compilerOptionsTransformer?.(originalCompilerOptions) ?? originalCompilerOptions;
83
+ const { compilerOptions, warnings } = (0, compiler_options_1.transformCompilerOptions)(typescript_1.default, originalCompilerOptions, compilerOptionOverrides, tsconfig);
84
84
  if (hostOptions.modifiedFiles) {
85
- for (const modifiedFile of hostOptions.modifiedFiles) {
86
- this.#sourceFiles.delete((0, path_1.toPosixPath)(modifiedFile));
87
- }
85
+ this.invalidateFiles(hostOptions.modifiedFiles);
88
86
  }
89
87
  // Create Angular compiler host
90
- const host = (0, angular_host_1.createAngularCompilerHost)(typescript_1.default, compilerOptions, hostOptions, undefined, this.#sourceFiles);
88
+ const host = (0, angular_host_1.createAngularCompilerHost)(typescript_1.default, compilerOptions, hostOptions, undefined, this.sourceFiles);
91
89
  // Create the TypeScript Program
92
90
  const typeScriptProgram = (0, profiling_1.profileSync)('TS_CREATE_PROGRAM', () => typescript_1.default.createEmitAndSemanticDiagnosticsBuilderProgram(rootNames, compilerOptions, host, this.#state?.typeScriptProgram ?? typescript_1.default.readBuilderProgram(compilerOptions, host), configurationDiagnostics));
93
91
  this.#state = new JitCompilationState(host, typeScriptProgram, constructorParametersDownlevelTransform(typeScriptProgram.getProgram()), (0, jit_resource_transformer_1.createJitResourceTransformer)(() => typeScriptProgram.getProgram().getTypeChecker()), (0, web_worker_transformer_1.createWorkerTransformer)(hostOptions.processWebWorker.bind(hostOptions)));
94
92
  const referencedFiles = typeScriptProgram
95
93
  .getSourceFiles()
96
94
  .map((sourceFile) => sourceFile.fileName);
97
- return { compilerOptions, referencedFiles };
95
+ return { compilerOptions, referencedFiles, warnings };
98
96
  }
99
97
  *collectDiagnostics(modes) {
100
98
  (0, node_assert_1.default)(this.#state, 'Compilation must be initialized prior to collecting diagnostics.');
@@ -143,11 +141,6 @@ class JitCompilation extends angular_compilation_1.AngularCompilation {
143
141
  }
144
142
  return emittedFiles;
145
143
  }
146
- async update(files) {
147
- for (const file of files) {
148
- this.#sourceFiles.delete((0, path_1.toPosixPath)(file));
149
- }
150
- }
151
144
  }
152
145
  exports.JitCompilation = JitCompilation;
153
146
  //# sourceMappingURL=jit-compilation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jit-compilation.js","sourceRoot":"","sources":["jit-compilation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jit-compilation.js","sourceRoot":"","sources":["jit-compilation.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
- import type { CompilerOptions } from '@angular/compiler-cli';
9
8
  import type { PartialMessage } from 'esbuild';
10
9
  import type { AngularHostOptions } from '../angular-host';
11
10
  import { AngularCompilation, AngularCompilationResult, DiagnosticModes, EmitFileResult } from './angular-compilation';
11
+ import type { CompilerOptionOverrides } from './compiler-options';
12
12
  /**
13
13
  * An Angular compilation which uses a Node.js Worker thread to load and execute
14
14
  * the TypeScript and Angular compilers. This allows for longer synchronous actions
@@ -22,12 +22,7 @@ export declare class ParallelCompilation extends AngularCompilation {
22
22
  private readonly jit;
23
23
  private readonly browserOnlyBuild;
24
24
  constructor(jit: boolean, browserOnlyBuild: boolean);
25
- initialize(tsconfig: string, hostOptions: AngularHostOptions, compilerOptionsTransformer?: (compilerOptions: CompilerOptions) => CompilerOptions): Promise<AngularCompilationResult>;
26
- /**
27
- * This is not needed with this compilation type since the worker will already send a response
28
- * with the serializable esbuild compatible diagnostics.
29
- */
30
- protected collectDiagnostics(): never;
25
+ initialize(tsconfig: string, hostOptions: AngularHostOptions, compilerOptionOverrides?: CompilerOptionOverrides): Promise<AngularCompilationResult>;
31
26
  diagnoseFiles(modes?: DiagnosticModes): Promise<{
32
27
  errors?: PartialMessage[];
33
28
  warnings?: PartialMessage[];
@@ -25,6 +25,7 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
25
25
  jit;
26
26
  browserOnlyBuild;
27
27
  #worker;
28
+ #webWorkerChannel;
28
29
  constructor(jit, browserOnlyBuild) {
29
30
  super();
30
31
  this.jit = jit;
@@ -37,7 +38,7 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
37
38
  filename: localRequire.resolve('./parallel-worker'),
38
39
  });
39
40
  }
40
- initialize(tsconfig, hostOptions, compilerOptionsTransformer) {
41
+ async initialize(tsconfig, hostOptions, compilerOptionOverrides) {
41
42
  const stylesheetChannel = new node_worker_threads_1.MessageChannel();
42
43
  // The request identifier is required because Angular can issue multiple concurrent requests
43
44
  stylesheetChannel.port1.on('message', ({ requestId, data, containingFile, stylesheetFile, order, className }) => {
@@ -46,9 +47,11 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
46
47
  .then((value) => stylesheetChannel.port1.postMessage({ requestId, value }))
47
48
  .catch((error) => stylesheetChannel.port1.postMessage({ requestId, error }));
48
49
  });
50
+ this.#webWorkerChannel?.port1.close();
49
51
  // The web worker processing is a synchronous operation and uses shared memory combined with
50
52
  // the Atomics API to block execution here until a response is received.
51
53
  const webWorkerChannel = new node_worker_threads_1.MessageChannel();
54
+ this.#webWorkerChannel = webWorkerChannel;
52
55
  const webWorkerSignal = new Int32Array(new SharedArrayBuffer(4));
53
56
  webWorkerChannel.port1.on('message', ({ workerFile, containingFile }) => {
54
57
  try {
@@ -63,45 +66,32 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
63
66
  Atomics.notify(webWorkerSignal, 0);
64
67
  }
65
68
  });
66
- // The compiler options transformation is a synchronous operation and uses shared memory combined
67
- // with the Atomics API to block execution here until a response is received.
68
- const optionsChannel = new node_worker_threads_1.MessageChannel();
69
- const optionsSignal = new Int32Array(new SharedArrayBuffer(4));
70
- optionsChannel.port1.on('message', (compilerOptions) => {
71
- try {
72
- const transformedOptions = compilerOptionsTransformer?.(compilerOptions) ?? compilerOptions;
73
- optionsChannel.port1.postMessage({ transformedOptions });
74
- }
75
- catch (error) {
76
- webWorkerChannel.port1.postMessage({ error });
77
- }
78
- finally {
79
- Atomics.store(optionsSignal, 0, 1);
80
- Atomics.notify(optionsSignal, 0);
69
+ let success = false;
70
+ try {
71
+ // Execute the initialize function in the worker thread
72
+ const result = await this.#worker.run({
73
+ fileReplacements: hostOptions.fileReplacements,
74
+ tsconfig,
75
+ jit: this.jit,
76
+ browserOnlyBuild: this.browserOnlyBuild,
77
+ compilerOptionOverrides,
78
+ stylesheetPort: stylesheetChannel.port2,
79
+ webWorkerPort: webWorkerChannel.port2,
80
+ webWorkerSignal,
81
+ }, {
82
+ name: 'initialize',
83
+ transferList: [stylesheetChannel.port2, webWorkerChannel.port2],
84
+ });
85
+ success = true;
86
+ return result;
87
+ }
88
+ finally {
89
+ stylesheetChannel.port1.close();
90
+ if (!success) {
91
+ this.#webWorkerChannel?.port1.close();
92
+ this.#webWorkerChannel = undefined;
81
93
  }
82
- });
83
- // Execute the initialize function in the worker thread
84
- return this.#worker.run({
85
- fileReplacements: hostOptions.fileReplacements,
86
- tsconfig,
87
- jit: this.jit,
88
- browserOnlyBuild: this.browserOnlyBuild,
89
- stylesheetPort: stylesheetChannel.port2,
90
- optionsPort: optionsChannel.port2,
91
- optionsSignal,
92
- webWorkerPort: webWorkerChannel.port2,
93
- webWorkerSignal,
94
- }, {
95
- name: 'initialize',
96
- transferList: [stylesheetChannel.port2, optionsChannel.port2, webWorkerChannel.port2],
97
- });
98
- }
99
- /**
100
- * This is not needed with this compilation type since the worker will already send a response
101
- * with the serializable esbuild compatible diagnostics.
102
- */
103
- collectDiagnostics() {
104
- throw new Error('Not implemented in ParallelCompilation.');
94
+ }
105
95
  }
106
96
  async diagnoseFiles(modes = angular_compilation_1.DiagnosticModes.All) {
107
97
  const { timings, ...result } = await this.#worker.run(modes, { name: 'diagnose' });
@@ -110,13 +100,21 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
110
100
  }
111
101
  return result;
112
102
  }
113
- emitAffectedFiles() {
114
- return this.#worker.run(undefined, { name: 'emit' });
103
+ async emitAffectedFiles() {
104
+ try {
105
+ return await this.#worker.run(undefined, { name: 'emit' });
106
+ }
107
+ finally {
108
+ this.#webWorkerChannel?.port1.close();
109
+ this.#webWorkerChannel = undefined;
110
+ }
115
111
  }
116
112
  update(files) {
117
113
  return this.#worker.run(files, { name: 'update' });
118
114
  }
119
115
  close() {
116
+ this.#webWorkerChannel?.port1.close();
117
+ this.#webWorkerChannel = undefined;
120
118
  return this.#worker.destroy();
121
119
  }
122
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-compilation.js","sourceRoot":"","sources":["parallel-compilation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-compilation.js","sourceRoot":"","sources":["parallel-compilation.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,14 @@
8
8
  import type { PartialMessage } from 'esbuild';
9
9
  import { type MessagePort } from 'node:worker_threads';
10
10
  import type { AngularCompilationResult, DiagnosticModes } from './angular-compilation';
11
+ import type { CompilerOptionOverrides } from './compiler-options';
11
12
  export interface InitRequest {
12
13
  jit: boolean;
13
14
  browserOnlyBuild: boolean;
14
15
  tsconfig: string;
15
16
  fileReplacements?: Record<string, string>;
17
+ compilerOptionOverrides?: CompilerOptionOverrides;
16
18
  stylesheetPort: MessagePort;
17
- optionsPort: MessagePort;
18
- optionsSignal: Int32Array;
19
19
  webWorkerPort: MessagePort;
20
20
  webWorkerSignal: Int32Array;
21
21
  }
@@ -22,73 +22,83 @@ const profiling_1 = require("../../esbuild/profiling");
22
22
  const aot_compilation_1 = require("./aot-compilation");
23
23
  const jit_compilation_1 = require("./jit-compilation");
24
24
  let compilation;
25
+ let activeWebWorkerPort;
25
26
  const modifiedFiles = new Set();
26
27
  async function initialize(request) {
28
+ activeWebWorkerPort?.close();
29
+ activeWebWorkerPort = request.webWorkerPort;
27
30
  const currentModifiedFiles = new Set(modifiedFiles);
28
31
  modifiedFiles.clear();
29
- await (0, hash_1.initializeHash)();
30
- compilation ??= request.jit
31
- ? new jit_compilation_1.JitCompilation(request.browserOnlyBuild)
32
- : new aot_compilation_1.AotCompilation(request.browserOnlyBuild);
33
- const stylesheetRequests = new Map();
34
- request.stylesheetPort.on('message', ({ requestId, value, error }) => {
35
- if (error) {
36
- stylesheetRequests.get(requestId)?.[1](error);
37
- }
38
- else {
39
- stylesheetRequests.get(requestId)?.[0](value);
40
- }
41
- });
42
- const { compilerOptions, referencedFiles, externalStylesheets, templateUpdates, componentResourcesDependencies, } = await compilation.initialize(request.tsconfig, {
43
- fileReplacements: request.fileReplacements,
44
- modifiedFiles: currentModifiedFiles,
45
- transformStylesheet(data, containingFile, stylesheetFile, order, className) {
46
- const requestId = (0, node_crypto_1.randomUUID)();
47
- const resultPromise = new Promise((resolve, reject) => stylesheetRequests.set(requestId, [resolve, reject]));
48
- request.stylesheetPort.postMessage({
49
- requestId,
50
- data,
51
- containingFile,
52
- stylesheetFile,
53
- order,
54
- className,
55
- });
56
- return resultPromise;
57
- },
58
- processWebWorker(workerFile, containingFile) {
59
- Atomics.store(request.webWorkerSignal, 0, 0);
60
- request.webWorkerPort.postMessage({ workerFile, containingFile });
61
- Atomics.wait(request.webWorkerSignal, 0, 0);
62
- const result = (0, node_worker_threads_1.receiveMessageOnPort)(request.webWorkerPort)?.message;
63
- if (result?.error) {
64
- throw result.error;
32
+ let success = false;
33
+ try {
34
+ await (0, hash_1.initializeHash)();
35
+ compilation ??= request.jit
36
+ ? new jit_compilation_1.JitCompilation(request.browserOnlyBuild)
37
+ : new aot_compilation_1.AotCompilation(request.browserOnlyBuild);
38
+ const stylesheetRequests = new Map();
39
+ request.stylesheetPort.on('message', ({ requestId, value, error }) => {
40
+ const handlers = stylesheetRequests.get(requestId);
41
+ if (handlers) {
42
+ stylesheetRequests.delete(requestId);
43
+ if (error) {
44
+ handlers[1](error);
45
+ }
46
+ else {
47
+ handlers[0](value);
48
+ }
65
49
  }
66
- return result?.workerCodeFile ?? workerFile;
67
- },
68
- }, (compilerOptions) => {
69
- Atomics.store(request.optionsSignal, 0, 0);
70
- request.optionsPort.postMessage(compilerOptions);
71
- Atomics.wait(request.optionsSignal, 0, 0);
72
- const result = (0, node_worker_threads_1.receiveMessageOnPort)(request.optionsPort)?.message;
73
- if (result?.error) {
74
- throw result.error;
50
+ });
51
+ const { compilerOptions, referencedFiles, externalStylesheets, templateUpdates, componentResourcesDependencies, warnings, } = await compilation.initialize(request.tsconfig, {
52
+ fileReplacements: request.fileReplacements,
53
+ modifiedFiles: currentModifiedFiles,
54
+ transformStylesheet(data, containingFile, stylesheetFile, order, className) {
55
+ const requestId = (0, node_crypto_1.randomUUID)();
56
+ const resultPromise = new Promise((resolve, reject) => stylesheetRequests.set(requestId, [resolve, reject]));
57
+ request.stylesheetPort.postMessage({
58
+ requestId,
59
+ data,
60
+ containingFile,
61
+ stylesheetFile,
62
+ order,
63
+ className,
64
+ });
65
+ return resultPromise;
66
+ },
67
+ processWebWorker(workerFile, containingFile) {
68
+ Atomics.store(request.webWorkerSignal, 0, 0);
69
+ request.webWorkerPort.postMessage({ workerFile, containingFile });
70
+ Atomics.wait(request.webWorkerSignal, 0, 0);
71
+ const result = (0, node_worker_threads_1.receiveMessageOnPort)(request.webWorkerPort)?.message;
72
+ if (result?.error) {
73
+ throw result.error;
74
+ }
75
+ return result?.workerCodeFile ?? workerFile;
76
+ },
77
+ }, request.compilerOptionOverrides);
78
+ success = true;
79
+ return {
80
+ externalStylesheets,
81
+ templateUpdates,
82
+ referencedFiles,
83
+ warnings,
84
+ // TODO: Expand? `allowJs`, `isolatedModules`, `sourceMap`, `inlineSourceMap` are the only fields needed currently.
85
+ compilerOptions: {
86
+ allowJs: compilerOptions.allowJs,
87
+ isolatedModules: compilerOptions.isolatedModules,
88
+ sourceMap: compilerOptions.sourceMap,
89
+ inlineSourceMap: compilerOptions.inlineSourceMap,
90
+ _useTypeScriptTranspilation: compilerOptions['_useTypeScriptTranspilation'],
91
+ },
92
+ componentResourcesDependencies,
93
+ };
94
+ }
95
+ finally {
96
+ request.stylesheetPort.close();
97
+ if (!success) {
98
+ activeWebWorkerPort?.close();
99
+ activeWebWorkerPort = undefined;
75
100
  }
76
- return result?.transformedOptions ?? compilerOptions;
77
- });
78
- return {
79
- externalStylesheets,
80
- templateUpdates,
81
- referencedFiles,
82
- // TODO: Expand? `allowJs`, `isolatedModules`, `sourceMap`, `inlineSourceMap` are the only fields needed currently.
83
- compilerOptions: {
84
- allowJs: compilerOptions.allowJs,
85
- isolatedModules: compilerOptions.isolatedModules,
86
- sourceMap: compilerOptions.sourceMap,
87
- inlineSourceMap: compilerOptions.inlineSourceMap,
88
- _useTypeScriptTranspilation: compilerOptions['_useTypeScriptTranspilation'],
89
- },
90
- componentResourcesDependencies,
91
- };
101
+ }
92
102
  }
93
103
  async function diagnose(modes) {
94
104
  (0, node_assert_1.default)(compilation);
@@ -101,8 +111,14 @@ async function diagnose(modes) {
101
111
  }
102
112
  async function emit() {
103
113
  (0, node_assert_1.default)(compilation);
104
- const files = await compilation.emitAffectedFiles();
105
- return [...files];
114
+ try {
115
+ const files = await compilation.emitAffectedFiles();
116
+ return [...files];
117
+ }
118
+ finally {
119
+ activeWebWorkerPort?.close();
120
+ activeWebWorkerPort = undefined;
121
+ }
106
122
  }
107
123
  async function update(files) {
108
124
  for (const file of files) {
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-worker.js","sourceRoot":"","sources":["parallel-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-worker.js","sourceRoot":"","sources":["parallel-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import type * as ng from '@angular/compiler-cli';
9
+ import type { PartialMessage } from 'esbuild';
10
+ import ts from 'typescript';
11
+ import { AngularCompilation, DiagnosticModes } from './angular-compilation';
12
+ export declare abstract class TypeScriptCompilation extends AngularCompilation {
13
+ #private;
14
+ static loadCompilerCli(): Promise<typeof ng>;
15
+ protected loadConfiguration(tsconfig: string): Promise<ng.ParsedConfiguration>;
16
+ protected readonly sourceFiles: Map<string, ts.SourceFile>;
17
+ protected invalidateFiles(files: Iterable<string>): void;
18
+ update(files: Set<string>): Promise<void>;
19
+ protected abstract collectDiagnostics(modes: DiagnosticModes): Iterable<ts.Diagnostic> | Promise<Iterable<ts.Diagnostic>>;
20
+ diagnoseFiles(modes?: DiagnosticModes): Promise<{
21
+ errors?: PartialMessage[];
22
+ warnings?: PartialMessage[];
23
+ }>;
24
+ }