From 1d2ea797f6dde7c9580a4194d4227aaeb4547734 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 9 Oct 2026 13:20:41 +0000 Subject: [PATCH] refactor(@angular/build): run initialization tasks concurrently in library builder Moving target project name validation before async operations allows early exit if missing. Additionally, normalizing library options, initializing xxHash, and purging the stale build disk cache concurrently via Promise.all avoids serial awaiting during builder startup. --- .../angular/build/src/builders/library/builder.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/angular/build/src/builders/library/builder.ts b/packages/angular/build/src/builders/library/builder.ts index 33df771fc6ab..2435d5db5f18 100644 --- a/packages/angular/build/src/builders/library/builder.ts +++ b/packages/angular/build/src/builders/library/builder.ts @@ -42,10 +42,6 @@ export async function* executeLibraryBuilder( context: BuilderContext & { signal?: AbortSignal }, ): AsyncIterableIterator { assertCompatibleAngularVersion(context.workspaceRoot); - await initializeHash(); - - // Purge old build disk cache - await purgeStaleBuildCache(context); const projectName = context.target?.project; if (!projectName) { @@ -54,7 +50,13 @@ export async function* executeLibraryBuilder( return; } - const normalizedOptions = await normalizeLibraryOptions(context, projectName, options); + const [normalizedOptions] = await Promise.all([ + normalizeLibraryOptions(context, projectName, options), + initializeHash(), + // Purge old build disk cache + purgeStaleBuildCache(context), + ]); + const { workspaceRoot, projectRoot,