CodeVetter · Repo Unpack · Extension points
ReactiveX/rxjs
The central extension mechanism is an imported exact Symbol plus ambient TypeScript augmentation. A shared construction protocol supports subclasses and compatible duplicate installations, while connector factories customize stateful operators. Migration registries/adapters and the documentation element registry provide separate tooling and UI seams.
- A capability module exports a unique Symbol, augments Observable<T>, implements the operator, and assigns its function to Observable.prototype under that Symbol.
- The create protocol is registered as rxjs.kernel.create.v1, installed on constructor and prototype, accepts an existing callable slot, and rejects an occupied noncallable slot.
- Subclass construction is customized through an instance [create] override: ColdObservable returns ColdObservable, while Subject intentionally returns the selected platform base.
- share accepts a connector factory and independent error, completion, and zero-refcount reset rules, including Observable-valued reset notifiers.
- groupBy exposes key selection, element projection, duration Observables, and SubjectLike connector factories, with immutable key properties on group views.
- Migration capability mappings encode legacy/Symbol names, modules, argument adapters, arity, preconditions, status, and fixture evidence; semantic rewriting schema-checks the registry and engine version.
- Migration supports an optional frameworkAdapter after semantic rewriting and an OutputNamePolicy for planned filenames; these customize transformation and output without replacing batch planning.
- The documentation site registers lazy embedded components through selector/loadChildren entries, materializes a callback Map, and exposes it through an Angular InjectionToken.