123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- var core_1 = mostCore;
- var ProxyStream = /** @class */ (function (_super) {
- __extends(ProxyStream, _super);
- function ProxyStream() {
- var _this = _super.call(this, core_1.never()) || this;
- _this.attached = false;
- _this.running = false;
- return _this;
- }
- ProxyStream.prototype.run = function (sink, scheduler) {
- this.scheduler = scheduler;
- this.add(sink);
- var shouldRun = this.attached && !this.running;
- if (shouldRun) {
- this.running = true;
- this.disposable = this.source.run(this, scheduler);
- return this.disposable;
- }
- return new ProxyDisposable(this, sink);
- };
- ProxyStream.prototype.attach = function (stream) {
- if (this.attached)
- throw new Error('Can only attach 1 stream');
- this.attached = true;
- this.source = stream;
- var hasMoreSinks = this.sinks.length > 0;
- if (hasMoreSinks)
- this.disposable = stream.run(this, this.scheduler);
- return stream;
- };
- ProxyStream.prototype.error = function (time, error) {
- this.cleanup();
- _super.prototype.error.call(this, time, error);
- };
- ProxyStream.prototype.end = function (time) {
- this.cleanup();
- _super.prototype.end.call(this, time);
- };
- ProxyStream.prototype.cleanup = function () {
- this.attached = false;
- this.running = false;
- };
- return ProxyStream;
- }(core_1.MulticastSource));
- var ProxyDisposable = /** @class */ (function () {
- function ProxyDisposable(source, sink) {
- this.source = source;
- this.sink = sink;
- this.disposed = false;
- }
- ProxyDisposable.prototype.dispose = function () {
- if (this.disposed)
- return;
- var _a = this, source = _a.source, sink = _a.sink;
- this.disposed = true;
- var remainingSinks = source.remove(sink);
- var hasNoMoreSinks = remainingSinks === 0;
- return hasNoMoreSinks && source.dispose();
- };
- return ProxyDisposable;
- }());
- //# sourceMappingURL=ProxyStream.js.map
- var prelude_1 = mostPrelude;
- function __event(time, value, sink) {
- sink.event(time, value);
- }
- function __error(time, error, sink) {
- sink.error(time, error);
- }
- function __end(time, sink) {
- sink.end(time);
- }
- function create(f) {
- if (f === void 0) { f = prelude_1.id; }
- var source = new ProxyStream.ProxyStream();
- return [source, f(source)];
- }
- function __attach(sink, stream) {
- return sink.attach(stream);
- }
- let attach = prelude_1.curry2(__attach);
- let end = prelude_1.curry2(__end);
- let error = prelude_1.curry3(__error);
- let event = prelude_1.curry3(__event);
- export { attach, end, error, event, create, ProxyStream };
|