CodeVetter · Repo Unpack · Data flow
ReactiveX/rxjs
Runtime values enter through producer callbacks or platform conversion and move through derived Subscribers. AbortSignals carry ownership upstream, while construction hooks preserve the selected lifecycle. Tooling transforms source into planned file outputs, and the documentation app moves generated JSON through caches, worker indexing, and DOM rendering.
- subscribe wraps the observer in SafeObserver, joins or creates the weakly referenced Subscriber, attaches cancellation, and invokes the producer only for a new activation.
- Subscriber.next snapshots observers for fanout; complete closes first, then notifies the snapshot; closure aborts its signal and runs teardowns in reverse order.
- map constructs through receiver[create]; createImpl selects the receiver's instance constructor or static constructor instead of hardcoding one output type.
- subscribeToSource forwards unspecified notifications, converts override exceptions into downstream errors, and combines inner cancellation with the downstream signal.
- Migration source passes through semantic rewriting, optional framework adaptation, provenance insertion, sorted diagnostics, and import deduplication into MigrationResult.
- planMigrationFiles reads canonical source paths, chooses output names, attaches repository/SHA/path provenance, and returns transformed files; applyMigrationPlan writes those exact code strings.
- DocumentService maps location.currentPath to cached document streams, fetches generated/docs/<id>.json into AsyncSubject, and deletes failed non-404 cache entries.
- Search initialization loads generated search JSON into a Lunr index and pageMap; query-index messages return query results correlated by message type and id.