@angular/build
Version:
Official build system for Angular
45 lines (44 loc) • 1.46 kB
JavaScript
;
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.SharedTSCompilationState = void 0;
exports.getSharedCompilationState = getSharedCompilationState;
class SharedTSCompilationState {
#pendingCompilation = true;
#resolveCompilationReady;
#compilationReadyPromise;
#hasErrors = true;
get waitUntilReady() {
if (!this.#pendingCompilation) {
return Promise.resolve(this.#hasErrors);
}
this.#compilationReadyPromise ??= new Promise((resolve) => {
this.#resolveCompilationReady = resolve;
});
return this.#compilationReadyPromise;
}
markAsReady(hasErrors) {
this.#hasErrors = hasErrors;
this.#resolveCompilationReady?.(hasErrors);
this.#compilationReadyPromise = undefined;
this.#pendingCompilation = false;
}
markAsInProgress() {
this.#pendingCompilation = true;
}
dispose() {
this.markAsReady(true);
globalSharedCompilationState = undefined;
}
}
exports.SharedTSCompilationState = SharedTSCompilationState;
let globalSharedCompilationState;
function getSharedCompilationState() {
return (globalSharedCompilationState ??= new SharedTSCompilationState());
}