We were unable to construct the commit group for this pull request: None of the pull request's commits have been successfully processed as yet.

refactor(@angular/build): extract shared concurrency, watcher, and styling utilities #34110

Closed
alan-agius4 opened 6:49pm on September 17, 2026 wanted to merge 0 commits into angular/angular-cli main from
refactor/build-shared-utils

Pull Request Overview

  • Opened on September 17, 2026
  • Status Closed
  • Commit count 0

Total Delta

0 Total Diff Delta

Open Days

Open 2 weekdays

Test Delta

0 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Data pending calculation for pull request

Author avatar

refactor(@angular/build): extract shared concurrency, watcher, and styling utilities

Extract shared utilities from the application builder so they can be reused across builders:
- Extract runConcurrent and mapConcurrent into utils/concurrency.ts
- Extract setupWatcher into tools/esbuild/watcher.ts
- Extract getTailwindConfig into utils/postcss-configuration.ts
- Update stylesheet bundling options and CSS resource plugin to support data URLs
- Expose resolvePath on BuilderHarness

Comments Threads Pending Resolution

clydin reviewed and approved this work on September 17, 2026
gemini-code-assist[bot] reviewed on September 17, 2026
gemini-code-assist[bot] left a comment

## Code Review

This pull request introduces several refactorings and new features, including the extraction of file watcher setup logic into a reusable `setupWatcher` helper, the addition of a `dataurl` option to inline stylesheet resources as base64 data URIs, and the introduction of new concurrency utilities (`runConcurrent` and `mapConcurrent`) to handle limited-concurrency asynchronous operations. Additionally, the `getTailwindConfig` helper was moved to `postcss-configuration.ts`. Feedback on these changes highlights a potential memory leak in `setupWatcher` where the `'abort'` event listener registered on the `AbortSignal` is not removed when the watcher is closed.

Resolved Comment Threads

gemini-code-assist[bot] reviewed on September 17, 2026
gemini-code-assist[bot] left a comment

## Code Review

This pull request introduces several refactorings and new features, including the extraction of file watcher setup logic into a reusable `setupWatcher` helper, the addition of a `dataurl` option to inline stylesheet resources as base64 data URIs, and the introduction of new concurrency utilities (`runConcurrent` and `mapConcurrent`) to handle limited-concurrency asynchronous operations. Additionally, the `getTailwindConfig` helper was moved to `postcss-configuration.ts`. Feedback on these changes highlights a potential memory leak in `setupWatcher` where the `'abort'` event listener registered on the `AbortSignal` is not removed when the watcher is closed.