@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.
- package/package.json +13 -12
- package/src/builders/application/build-action.js +47 -39
- package/src/builders/application/build-action.js.map +1 -1
- package/src/builders/application/execute-build.js +1 -1
- package/src/builders/application/execute-build.js.map +1 -1
- package/src/builders/application/execute-post-bundle.js +2 -5
- package/src/builders/application/execute-post-bundle.js.map +1 -1
- package/src/builders/application/i18n.js +20 -10
- package/src/builders/application/i18n.js.map +1 -1
- package/src/builders/application/index.js +2 -2
- package/src/builders/application/index.js.map +1 -1
- package/src/builders/application/results.d.ts +3 -2
- package/src/builders/application/setup-bundling.js +3 -1
- package/src/builders/application/setup-bundling.js.map +1 -1
- package/src/builders/dev-server/vite/index.js +4 -7
- package/src/builders/dev-server/vite/index.js.map +1 -1
- package/src/builders/dev-server/vite/server.js +1 -1
- package/src/builders/dev-server/vite/server.js.map +1 -1
- package/src/builders/dev-server/vite/utils.d.ts +1 -1
- package/src/builders/dev-server/vite/utils.js +9 -4
- package/src/builders/dev-server/vite/utils.js.map +1 -1
- package/src/builders/extract-i18n/application-extraction.js +6 -5
- package/src/builders/extract-i18n/application-extraction.js.map +1 -1
- package/src/builders/karma/application_builder.js +1 -1
- package/src/builders/karma/application_builder.js.map +1 -1
- package/src/builders/karma/assets-middleware.d.ts +2 -2
- package/src/builders/karma/assets-middleware.js +5 -2
- package/src/builders/karma/assets-middleware.js.map +1 -1
- package/src/builders/karma/progress-reporter.js +7 -5
- package/src/builders/karma/progress-reporter.js.map +1 -1
- package/src/builders/karma/utils.d.ts +2 -1
- package/src/builders/karma/utils.js +2 -2
- package/src/builders/karma/utils.js.map +1 -1
- package/src/builders/unit-test/builder.js +1 -1
- package/src/builders/unit-test/options.d.ts +1 -0
- package/src/builders/unit-test/options.js +2 -1
- package/src/builders/unit-test/options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/build-options.js +5 -6
- package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/executor.js +4 -4
- package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
- package/src/builders/unit-test/schema.d.ts +7 -0
- package/src/builders/unit-test/schema.js.map +1 -1
- package/src/builders/unit-test/schema.json +5 -0
- package/src/private.d.ts +1 -1
- package/src/private.js +4 -3
- package/src/private.js.map +1 -1
- package/src/tools/angular/compilation/angular-compilation.d.ts +3 -8
- package/src/tools/angular/compilation/angular-compilation.js +2 -88
- package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
- package/src/tools/angular/compilation/aot-compilation.d.ts +5 -5
- package/src/tools/angular/compilation/aot-compilation.js +9 -13
- package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
- package/src/tools/angular/compilation/compiler-options.d.ts +24 -0
- package/src/tools/angular/compilation/compiler-options.js +135 -0
- package/src/tools/angular/compilation/compiler-options.js.map +1 -0
- package/src/tools/angular/compilation/index.d.ts +1 -1
- package/src/tools/angular/compilation/index.js +1 -3
- package/src/tools/angular/compilation/index.js.map +1 -1
- package/src/tools/angular/compilation/jit-compilation.d.ts +5 -5
- package/src/tools/angular/compilation/jit-compilation.js +8 -15
- package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-compilation.d.ts +2 -7
- package/src/tools/angular/compilation/parallel-compilation.js +39 -41
- package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-worker.d.ts +2 -2
- package/src/tools/angular/compilation/parallel-worker.js +79 -63
- package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
- package/src/tools/angular/compilation/typescript-compilation.d.ts +24 -0
- package/src/tools/angular/compilation/typescript-compilation.js +107 -0
- package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
- package/src/tools/angular/linker/oxc-linker.d.ts +13 -17
- package/src/tools/angular/linker/oxc-linker.js +27 -89
- package/src/tools/angular/linker/oxc-linker.js.map +1 -1
- package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
- package/src/tools/esbuild/angular/compilation-state.js +51 -13
- package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
- package/src/tools/esbuild/angular/compiler-plugin.js +36 -101
- package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
- package/src/tools/esbuild/angular/component-stylesheets.d.ts +3 -3
- package/src/tools/esbuild/angular/component-stylesheets.js +42 -15
- package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
- package/src/tools/esbuild/application-code-bundle.js +5 -9
- package/src/tools/esbuild/application-code-bundle.js.map +1 -1
- package/src/tools/esbuild/bundler-context.d.ts +4 -4
- package/src/tools/esbuild/bundler-context.js +93 -27
- package/src/tools/esbuild/bundler-context.js.map +1 -1
- package/src/tools/esbuild/bundler-execution-result.d.ts +1 -0
- package/src/tools/esbuild/bundler-execution-result.js +2 -2
- package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
- package/src/tools/esbuild/cache.d.ts +10 -0
- package/src/tools/esbuild/cache.js +18 -0
- package/src/tools/esbuild/cache.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner-worker.d.ts +82 -37
- package/src/tools/esbuild/i18n-inliner-worker.js +134 -97
- package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner.d.ts +42 -11
- package/src/tools/esbuild/i18n-inliner.js +335 -121
- package/src/tools/esbuild/i18n-inliner.js.map +1 -1
- package/src/tools/esbuild/i18n-locale-plugin.d.ts +32 -0
- package/src/tools/esbuild/i18n-locale-plugin.js +112 -103
- package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
- package/src/tools/esbuild/i18n-translation-encoder.d.ts +21 -0
- package/src/tools/esbuild/i18n-translation-encoder.js +92 -0
- package/src/tools/esbuild/i18n-translation-encoder.js.map +1 -0
- package/src/tools/esbuild/i18n-translation-reader.d.ts +41 -0
- package/src/tools/esbuild/i18n-translation-reader.js +164 -0
- package/src/tools/esbuild/i18n-translation-reader.js.map +1 -0
- package/src/tools/esbuild/javascript-transformer-worker.js +41 -47
- package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer.js +53 -1
- package/src/tools/esbuild/javascript-transformer.js.map +1 -1
- package/src/tools/esbuild/load-result-cache.d.ts +1 -0
- package/src/tools/esbuild/load-result-cache.js +24 -11
- package/src/tools/esbuild/load-result-cache.js.map +1 -1
- package/src/tools/esbuild/sqlite-cache-store.d.ts +8 -0
- package/src/tools/esbuild/sqlite-cache-store.js +19 -7
- package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
- package/src/tools/esbuild/stylesheets/sass-language.js +19 -14
- package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
- package/src/tools/esbuild/utils.d.ts +1 -1
- package/src/tools/esbuild/utils.js.map +1 -1
- package/src/tools/oxc/oxc-transform.d.ts +3 -0
- package/src/tools/oxc/oxc-transform.js +103 -124
- package/src/tools/oxc/oxc-transform.js.map +1 -1
- package/src/tools/oxc/traversal.d.ts +32 -0
- package/src/tools/oxc/traversal.js +299 -0
- package/src/tools/oxc/traversal.js.map +1 -0
- package/src/tools/sass/rebasing-importer.d.ts +8 -14
- package/src/tools/sass/rebasing-importer.js +18 -24
- package/src/tools/sass/rebasing-importer.js.map +1 -1
- package/src/tools/sass/sass-service.d.ts +11 -38
- package/src/tools/sass/sass-service.js +124 -187
- package/src/tools/sass/sass-service.js.map +1 -1
- package/src/utils/environment-options.d.ts +12 -0
- package/src/utils/environment-options.js +20 -12
- package/src/utils/environment-options.js.map +1 -1
- package/src/utils/i18n-options.d.ts +2 -1
- package/src/utils/i18n-options.js.map +1 -1
- package/src/utils/normalize-cache.d.ts +11 -1
- package/src/utils/normalize-cache.js +6 -3
- package/src/utils/normalize-cache.js.map +1 -1
- package/src/utils/purge-cache.js +24 -13
- package/src/utils/purge-cache.js.map +1 -1
- package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.d.ts +1 -1
- package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +12 -9
- package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js.map +1 -1
- package/src/utils/server-rendering/esm-in-memory-loader/utils.d.ts +8 -0
- package/src/utils/server-rendering/esm-in-memory-loader/utils.js +30 -0
- package/src/utils/server-rendering/esm-in-memory-loader/utils.js.map +1 -1
- package/src/utils/server-rendering/prerender.d.ts +2 -1
- package/src/utils/server-rendering/prerender.js +83 -30
- package/src/utils/server-rendering/prerender.js.map +1 -1
- package/src/utils/server-rendering/render-worker.d.ts +10 -5
- package/src/utils/server-rendering/render-worker.js +31 -7
- package/src/utils/server-rendering/render-worker.js.map +1 -1
- package/src/utils/test-files.d.ts +2 -2
- package/src/utils/test-files.js +3 -3
- package/src/utils/test-files.js.map +1 -1
- package/src/tools/angular/compilation/noop-compilation.d.ts +0 -15
- package/src/tools/angular/compilation/noop-compilation.js +0 -27
- package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
- package/src/tools/sass/worker.d.ts +0 -63
- package/src/tools/sass/worker.js +0 -202
- package/src/tools/sass/worker.js.map +0 -1
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
- /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.
|
|
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;
|
|
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 {
|
|
12
|
-
|
|
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,
|
|
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
|
|
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,
|
|
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 =
|
|
83
|
+
const { compilerOptions, warnings } = (0, compiler_options_1.transformCompilerOptions)(typescript_1.default, originalCompilerOptions, compilerOptionOverrides, tsconfig);
|
|
84
84
|
if (hostOptions.modifiedFiles) {
|
|
85
|
-
|
|
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
|
|
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":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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,
|
|
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,
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
webWorkerChannel.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
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":";AAAA;;;;;;GAMG;;;
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
67
|
-
},
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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
|
-
|
|
105
|
-
|
|
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":";AAAA;;;;;;GAMG;;;;;
|
|
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
|
+
}
|