var createAdapter = function () { var sinks = []; return [function (a) { return broadcast(sinks, a); }, new FanoutPortStream(sinks)]; }; var broadcast = function (sinks, a) { return sinks.slice().forEach(function (_a) { var sink = _a.sink, scheduler = _a.scheduler; return tryEvent(scheduler.currentTime(), a, sink); }); }; var FanoutPortStream = /** @class */ (function () { function FanoutPortStream(sinks) { this.sinks = sinks; } FanoutPortStream.prototype.run = function (sink, scheduler) { var s = { sink: sink, scheduler: scheduler }; this.sinks.push(s); return new RemovePortDisposable(s, this.sinks); }; return FanoutPortStream; }()); var RemovePortDisposable = /** @class */ (function () { function RemovePortDisposable(sink, sinks) { this.sink = sink; this.sinks = sinks; } RemovePortDisposable.prototype.dispose = function () { var i = this.sinks.indexOf(this.sink); if (i >= 0) { this.sinks.splice(i, 1); } }; return RemovePortDisposable; }()); function tryEvent(t, a, sink) { try { sink.event(t, a); } catch (e) { sink.error(t, e); } } export { FanoutPortStream, RemovePortDisposable, createAdapter }; //# sourceMappingURL=index.mjs.map