CodeVetter · Repo Unpack · Extension points
angular/angular
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.
- provideHttpClient accepts HttpFeature values and appends their providers; withInterceptors registers functional interceptors, while withXsrfConfiguration customizes cookie and header names.
- FetchFactory permits injecting a fetch implementation, and HTTP_FETCH_MAX_RESPONSE_SIZE configures or disables the response-buffer limit.
- 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.
- Adev demonstrates router customization through provideRouter features and replacements for RouteReuseStrategy and TitleStrategy, plus a custom UrlSerializer in application providers.
- DOCS_CONTENT_LOADER abstracts content retrieval; mapNavigationItemsToRoutes accepts additional Route properties, merges navigation data, and installs a replaceable docContent resolver.
- Adev injects PREVIEWS_COMPONENTS, EXAMPLE_VIEWER_CONTENT_LOADER, WINDOW, and the TypeScript worker provider, keeping shared documentation components separate from site-specific implementations.
- createCustomElement accepts config.strategyFactory and otherwise uses ComponentNgElementStrategyFactory; the resulting strategy mediates input changes and component connection.
- DevTools MessageBus<T> defines typed on, once, emit, and destroy operations; subscribeToClientEvents connects named protocol topics to backend callbacks.
- ComponentDecoratorHandler is an internal compiler handler with PRIMARY precedence, decorator detection, metadata registries, scope readers, a resource loader, and cached preanalysis results.
- 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.