@angular/build 22.2.0-next.5 → 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 +7 -6
- 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 +6 -8
- 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/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 +3 -29
- 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 +3 -12
- 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/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/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/i18n-inliner-worker.d.ts +47 -55
- package/src/tools/esbuild/i18n-inliner-worker.js +67 -98
- package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner.d.ts +9 -10
- package/src/tools/esbuild/i18n-inliner.js +215 -120
- package/src/tools/esbuild/i18n-inliner.js.map +1 -1
- package/src/tools/esbuild/i18n-translation-encoder.d.ts +2 -1
- package/src/tools/esbuild/i18n-translation-encoder.js.map +1 -1
- package/src/tools/esbuild/i18n-translation-reader.d.ts +4 -3
- package/src/tools/esbuild/i18n-translation-reader.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer-worker.js +8 -4
- 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/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.js +75 -117
- 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/prerender.d.ts +2 -1
- package/src/utils/server-rendering/prerender.js +31 -18
- package/src/utils/server-rendering/prerender.js.map +1 -1
- package/src/utils/server-rendering/render-worker.d.ts +6 -4
- package/src/utils/server-rendering/render-worker.js +3 -1
- 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
|
@@ -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[];
|
|
@@ -38,7 +38,7 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
|
|
|
38
38
|
filename: localRequire.resolve('./parallel-worker'),
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
async initialize(tsconfig, hostOptions,
|
|
41
|
+
async initialize(tsconfig, hostOptions, compilerOptionOverrides) {
|
|
42
42
|
const stylesheetChannel = new node_worker_threads_1.MessageChannel();
|
|
43
43
|
// The request identifier is required because Angular can issue multiple concurrent requests
|
|
44
44
|
stylesheetChannel.port1.on('message', ({ requestId, data, containingFile, stylesheetFile, order, className }) => {
|
|
@@ -66,23 +66,6 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
|
|
|
66
66
|
Atomics.notify(webWorkerSignal, 0);
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
|
-
// The compiler options transformation is a synchronous operation and uses shared memory combined
|
|
70
|
-
// with the Atomics API to block execution here until a response is received.
|
|
71
|
-
const optionsChannel = new node_worker_threads_1.MessageChannel();
|
|
72
|
-
const optionsSignal = new Int32Array(new SharedArrayBuffer(4));
|
|
73
|
-
optionsChannel.port1.on('message', (compilerOptions) => {
|
|
74
|
-
try {
|
|
75
|
-
const transformedOptions = compilerOptionsTransformer?.(compilerOptions) ?? compilerOptions;
|
|
76
|
-
optionsChannel.port1.postMessage({ transformedOptions });
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
optionsChannel.port1.postMessage({ error });
|
|
80
|
-
}
|
|
81
|
-
finally {
|
|
82
|
-
Atomics.store(optionsSignal, 0, 1);
|
|
83
|
-
Atomics.notify(optionsSignal, 0);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
69
|
let success = false;
|
|
87
70
|
try {
|
|
88
71
|
// Execute the initialize function in the worker thread
|
|
@@ -91,34 +74,25 @@ class ParallelCompilation extends angular_compilation_1.AngularCompilation {
|
|
|
91
74
|
tsconfig,
|
|
92
75
|
jit: this.jit,
|
|
93
76
|
browserOnlyBuild: this.browserOnlyBuild,
|
|
77
|
+
compilerOptionOverrides,
|
|
94
78
|
stylesheetPort: stylesheetChannel.port2,
|
|
95
|
-
optionsPort: optionsChannel.port2,
|
|
96
|
-
optionsSignal,
|
|
97
79
|
webWorkerPort: webWorkerChannel.port2,
|
|
98
80
|
webWorkerSignal,
|
|
99
81
|
}, {
|
|
100
82
|
name: 'initialize',
|
|
101
|
-
transferList: [stylesheetChannel.port2,
|
|
83
|
+
transferList: [stylesheetChannel.port2, webWorkerChannel.port2],
|
|
102
84
|
});
|
|
103
85
|
success = true;
|
|
104
86
|
return result;
|
|
105
87
|
}
|
|
106
88
|
finally {
|
|
107
89
|
stylesheetChannel.port1.close();
|
|
108
|
-
optionsChannel.port1.close();
|
|
109
90
|
if (!success) {
|
|
110
91
|
this.#webWorkerChannel?.port1.close();
|
|
111
92
|
this.#webWorkerChannel = undefined;
|
|
112
93
|
}
|
|
113
94
|
}
|
|
114
95
|
}
|
|
115
|
-
/**
|
|
116
|
-
* This is not needed with this compilation type since the worker will already send a response
|
|
117
|
-
* with the serializable esbuild compatible diagnostics.
|
|
118
|
-
*/
|
|
119
|
-
collectDiagnostics() {
|
|
120
|
-
throw new Error('Not implemented in ParallelCompilation.');
|
|
121
|
-
}
|
|
122
96
|
async diagnoseFiles(modes = angular_compilation_1.DiagnosticModes.All) {
|
|
123
97
|
const { timings, ...result } = await this.#worker.run(modes, { name: 'diagnose' });
|
|
124
98
|
if (timings) {
|
|
@@ -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
|
}
|
|
@@ -48,7 +48,7 @@ async function initialize(request) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
|
-
const { compilerOptions, referencedFiles, externalStylesheets, templateUpdates, componentResourcesDependencies, } = await compilation.initialize(request.tsconfig, {
|
|
51
|
+
const { compilerOptions, referencedFiles, externalStylesheets, templateUpdates, componentResourcesDependencies, warnings, } = await compilation.initialize(request.tsconfig, {
|
|
52
52
|
fileReplacements: request.fileReplacements,
|
|
53
53
|
modifiedFiles: currentModifiedFiles,
|
|
54
54
|
transformStylesheet(data, containingFile, stylesheetFile, order, className) {
|
|
@@ -74,21 +74,13 @@ async function initialize(request) {
|
|
|
74
74
|
}
|
|
75
75
|
return result?.workerCodeFile ?? workerFile;
|
|
76
76
|
},
|
|
77
|
-
},
|
|
78
|
-
Atomics.store(request.optionsSignal, 0, 0);
|
|
79
|
-
request.optionsPort.postMessage(compilerOptions);
|
|
80
|
-
Atomics.wait(request.optionsSignal, 0, 0);
|
|
81
|
-
const result = (0, node_worker_threads_1.receiveMessageOnPort)(request.optionsPort)?.message;
|
|
82
|
-
if (result?.error) {
|
|
83
|
-
throw result.error;
|
|
84
|
-
}
|
|
85
|
-
return result?.transformedOptions ?? compilerOptions;
|
|
86
|
-
});
|
|
77
|
+
}, request.compilerOptionOverrides);
|
|
87
78
|
success = true;
|
|
88
79
|
return {
|
|
89
80
|
externalStylesheets,
|
|
90
81
|
templateUpdates,
|
|
91
82
|
referencedFiles,
|
|
83
|
+
warnings,
|
|
92
84
|
// TODO: Expand? `allowJs`, `isolatedModules`, `sourceMap`, `inlineSourceMap` are the only fields needed currently.
|
|
93
85
|
compilerOptions: {
|
|
94
86
|
allowJs: compilerOptions.allowJs,
|
|
@@ -102,7 +94,6 @@ async function initialize(request) {
|
|
|
102
94
|
}
|
|
103
95
|
finally {
|
|
104
96
|
request.stylesheetPort.close();
|
|
105
|
-
request.optionsPort.close();
|
|
106
97
|
if (!success) {
|
|
107
98
|
activeWebWorkerPort?.close();
|
|
108
99
|
activeWebWorkerPort = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-worker.js","sourceRoot":"","sources":["parallel-worker.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAiCH,
|
|
1
|
+
{"version":3,"file":"parallel-worker.js","sourceRoot":"","sources":["parallel-worker.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAiCH,gCAqGC;AAED,4BAcC;AAED,oBAWC;AAED,wBAKC;AAvKD,8DAAiC;AACjC,6CAAyC;AACzC,6DAA6E;AAC7E,8CAAqD;AACrD,uDAAyE;AAMzE,uDAAmD;AAEnD,uDAAmD;AAanD,IAAI,WAA2C,CAAC;AAChD,IAAI,mBAA4C,CAAC;AAEjD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC,KAAK,UAAU,UAAU,CAAC,OAAoB;IACnD,mBAAmB,EAAE,KAAK,EAAE,CAAC;IAC7B,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAE5C,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACpD,aAAa,CAAC,KAAK,EAAE,CAAC;IAEtB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,IAAA,qBAAc,GAAE,CAAC;QACvB,WAAW,KAAK,OAAO,CAAC,GAAG;YACzB,CAAC,CAAC,IAAI,gCAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC9C,CAAC,CAAC,IAAI,gCAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAEjD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAG/B,CAAC;QACJ,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YACnE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACb,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,KAAK,EAAE,CAAC;oBACV,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,EACJ,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,8BAA8B,EAC9B,QAAQ,GACT,GAAG,MAAM,WAAW,CAAC,UAAU,CAC9B,OAAO,CAAC,QAAQ,EAChB;YACE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,aAAa,EAAE,oBAAoB;YACnC,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS;gBACxE,MAAM,SAAS,GAAG,IAAA,wBAAU,GAAE,CAAC;gBAC/B,MAAM,aAAa,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC5D,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CACrD,CAAC;gBAEF,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC;oBACjC,SAAS;oBACT,IAAI;oBACJ,cAAc;oBACd,cAAc;oBACd,KAAK;oBACL,SAAS;iBACV,CAAC,CAAC;gBAEH,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,gBAAgB,CAAC,UAAU,EAAE,cAAc;gBACzC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7C,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;gBAElE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAA,0CAAoB,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;gBAEpE,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;oBAClB,MAAM,MAAM,CAAC,KAAK,CAAC;gBACrB,CAAC;gBAED,OAAO,MAAM,EAAE,cAAc,IAAI,UAAU,CAAC;YAC9C,CAAC;SACF,EACD,OAAO,CAAC,uBAAuB,CAChC,CAAC;QAEF,OAAO,GAAG,IAAI,CAAC;QAEf,OAAO;YACL,mBAAmB;YACnB,eAAe;YACf,eAAe;YACf,QAAQ;YACR,mHAAmH;YACnH,eAAe,EAAE;gBACf,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,eAAe,EAAE,eAAe,CAAC,eAAe;gBAChD,SAAS,EAAE,eAAe,CAAC,SAAS;gBACpC,eAAe,EAAE,eAAe,CAAC,eAAe;gBAChD,2BAA2B,EAAE,eAAe,CAAC,6BAA6B,CACrD;aACtB;YACD,8BAA8B;SAC/B,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,mBAAmB,EAAE,KAAK,EAAE,CAAC;YAC7B,mBAAmB,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAAsB;IAKnD,IAAA,qBAAM,EAAC,WAAW,CAAC,CAAC;IAEpB,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAA,0CAA8B,GAAE,CAAC;IAEjD,OAAO;QACL,GAAG,WAAW;QACd,OAAO;KACR,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,IAAI;IACxB,IAAA,qBAAM,EAAC,WAAW,CAAC,CAAC;IAEpB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEpD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,mBAAmB,EAAE,KAAK,EAAE,CAAC;QAC7B,mBAAmB,GAAG,SAAS,CAAC;IAClC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,KAAkB;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,WAAW,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
43
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
|
+
};
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.TypeScriptCompilation = void 0;
|
|
47
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
48
|
+
const path_1 = require("../../../utils/path");
|
|
49
|
+
const profiling_1 = require("../../esbuild/profiling");
|
|
50
|
+
const angular_compilation_1 = require("./angular-compilation");
|
|
51
|
+
const diagnostics_1 = require("./diagnostics");
|
|
52
|
+
class TypeScriptCompilation extends angular_compilation_1.AngularCompilation {
|
|
53
|
+
static #angularCompilerCliModule;
|
|
54
|
+
static async loadCompilerCli() {
|
|
55
|
+
TypeScriptCompilation.#angularCompilerCliModule ??= await Promise.resolve().then(() => __importStar(require('@angular/compiler-cli')));
|
|
56
|
+
return TypeScriptCompilation.#angularCompilerCliModule;
|
|
57
|
+
}
|
|
58
|
+
async loadConfiguration(tsconfig) {
|
|
59
|
+
const { readConfiguration } = await TypeScriptCompilation.loadCompilerCli();
|
|
60
|
+
return (0, profiling_1.profileSync)('NG_READ_CONFIG', () => readConfiguration(tsconfig, {
|
|
61
|
+
// Angular specific configuration defaults and overrides to ensure a functioning compilation.
|
|
62
|
+
suppressOutputPathCheck: true,
|
|
63
|
+
outDir: undefined,
|
|
64
|
+
sourceMap: false,
|
|
65
|
+
declaration: false,
|
|
66
|
+
declarationMap: false,
|
|
67
|
+
allowEmptyCodegenFiles: false,
|
|
68
|
+
annotationsAs: 'decorators',
|
|
69
|
+
enableResourceInlining: false,
|
|
70
|
+
supportTestBed: false,
|
|
71
|
+
supportJitMode: false,
|
|
72
|
+
// Disable removing of comments as TS is quite aggressive with these and can
|
|
73
|
+
// remove important annotations, such as /* @__PURE__ */ and comments like /* vite-ignore */.
|
|
74
|
+
removeComments: false,
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
sourceFiles = new Map();
|
|
78
|
+
invalidateFiles(files) {
|
|
79
|
+
for (const file of files) {
|
|
80
|
+
this.sourceFiles.delete((0, path_1.toPosixPath)(file));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async update(files) {
|
|
84
|
+
this.invalidateFiles(files);
|
|
85
|
+
}
|
|
86
|
+
async diagnoseFiles(modes = angular_compilation_1.DiagnosticModes.All) {
|
|
87
|
+
if (modes === angular_compilation_1.DiagnosticModes.None) {
|
|
88
|
+
return {};
|
|
89
|
+
}
|
|
90
|
+
const result = {};
|
|
91
|
+
await (0, profiling_1.profileAsync)('NG_DIAGNOSTICS_TOTAL', async () => {
|
|
92
|
+
const diagnostics = await this.collectDiagnostics(modes);
|
|
93
|
+
for (const diagnostic of diagnostics) {
|
|
94
|
+
const message = (0, diagnostics_1.convertTypeScriptDiagnostic)(typescript_1.default, diagnostic);
|
|
95
|
+
if (diagnostic.category === typescript_1.default.DiagnosticCategory.Error) {
|
|
96
|
+
(result.errors ??= []).push(message);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
(result.warnings ??= []).push(message);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.TypeScriptCompilation = TypeScriptCompilation;
|
|
107
|
+
//# sourceMappingURL=typescript-compilation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-compilation.js","sourceRoot":"","sources":["typescript-compilation.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIH,4DAA4B;AAC5B,8CAAkD;AAClD,uDAAoE;AACpE,+DAA4E;AAC5E,+CAA4D;AAE5D,MAAsB,qBAAsB,SAAQ,wCAAkB;IACpE,MAAM,CAAC,yBAAyB,CAAa;IAE7C,MAAM,CAAC,KAAK,CAAC,eAAe;QAC1B,qBAAqB,CAAC,yBAAyB,KAAK,wDAAa,uBAAuB,GAAC,CAAC;QAE1F,OAAO,qBAAqB,CAAC,yBAAyB,CAAC;IACzD,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QAChD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,qBAAqB,CAAC,eAAe,EAAE,CAAC;QAE5E,OAAO,IAAA,uBAAW,EAAC,gBAAgB,EAAE,GAAG,EAAE,CACxC,iBAAiB,CAAC,QAAQ,EAAE;YAC1B,6FAA6F;YAC7F,uBAAuB,EAAE,IAAI;YAC7B,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,KAAK;YACrB,sBAAsB,EAAE,KAAK;YAC7B,aAAa,EAAE,YAAY;YAC3B,sBAAsB,EAAE,KAAK;YAC7B,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,4EAA4E;YAC5E,6FAA6F;YAC7F,cAAc,EAAE,KAAK;SACtB,CAAC,CACH,CAAC;IACJ,CAAC;IAEkB,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IAExD,eAAe,CAAC,KAAuB;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAkB;QACtC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAMQ,KAAK,CAAC,aAAa,CAC1B,KAAK,GAAG,qCAAe,CAAC,GAAG;QAE3B,IAAI,KAAK,KAAK,qCAAe,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAA+D,EAAE,CAAC;QAE9E,MAAM,IAAA,wBAAY,EAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEzD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,IAAA,yCAA2B,EAAC,oBAAE,EAAE,UAAU,CAAC,CAAC;gBAC5D,IAAI,UAAU,CAAC,QAAQ,KAAK,oBAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBACxD,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,CAAC,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxED,sDAwEC"}
|
|
@@ -5,14 +5,34 @@
|
|
|
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 {
|
|
9
|
-
|
|
8
|
+
import type { CompilerOptions } from '@angular/compiler-cli';
|
|
9
|
+
import type { AngularCompilation } from '../../angular/compilation';
|
|
10
|
+
export declare abstract class AngularCompilationContext {
|
|
11
|
+
abstract readonly compilation?: AngularCompilation;
|
|
12
|
+
abstract isPrimary(): this is PrimaryCompilationContext;
|
|
13
|
+
abstract readonly waitUntilReady: Promise<boolean>;
|
|
14
|
+
abstract getCompilerOptions(): Promise<CompilerOptions>;
|
|
15
|
+
abstract dispose(): Promise<void>;
|
|
16
|
+
createSecondaryContext(): AngularCompilationContext;
|
|
17
|
+
}
|
|
18
|
+
export declare class PrimaryCompilationContext extends AngularCompilationContext {
|
|
10
19
|
#private;
|
|
11
20
|
constructor(compilation: AngularCompilation);
|
|
21
|
+
isPrimary(): this is PrimaryCompilationContext;
|
|
12
22
|
get compilation(): AngularCompilation;
|
|
13
23
|
get waitUntilReady(): Promise<boolean>;
|
|
24
|
+
getCompilerOptions(): Promise<CompilerOptions>;
|
|
25
|
+
setCompilerOptions(options: CompilerOptions): void;
|
|
14
26
|
markAsReady(hasErrors: boolean): void;
|
|
15
27
|
markAsInProgress(): void;
|
|
16
28
|
dispose(): Promise<void>;
|
|
17
|
-
|
|
29
|
+
}
|
|
30
|
+
export declare class SecondaryCompilationContext extends AngularCompilationContext {
|
|
31
|
+
private readonly primaryContext?;
|
|
32
|
+
constructor(primaryContext?: AngularCompilationContext | undefined);
|
|
33
|
+
isPrimary(): this is PrimaryCompilationContext;
|
|
34
|
+
get compilation(): undefined;
|
|
35
|
+
get waitUntilReady(): Promise<boolean>;
|
|
36
|
+
getCompilerOptions(): Promise<CompilerOptions>;
|
|
37
|
+
dispose(): Promise<void>;
|
|
18
38
|
}
|
|
@@ -7,17 +7,29 @@
|
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.AngularCompilationContext = void 0;
|
|
11
|
-
const compilation_1 = require("../../angular/compilation");
|
|
10
|
+
exports.SecondaryCompilationContext = exports.PrimaryCompilationContext = exports.AngularCompilationContext = void 0;
|
|
12
11
|
class AngularCompilationContext {
|
|
12
|
+
createSecondaryContext() {
|
|
13
|
+
return new SecondaryCompilationContext(this);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AngularCompilationContext = AngularCompilationContext;
|
|
17
|
+
class PrimaryCompilationContext extends AngularCompilationContext {
|
|
13
18
|
#compilation;
|
|
14
19
|
#pendingCompilation = true;
|
|
15
20
|
#resolveCompilationReady;
|
|
16
21
|
#compilationReadyPromise;
|
|
17
22
|
#hasErrors = true;
|
|
23
|
+
#compilerOptions;
|
|
24
|
+
#resolveCompilerOptions;
|
|
25
|
+
#compilerOptionsPromise;
|
|
18
26
|
constructor(compilation) {
|
|
27
|
+
super();
|
|
19
28
|
this.#compilation = compilation;
|
|
20
29
|
}
|
|
30
|
+
isPrimary() {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
21
33
|
get compilation() {
|
|
22
34
|
return this.#compilation;
|
|
23
35
|
}
|
|
@@ -30,14 +42,39 @@ class AngularCompilationContext {
|
|
|
30
42
|
});
|
|
31
43
|
return this.#compilationReadyPromise;
|
|
32
44
|
}
|
|
45
|
+
getCompilerOptions() {
|
|
46
|
+
if (this.#compilerOptions) {
|
|
47
|
+
return Promise.resolve(this.#compilerOptions);
|
|
48
|
+
}
|
|
49
|
+
if (!this.#pendingCompilation) {
|
|
50
|
+
return Promise.resolve({});
|
|
51
|
+
}
|
|
52
|
+
this.#compilerOptionsPromise ??= new Promise((resolve) => {
|
|
53
|
+
this.#resolveCompilerOptions = resolve;
|
|
54
|
+
});
|
|
55
|
+
return this.#compilerOptionsPromise;
|
|
56
|
+
}
|
|
57
|
+
setCompilerOptions(options) {
|
|
58
|
+
this.#compilerOptions = options;
|
|
59
|
+
this.#resolveCompilerOptions?.(options);
|
|
60
|
+
this.#resolveCompilerOptions = undefined;
|
|
61
|
+
this.#compilerOptionsPromise = undefined;
|
|
62
|
+
}
|
|
33
63
|
markAsReady(hasErrors) {
|
|
34
64
|
this.#hasErrors = hasErrors;
|
|
35
65
|
this.#resolveCompilationReady?.(hasErrors);
|
|
66
|
+
this.#resolveCompilationReady = undefined;
|
|
36
67
|
this.#compilationReadyPromise = undefined;
|
|
37
68
|
this.#pendingCompilation = false;
|
|
69
|
+
if (this.#resolveCompilerOptions) {
|
|
70
|
+
this.#resolveCompilerOptions(this.#compilerOptions ?? {});
|
|
71
|
+
this.#resolveCompilerOptions = undefined;
|
|
72
|
+
this.#compilerOptionsPromise = undefined;
|
|
73
|
+
}
|
|
38
74
|
}
|
|
39
75
|
markAsInProgress() {
|
|
40
76
|
this.#pendingCompilation = true;
|
|
77
|
+
this.#compilerOptions = undefined;
|
|
41
78
|
}
|
|
42
79
|
#disposal;
|
|
43
80
|
dispose() {
|
|
@@ -53,28 +90,29 @@ class AngularCompilationContext {
|
|
|
53
90
|
// Suppress closure errors to avoid unhandled rejections during teardown.
|
|
54
91
|
}
|
|
55
92
|
}
|
|
56
|
-
createSecondaryContext() {
|
|
57
|
-
return new SecondaryCompilationContext(this);
|
|
58
|
-
}
|
|
59
93
|
}
|
|
60
|
-
exports.
|
|
94
|
+
exports.PrimaryCompilationContext = PrimaryCompilationContext;
|
|
61
95
|
class SecondaryCompilationContext extends AngularCompilationContext {
|
|
62
96
|
primaryContext;
|
|
63
97
|
constructor(primaryContext) {
|
|
64
|
-
super(
|
|
98
|
+
super();
|
|
65
99
|
this.primaryContext = primaryContext;
|
|
66
100
|
}
|
|
67
|
-
|
|
68
|
-
return
|
|
101
|
+
isPrimary() {
|
|
102
|
+
return false;
|
|
69
103
|
}
|
|
70
|
-
|
|
71
|
-
|
|
104
|
+
get compilation() {
|
|
105
|
+
return undefined;
|
|
72
106
|
}
|
|
73
|
-
|
|
74
|
-
|
|
107
|
+
get waitUntilReady() {
|
|
108
|
+
return this.primaryContext?.waitUntilReady ?? Promise.resolve(false);
|
|
109
|
+
}
|
|
110
|
+
getCompilerOptions() {
|
|
111
|
+
return this.primaryContext?.getCompilerOptions() ?? Promise.resolve({});
|
|
75
112
|
}
|
|
76
113
|
async dispose() {
|
|
77
114
|
// No-op for secondary context to avoid disposing the primary compilation worker
|
|
78
115
|
}
|
|
79
116
|
}
|
|
117
|
+
exports.SecondaryCompilationContext = SecondaryCompilationContext;
|
|
80
118
|
//# sourceMappingURL=compilation-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compilation-state.js","sourceRoot":"","sources":["compilation-state.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"compilation-state.js","sourceRoot":"","sources":["compilation-state.ts"],"names":[],"mappings":"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"}
|