import { PartialObserver, ReplaySubject } from 'rxjs'; export class IndexedReplaySubject { private index: Map> = new Map(); get(key: K): ReplaySubject { let sub = this.index.get(key); if (!sub) { sub = new ReplaySubject(1); this.index.set(key, sub); } return sub; } next(key: K, value: T) { this.get(key).next(value); } }