# Extension points — angular/angular

> Canonical page: https://codevetter.com/unpack/angular/extension-points

# Extension points — angular/angular

Scanned commit 831cb13e1c6e5ff17da23273109772c2b088302e (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Angular primarily exposes extension seams through dependency-injection tokens, provider factories, and typed interfaces. Routing and HTTP provide configurable pipelines, while event handling has a concrete plugin registry. Documentation reuses injectable loaders and navigation metadata, and DevTools uses a typed event bus with registered handlers. Internal compiler and release registries are useful maintainer seams but are not automatically supported public extension APIs.
- ApplicationConfig.providers extends browser application providers; BootstrapContext supplies a pre-existing platform, and createApplication allows component creation to be separated from environment creation. — [packages/platform-browser/src/browser.ts#L123-171](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/platform-browser/src/browser.ts#L123-L171)
- provideHttpClient accepts HttpFeature values and appends their providers; withInterceptors registers functional interceptors, while withXsrfConfiguration customizes cookie and header names. — [packages/common/http/src/provider.ts#L99-145](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/provider.ts#L99-L145) [packages/common/http/src/provider.ts#L147-157](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/provider.ts#L147-L157) [packages/common/http/src/provider.ts#L204-218](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/provider.ts#L204-L218)
- FetchFactory permits injecting a fetch implementation, and HTTP_FETCH_MAX_RESPONSE_SIZE configures or disables the response-buffer limit. — [packages/common/http/src/fetch.ts#L44-60](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/fetch.ts#L44-L60) [packages/common/http/src/fetch.ts#L75-82](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/fetch.ts#L75-L82) [packages/common/http/src/fetch.ts#L440-445](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/common/http/src/fetch.ts#L440-L445)
- EVENT_MANAGER_PLUGINS supplies EventManagerPlugin instances; EventManager prioritizes custom plugins in reverse registration order, keeps the catch-all DOM plugin last, and caches the chosen plugin by event name. — [packages/platform-browser/src/dom/events/event_manager.ts#L24-33](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/platform-browser/src/dom/events/event_manager.ts#L24-L33) [packages/platform-browser/src/dom/events/event_manager.ts#L49-64](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/platform-browser/src/dom/events/event_manager.ts#L49-L64) [packages/platform-browser/src/dom/events/event_manager.ts#L95-112](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/platform-browser/src/dom/events/event_manager.ts#L95-L112)
- Adev demonstrates router customization through provideRouter features and replacements for RouteReuseStrategy and TitleStrategy, plus a custom UrlSerializer in application providers. — [adev/src/app/routing/router_providers.ts#L36-74](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/routing/router_providers.ts#L36-L74) [adev/src/app/app.config.ts#L54-57](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/app.config.ts#L54-L57)
- DOCS_CONTENT_LOADER abstracts content retrieval; mapNavigationItemsToRoutes accepts additional Route properties, merges navigation data, and installs a replaceable docContent resolver. — [adev/shared-docs/providers/docs-content-loader.ts#L9-16](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/providers/docs-content-loader.ts#L9-L16) [adev/shared-docs/utils/navigation.utils.ts#L94-123](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/shared-docs/utils/navigation.utils.ts#L94-L123)
- Adev injects PREVIEWS_COMPONENTS, EXAMPLE_VIEWER_CONTENT_LOADER, WINDOW, and the TypeScript worker provider, keeping shared documentation components separate from site-specific implementations. — [adev/src/app/app.config.ts#L45-53](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/adev/src/app/app.config.ts#L45-L53)
- createCustomElement accepts config.strategyFactory and otherwise uses ComponentNgElementStrategyFactory; the resulting strategy mediates input changes and component connection. — [packages/elements/src/create-custom-element.ts#L132-154](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/elements/src/create-custom-element.ts#L132-L154) [packages/elements/src/create-custom-element.ts#L181-208](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/elements/src/create-custom-element.ts#L181-L208)
- DevTools MessageBus<T> defines typed on, once, emit, and destroy operations; subscribeToClientEvents connects named protocol topics to backend callbacks. — [devtools/projects/protocol/src/lib/message-bus.ts#L9-16](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/devtools/projects/protocol/src/lib/message-bus.ts#L9-L16) [devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts#L82-107](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts#L82-L107) [devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts#L109-144](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts#L109-L144)
- ComponentDecoratorHandler is an internal compiler handler with PRIMARY precedence, decorator detection, metadata registries, scope readers, a resource loader, and cached preanalysis results. — [packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts#L236-257](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts#L236-L257) [packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts#L316-352](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts#L316-L352)
- Release package discovery is tag-based: package-builder queries npm_package targets bearing release-with-framework, with a special mapping for the language-server package. — [scripts/build/package-builder.mts#L21-27](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/scripts/build/package-builder.mts#L21-L27) [scripts/build/package-builder.mts#L116-130](https://github.com/angular/angular/blob/831cb13e1c6e5ff17da23273109772c2b088302e/scripts/build/package-builder.mts#L116-L130)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
