UNPKG

xstream

Version:

An extremely intuitive, small, and fast functional reactive stream library for JavaScript

1,243 lines (1,199 loc) 34.7 kB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.xstream = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ "use strict"; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var NO = {}; function noop() { } function copy(a) { var l = a.length; var b = Array(l); for (var i = 0; i < l; ++i) { b[i] = a[i]; } return b; } exports.NO_IL = { _n: noop, _e: noop, _c: noop, }; function internalizeProducer(producer) { producer._start = function _start(il) { il.next = il._n; il.error = il._e; il.complete = il._c; this.start(il); }; producer._stop = producer.stop; } function compose2(f1, f2) { return function composedFn(arg) { return f1(f2(arg)); }; } function and(f1, f2) { return function andFn(t) { return f1(t) && f2(t); }; } var MergeProducer = (function () { function MergeProducer(insArr) { this.type = 'merge'; this.insArr = insArr; this.out = NO; this.ac = 0; } MergeProducer.prototype._start = function (out) { this.out = out; var s = this.insArr; var L = s.length; this.ac = L; for (var i = 0; i < L; i++) { s[i]._add(this); } }; MergeProducer.prototype._stop = function () { var s = this.insArr; var L = s.length; for (var i = 0; i < L; i++) { s[i]._remove(this); } this.out = NO; }; MergeProducer.prototype._n = function (t) { var u = this.out; if (u === NO) return; u._n(t); }; MergeProducer.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; MergeProducer.prototype._c = function () { if (--this.ac <= 0) { var u = this.out; if (u === NO) return; u._c(); } }; return MergeProducer; }()); exports.MergeProducer = MergeProducer; var CombineListener = (function () { function CombineListener(i, out, p) { this.i = i; this.out = out; this.p = p; p.ils.push(this); } CombineListener.prototype._n = function (t) { var p = this.p, out = this.out; if (!out) return; if (p.up(t, this.i)) { out._n(p.vals); } }; CombineListener.prototype._e = function (err) { var out = this.out; if (!out) return; out._e(err); }; CombineListener.prototype._c = function () { var p = this.p; if (!p.out) return; if (--p.Nc === 0) { p.out._c(); } }; return CombineListener; }()); exports.CombineListener = CombineListener; var CombineProducer = (function () { function CombineProducer(insArr) { this.type = 'combine'; this.insArr = insArr; this.out = NO; this.ils = []; this.Nc = this.Nn = 0; this.vals = []; } CombineProducer.prototype.up = function (t, i) { var v = this.vals[i]; var Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn; this.vals[i] = t; return Nn === 0; }; CombineProducer.prototype._start = function (out) { this.out = out; var s = this.insArr; var n = this.Nc = this.Nn = s.length; var vals = this.vals = new Array(n); if (n === 0) { out._n([]); out._c(); } else { for (var i = 0; i < n; i++) { vals[i] = NO; s[i]._add(new CombineListener(i, out, this)); } } }; CombineProducer.prototype._stop = function () { var s = this.insArr; var n = s.length; for (var i = 0; i < n; i++) { s[i]._remove(this.ils[i]); } this.out = NO; this.ils = []; this.vals = []; }; return CombineProducer; }()); exports.CombineProducer = CombineProducer; var FromArrayProducer = (function () { function FromArrayProducer(a) { this.type = 'fromArray'; this.a = a; } FromArrayProducer.prototype._start = function (out) { var a = this.a; for (var i = 0, l = a.length; i < l; i++) { out._n(a[i]); } out._c(); }; FromArrayProducer.prototype._stop = function () { }; return FromArrayProducer; }()); exports.FromArrayProducer = FromArrayProducer; var FromPromiseProducer = (function () { function FromPromiseProducer(p) { this.type = 'fromPromise'; this.on = false; this.p = p; } FromPromiseProducer.prototype._start = function (out) { var prod = this; this.on = true; this.p.then(function (v) { if (prod.on) { out._n(v); out._c(); } }, function (e) { out._e(e); }).then(null, function (err) { setTimeout(function () { throw err; }); }); }; FromPromiseProducer.prototype._stop = function () { this.on = false; }; return FromPromiseProducer; }()); exports.FromPromiseProducer = FromPromiseProducer; var PeriodicProducer = (function () { function PeriodicProducer(period) { this.type = 'periodic'; this.period = period; this.intervalID = -1; this.i = 0; } PeriodicProducer.prototype._start = function (stream) { var self = this; function intervalHandler() { stream._n(self.i++); } this.intervalID = setInterval(intervalHandler, this.period); }; PeriodicProducer.prototype._stop = function () { if (this.intervalID !== -1) clearInterval(this.intervalID); this.intervalID = -1; this.i = 0; }; return PeriodicProducer; }()); exports.PeriodicProducer = PeriodicProducer; var DebugOperator = (function () { function DebugOperator(arg, ins) { this.type = 'debug'; this.ins = ins; this.out = NO; this.s = noop; this.l = ''; if (typeof arg === 'string') { this.l = arg; } else if (typeof arg === 'function') { this.s = arg; } } DebugOperator.prototype._start = function (out) { this.out = out; this.ins._add(this); }; DebugOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; }; DebugOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; var s = this.s, l = this.l; if (s !== noop) { try { s(t); } catch (e) { u._e(e); } } else if (l) { console.log(l + ':', t); } else { console.log(t); } u._n(t); }; DebugOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; DebugOperator.prototype._c = function () { var u = this.out; if (u === NO) return; u._c(); }; return DebugOperator; }()); exports.DebugOperator = DebugOperator; var DropOperator = (function () { function DropOperator(max, ins) { this.type = 'drop'; this.ins = ins; this.out = NO; this.max = max; this.dropped = 0; } DropOperator.prototype._start = function (out) { this.out = out; this.dropped = 0; this.ins._add(this); }; DropOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; }; DropOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; if (this.dropped++ >= this.max) u._n(t); }; DropOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; DropOperator.prototype._c = function () { var u = this.out; if (u === NO) return; u._c(); }; return DropOperator; }()); exports.DropOperator = DropOperator; var OtherIL = (function () { function OtherIL(out, op) { this.out = out; this.op = op; } OtherIL.prototype._n = function (t) { this.op.end(); }; OtherIL.prototype._e = function (err) { this.out._e(err); }; OtherIL.prototype._c = function () { this.op.end(); }; return OtherIL; }()); var EndWhenOperator = (function () { function EndWhenOperator(o, ins) { this.type = 'endWhen'; this.ins = ins; this.out = NO; this.o = o; this.oil = exports.NO_IL; } EndWhenOperator.prototype._start = function (out) { this.out = out; this.o._add(this.oil = new OtherIL(out, this)); this.ins._add(this); }; EndWhenOperator.prototype._stop = function () { this.ins._remove(this); this.o._remove(this.oil); this.out = NO; this.oil = exports.NO_IL; }; EndWhenOperator.prototype.end = function () { var u = this.out; if (u === NO) return; u._c(); }; EndWhenOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; u._n(t); }; EndWhenOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; EndWhenOperator.prototype._c = function () { this.end(); }; return EndWhenOperator; }()); exports.EndWhenOperator = EndWhenOperator; var FilterOperator = (function () { function FilterOperator(passes, ins) { this.type = 'filter'; this.ins = ins; this.out = NO; this.passes = passes; } FilterOperator.prototype._start = function (out) { this.out = out; this.ins._add(this); }; FilterOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; }; FilterOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; try { if (this.passes(t)) u._n(t); } catch (e) { u._e(e); } }; FilterOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; FilterOperator.prototype._c = function () { var u = this.out; if (u === NO) return; u._c(); }; return FilterOperator; }()); exports.FilterOperator = FilterOperator; var FlattenListener = (function () { function FlattenListener(out, op) { this.out = out; this.op = op; } FlattenListener.prototype._n = function (t) { this.out._n(t); }; FlattenListener.prototype._e = function (err) { this.out._e(err); }; FlattenListener.prototype._c = function () { this.op.inner = NO; this.op.less(); }; return FlattenListener; }()); var FlattenOperator = (function () { function FlattenOperator(ins) { this.type = 'flatten'; this.ins = ins; this.out = NO; this.open = true; this.inner = NO; this.il = exports.NO_IL; } FlattenOperator.prototype._start = function (out) { this.out = out; this.open = true; this.inner = NO; this.il = exports.NO_IL; this.ins._add(this); }; FlattenOperator.prototype._stop = function () { this.ins._remove(this); if (this.inner !== NO) this.inner._remove(this.il); this.out = NO; this.open = true; this.inner = NO; this.il = exports.NO_IL; }; FlattenOperator.prototype.less = function () { var u = this.out; if (u === NO) return; if (!this.open && this.inner === NO) u._c(); }; FlattenOperator.prototype._n = function (s) { var u = this.out; if (u === NO) return; var _a = this, inner = _a.inner, il = _a.il; if (inner !== NO && il !== exports.NO_IL) inner._remove(il); (this.inner = s)._add(this.il = new FlattenListener(u, this)); }; FlattenOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; FlattenOperator.prototype._c = function () { this.open = false; this.less(); }; return FlattenOperator; }()); exports.FlattenOperator = FlattenOperator; var FoldOperator = (function () { function FoldOperator(f, seed, ins) { this.type = 'fold'; this.ins = ins; this.out = NO; this.f = f; this.acc = this.seed = seed; } FoldOperator.prototype._start = function (out) { this.out = out; this.acc = this.seed; out._n(this.acc); this.ins._add(this); }; FoldOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; this.acc = this.seed; }; FoldOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; try { u._n(this.acc = this.f(this.acc, t)); } catch (e) { u._e(e); } }; FoldOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; FoldOperator.prototype._c = function () { var u = this.out; if (u === NO) return; u._c(); }; return FoldOperator; }()); exports.FoldOperator = FoldOperator; var LastOperator = (function () { function LastOperator(ins) { this.type = 'last'; this.ins = ins; this.out = NO; this.has = false; this.val = NO; } LastOperator.prototype._start = function (out) { this.out = out; this.has = false; this.ins._add(this); }; LastOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; this.val = NO; }; LastOperator.prototype._n = function (t) { this.has = true; this.val = t; }; LastOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; LastOperator.prototype._c = function () { var u = this.out; if (u === NO) return; if (this.has) { u._n(this.val); u._c(); } else { u._e('TODO show proper error'); } }; return LastOperator; }()); exports.LastOperator = LastOperator; var MapFlattenInner = (function () { function MapFlattenInner(out, op) { this.out = out; this.op = op; } MapFlattenInner.prototype._n = function (r) { this.out._n(r); }; MapFlattenInner.prototype._e = function (err) { this.out._e(err); }; MapFlattenInner.prototype._c = function () { this.op.inner = NO; this.op.less(); }; return MapFlattenInner; }()); var MapFlattenOperator = (function () { function MapFlattenOperator(mapOp) { this.type = mapOp.type + "+flatten"; this.ins = mapOp.ins; this.out = NO; this.mapOp = mapOp; this.inner = NO; this.il = exports.NO_IL; this.open = true; } MapFlattenOperator.prototype._start = function (out) { this.out = out; this.inner = NO; this.il = exports.NO_IL; this.open = true; this.mapOp.ins._add(this); }; MapFlattenOperator.prototype._stop = function () { this.mapOp.ins._remove(this); if (this.inner !== NO) this.inner._remove(this.il); this.out = NO; this.inner = NO; this.il = exports.NO_IL; }; MapFlattenOperator.prototype.less = function () { if (!this.open && this.inner === NO) { var u = this.out; if (u === NO) return; u._c(); } }; MapFlattenOperator.prototype._n = function (v) { var u = this.out; if (u === NO) return; var _a = this, inner = _a.inner, il = _a.il; var s; try { s = this.mapOp.project(v); } catch (e) { u._e(e); return; } if (inner !== NO && il !== exports.NO_IL) inner._remove(il); (this.inner = s)._add(this.il = new MapFlattenInner(u, this)); }; MapFlattenOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; MapFlattenOperator.prototype._c = function () { this.open = false; this.less(); }; return MapFlattenOperator; }()); exports.MapFlattenOperator = MapFlattenOperator; var MapOperator = (function () { function MapOperator(project, ins) { this.type = 'map'; this.ins = ins; this.out = NO; this.project = project; } MapOperator.prototype._start = function (out) { this.out = out; this.ins._add(this); }; MapOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; }; MapOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; try { u._n(this.project(t)); } catch (e) { u._e(e); } }; MapOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; MapOperator.prototype._c = function () { var u = this.out; if (u === NO) return; u._c(); }; return MapOperator; }()); exports.MapOperator = MapOperator; var FilterMapOperator = (function (_super) { __extends(FilterMapOperator, _super); function FilterMapOperator(passes, project, ins) { _super.call(this, project, ins); this.type = 'filter+map'; this.passes = passes; } FilterMapOperator.prototype._n = function (v) { if (this.passes(v)) { _super.prototype._n.call(this, v); } ; }; return FilterMapOperator; }(MapOperator)); exports.FilterMapOperator = FilterMapOperator; var RememberOperator = (function () { function RememberOperator(ins) { this.type = 'remember'; this.ins = ins; this.out = NO; } RememberOperator.prototype._start = function (out) { this.out = out; this.ins._add(out); }; RememberOperator.prototype._stop = function () { this.ins._remove(this.out); this.out = NO; }; return RememberOperator; }()); exports.RememberOperator = RememberOperator; var ReplaceErrorOperator = (function () { function ReplaceErrorOperator(fn, ins) { this.type = 'replaceError'; this.ins = ins; this.out = NO; this.fn = fn; } ReplaceErrorOperator.prototype._start = function (out) { this.out = out; this.ins._add(this); }; ReplaceErrorOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; }; ReplaceErrorOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; u._n(t); }; ReplaceErrorOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; try { this.ins._remove(this); (this.ins = this.fn(err))._add(this); } catch (e) { u._e(e); } }; ReplaceErrorOperator.prototype._c = function () { var u = this.out; if (u === NO) return; u._c(); }; return ReplaceErrorOperator; }()); exports.ReplaceErrorOperator = ReplaceErrorOperator; var StartWithOperator = (function () { function StartWithOperator(ins, val) { this.type = 'startWith'; this.ins = ins; this.out = NO; this.val = val; } StartWithOperator.prototype._start = function (out) { this.out = out; this.out._n(this.val); this.ins._add(out); }; StartWithOperator.prototype._stop = function () { this.ins._remove(this.out); this.out = NO; }; return StartWithOperator; }()); exports.StartWithOperator = StartWithOperator; var TakeOperator = (function () { function TakeOperator(max, ins) { this.type = 'take'; this.ins = ins; this.out = NO; this.max = max; this.taken = 0; } TakeOperator.prototype._start = function (out) { this.out = out; this.taken = 0; if (this.max <= 0) { out._c(); } else { this.ins._add(this); } }; TakeOperator.prototype._stop = function () { this.ins._remove(this); this.out = NO; }; TakeOperator.prototype._n = function (t) { var u = this.out; if (u === NO) return; if (this.taken++ < this.max - 1) { u._n(t); } else { u._n(t); u._c(); } }; TakeOperator.prototype._e = function (err) { var u = this.out; if (u === NO) return; u._e(err); }; TakeOperator.prototype._c = function () { var u = this.out; if (u === NO) return; u._c(); }; return TakeOperator; }()); exports.TakeOperator = TakeOperator; var Stream = (function () { function Stream(producer) { this._prod = producer || NO; this._ils = []; this._stopID = NO; this._target = NO; this._err = NO; } Stream.prototype._n = function (t) { var a = this._ils; var L = a.length; if (L == 1) a[0]._n(t); else { var b = copy(a); for (var i = 0; i < L; i++) b[i]._n(t); } }; Stream.prototype._e = function (err) { if (this._err !== NO) return; this._err = err; var a = this._ils; var L = a.length; if (L == 1) a[0]._e(err); else { var b = copy(a); for (var i = 0; i < L; i++) b[i]._e(err); } this._x(); }; Stream.prototype._c = function () { var a = this._ils; var L = a.length; if (L == 1) a[0]._c(); else { var b = copy(a); for (var i = 0; i < L; i++) b[i]._c(); } this._x(); }; Stream.prototype._x = function () { if (this._ils.length === 0) return; if (this._prod !== NO) this._prod._stop(); this._err = NO; this._ils = []; }; Stream.prototype._stopNow = function () { this._prod._stop(); this._err = NO; this._stopID = NO; }; Stream.prototype._add = function (il) { var ta = this._target; if (ta !== NO) return ta._add(il); var a = this._ils; a.push(il); if (a.length === 1) { if (this._stopID !== NO) { clearTimeout(this._stopID); this._stopID = NO; } var p = this._prod; if (p !== NO) p._start(this); } }; Stream.prototype._remove = function (il) { var _this = this; var ta = this._target; if (ta !== NO) return ta._remove(il); var a = this._ils; var i = a.indexOf(il); if (i > -1) { a.splice(i, 1); if (this._prod !== NO && a.length <= 0) { this._err = NO; this._stopID = setTimeout(function () { return _this._stopNow(); }); } else if (a.length === 1) { this._pruneCycles(); } } }; Stream.prototype._pruneCycles = function () { if (this._hasNoSinks(this, [])) { this._remove(this._ils[0]); } }; Stream.prototype._hasNoSinks = function (x, trace) { if (trace.indexOf(x) !== -1) { return true; } else if (x.out === this) { return true; } else if (x.out && x.out !== NO) { return this._hasNoSinks(x.out, trace.concat(x)); } else if (x._ils) { for (var i = 0, N = x._ils.length; i < N; i++) { if (!this._hasNoSinks(x._ils[i], trace.concat(x))) { return false; } } return true; } else { return false; } }; Stream.prototype.ctor = function () { return this instanceof MemoryStream ? MemoryStream : Stream; }; Stream.prototype.addListener = function (listener) { if (typeof listener.next !== 'function' || typeof listener.error !== 'function' || typeof listener.complete !== 'function') { throw new Error('stream.addListener() requires all three next, error, ' + 'and complete functions.'); } listener._n = listener.next; listener._e = listener.error; listener._c = listener.complete; this._add(listener); }; Stream.prototype.removeListener = function (listener) { this._remove(listener); }; Stream.create = function (producer) { if (producer) { if (typeof producer.start !== 'function' || typeof producer.stop !== 'function') { throw new Error('producer requires both start and stop functions'); } internalizeProducer(producer); } return new Stream(producer); }; Stream.createWithMemory = function (producer) { if (producer) { internalizeProducer(producer); } return new MemoryStream(producer); }; Stream.never = function () { return new Stream({ _start: noop, _stop: noop }); }; Stream.empty = function () { return new Stream({ _start: function (il) { il._c(); }, _stop: noop, }); }; Stream.throw = function (error) { return new Stream({ _start: function (il) { il._e(error); }, _stop: noop, }); }; Stream.of = function () { var items = []; for (var _i = 0; _i < arguments.length; _i++) { items[_i - 0] = arguments[_i]; } return Stream.fromArray(items); }; Stream.fromArray = function (array) { return new Stream(new FromArrayProducer(array)); }; Stream.fromPromise = function (promise) { return new Stream(new FromPromiseProducer(promise)); }; Stream.periodic = function (period) { return new Stream(new PeriodicProducer(period)); }; Stream.prototype._map = function (project) { var p = this._prod; var ctor = this.ctor(); if (p instanceof FilterOperator) { return new ctor(new FilterMapOperator(p.passes, project, p.ins)); } if (p instanceof FilterMapOperator) { return new ctor(new FilterMapOperator(p.passes, compose2(project, p.project), p.ins)); } if (p instanceof MapOperator) { return new ctor(new MapOperator(compose2(project, p.project), p.ins)); } return new ctor(new MapOperator(project, this)); }; Stream.prototype.map = function (project) { return this._map(project); }; Stream.prototype.mapTo = function (projectedValue) { var s = this.map(function () { return projectedValue; }); var op = s._prod; op.type = op.type.replace('map', 'mapTo'); return s; }; Stream.prototype.filter = function (passes) { var p = this._prod; if (p instanceof FilterOperator) { return new Stream(new FilterOperator(and(p.passes, passes), p.ins)); } return new Stream(new FilterOperator(passes, this)); }; Stream.prototype.take = function (amount) { return new (this.ctor())(new TakeOperator(amount, this)); }; Stream.prototype.drop = function (amount) { return new Stream(new DropOperator(amount, this)); }; Stream.prototype.last = function () { return new Stream(new LastOperator(this)); }; Stream.prototype.startWith = function (initial) { return new MemoryStream(new StartWithOperator(this, initial)); }; Stream.prototype.endWhen = function (other) { return new (this.ctor())(new EndWhenOperator(other, this)); }; Stream.prototype.fold = function (accumulate, seed) { return new MemoryStream(new FoldOperator(accumulate, seed, this)); }; Stream.prototype.replaceError = function (replace) { return new (this.ctor())(new ReplaceErrorOperator(replace, this)); }; Stream.prototype.flatten = function () { var p = this._prod; return new Stream(p instanceof MapOperator && !(p instanceof FilterMapOperator) ? new MapFlattenOperator(p) : new FlattenOperator(this)); }; Stream.prototype.compose = function (operator) { return operator(this); }; Stream.prototype.remember = function () { return new MemoryStream(new RememberOperator(this)); }; Stream.prototype.debug = function (labelOrSpy) { return new (this.ctor())(new DebugOperator(labelOrSpy, this)); }; Stream.prototype.imitate = function (target) { if (target instanceof MemoryStream) { throw new Error('A MemoryStream was given to imitate(), but it only ' + 'supports a Stream. Read more about this restriction here: ' + 'https://github.com/staltz/xstream#faq'); } this._target = target; for (var ils = this._ils, N = ils.length, i = 0; i < N; i++) { target._add(ils[i]); } this._ils = []; }; Stream.prototype.shamefullySendNext = function (value) { this._n(value); }; Stream.prototype.shamefullySendError = function (error) { this._e(error); }; Stream.prototype.shamefullySendComplete = function () { this._c(); }; Stream.merge = function merge() { var streams = []; for (var _i = 0; _i < arguments.length; _i++) { streams[_i - 0] = arguments[_i]; } return new Stream(new MergeProducer(streams)); }; Stream.combine = function combine() { var streams = []; for (var _i = 0; _i < arguments.length; _i++) { streams[_i - 0] = arguments[_i]; } return new Stream(new CombineProducer(streams)); }; return Stream; }()); exports.Stream = Stream; var MemoryStream = (function (_super) { __extends(MemoryStream, _super); function MemoryStream(producer) { _super.call(this, producer); this._has = false; } MemoryStream.prototype._n = function (x) { this._v = x; this._has = true; _super.prototype._n.call(this, x); }; MemoryStream.prototype._add = function (il) { if (this._has) { il._n(this._v); } _super.prototype._add.call(this, il); }; MemoryStream.prototype._stopNow = function () { this._has = false; _super.prototype._stopNow.call(this); }; MemoryStream.prototype._x = function () { this._has = false; _super.prototype._x.call(this); }; MemoryStream.prototype.map = function (project) { return this._map(project); }; MemoryStream.prototype.mapTo = function (projectedValue) { return _super.prototype.mapTo.call(this, projectedValue); }; MemoryStream.prototype.take = function (amount) { return _super.prototype.take.call(this, amount); }; MemoryStream.prototype.endWhen = function (other) { return _super.prototype.endWhen.call(this, other); }; MemoryStream.prototype.replaceError = function (replace) { return _super.prototype.replaceError.call(this, replace); }; MemoryStream.prototype.remember = function () { return this; }; MemoryStream.prototype.debug = function (labelOrSpy) { return _super.prototype.debug.call(this, labelOrSpy); }; return MemoryStream; }(Stream)); exports.MemoryStream = MemoryStream; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Stream; },{}],2:[function(require,module,exports){ "use strict"; var core_1 = require('./core'); exports.Stream = core_1.Stream; exports.MemoryStream = core_1.MemoryStream; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = core_1.Stream; },{"./core":1}]},{},[2])(2) });