UNPKG

wonka

Version:

A tiny but capable push & pull stream library for TypeScript and Flow

1,396 lines (1,320 loc) 24.6 kB
Object.defineProperty(exports, "__esModule", { value: !0 }); var teardownPlaceholder = () => {}; var e = teardownPlaceholder; function start(e) { return { tag: 0, 0: e }; } function push(e) { return { tag: 1, 0: e }; } var asyncIteratorSymbol = () => "function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"; var observableSymbol = () => "function" == typeof Symbol && Symbol.observable || "@@observable"; var identity = e => e; function concatMap(r) { return t => i => { var s = []; var a = e; var f = e; var n = !1; var l = !1; var o = !1; var u = !1; function applyInnerSource(e) { o = !0; e((e => { if (0 === e) { if (o) { o = !1; if (s.length) { applyInnerSource(r(s.shift())); } else if (u) { i(0); } else if (!n) { n = !0; a(0); } } } else if (0 === e.tag) { l = !1; (f = e[0])(0); } else if (o) { i(e); if (l) { l = !1; } else { f(0); } } })); } t((e => { if (u) {} else if (0 === e) { u = !0; if (!o && !s.length) { i(0); } } else if (0 === e.tag) { a = e[0]; } else { n = !1; if (o) { s.push(e[0]); } else { applyInnerSource(r(e[0])); } } })); i(start((e => { if (1 === e) { if (!u) { u = !0; a(1); } if (o) { o = !1; f(1); } } else { if (!u && !n) { n = !0; a(0); } if (o && !l) { l = !0; f(0); } } }))); }; } function concatAll(e) { return concatMap(identity)(e); } function mergeMap(r) { return t => i => { var s = []; var a = e; var f = !1; var n = !1; t((t => { if (n) {} else if (0 === t) { n = !0; if (!s.length) { i(0); } } else if (0 === t.tag) { a = t[0]; } else { f = !1; !function applyInnerSource(r) { var t = e; r((e => { if (0 === e) { if (s.length) { var r = s.indexOf(t); if (r > -1) { (s = s.slice()).splice(r, 1); } if (!s.length) { if (n) { i(0); } else if (!f) { f = !0; a(0); } } } } else if (0 === e.tag) { s.push(t = e[0]); t(0); } else if (s.length) { i(e); t(0); } })); }(r(t[0])); if (!f) { f = !0; a(0); } } })); i(start((e => { if (1 === e) { if (!n) { n = !0; a(1); } for (var r = 0, t = s, i = s.length; r < i; r++) { t[r](1); } s.length = 0; } else { if (!n && !f) { f = !0; a(0); } else { f = !1; } for (var l = 0, o = s, u = s.length; l < u; l++) { o[l](0); } } }))); }; } function mergeAll(e) { return mergeMap(identity)(e); } function onPush(e) { return r => t => { var i = !1; r((r => { if (i) {} else if (0 === r) { i = !0; t(0); } else if (0 === r.tag) { var s = r[0]; t(start((e => { if (1 === e) { i = !0; } s(e); }))); } else { e(r[0]); t(r); } })); }; } function share(r) { var t = []; var i = e; var s = !1; return e => { t.push(e); if (1 === t.length) { r((e => { if (0 === e) { for (var r = 0, a = t, f = t.length; r < f; r++) { a[r](0); } t.length = 0; } else if (0 === e.tag) { i = e[0]; } else { s = !1; for (var n = 0, l = t, o = t.length; n < o; n++) { l[n](e); } } })); } e(start((r => { if (1 === r) { var a = t.indexOf(e); if (a > -1) { (t = t.slice()).splice(a, 1); } if (!t.length) { i(1); } } else if (!s) { s = !0; i(0); } }))); }; } function switchMap(r) { return t => i => { var s = e; var a = e; var f = !1; var n = !1; var l = !1; var o = !1; t((t => { if (o) {} else if (0 === t) { o = !0; if (!l) { i(0); } } else if (0 === t.tag) { s = t[0]; } else { if (l) { a(1); a = e; } if (!f) { f = !0; s(0); } else { f = !1; } !function applyInnerSource(e) { l = !0; e((e => { if (!l) {} else if (0 === e) { l = !1; if (o) { i(0); } else if (!f) { f = !0; s(0); } } else if (0 === e.tag) { n = !1; (a = e[0])(0); } else { i(e); if (!n) { a(0); } else { n = !1; } } })); }(r(t[0])); } })); i(start((e => { if (1 === e) { if (!o) { o = !0; s(1); } if (l) { l = !1; a(1); } } else { if (!o && !f) { f = !0; s(0); } if (l && !n) { n = !0; a(0); } } }))); }; } function fromAsyncIterable(e) { return r => { var t = e[asyncIteratorSymbol()] && e[asyncIteratorSymbol()]() || e; var i = !1; var s = !1; var a = !1; var f; r(start((async e => { if (1 === e) { i = !0; if (t.return) { t.return(); } } else if (s) { a = !0; } else { for (a = s = !0; a && !i; ) { if ((f = await t.next()).done) { i = !0; if (t.return) { await t.return(); } r(0); } else { try { a = !1; r(push(f.value)); } catch (e) { if (t.throw) { if (i = !!(await t.throw(e)).done) { r(0); } } else { throw e; } } } } s = !1; } }))); }; } function fromIterable(e) { if (e[Symbol.asyncIterator]) { return fromAsyncIterable(e); } return r => { var t = e[Symbol.iterator](); var i = !1; var s = !1; var a = !1; var f; r(start((e => { if (1 === e) { i = !0; if (t.return) { t.return(); } } else if (s) { a = !0; } else { for (a = s = !0; a && !i; ) { if ((f = t.next()).done) { i = !0; if (t.return) { t.return(); } r(0); } else { try { a = !1; r(push(f.value)); } catch (e) { if (t.throw) { if (i = !!t.throw(e).done) { r(0); } } else { throw e; } } } } s = !1; } }))); }; } var r = fromIterable; function make(e) { return r => { var t = !1; var i = e({ next(e) { if (!t) { r(push(e)); } }, complete() { if (!t) { t = !0; r(0); } } }); r(start((e => { if (1 === e && !t) { t = !0; i(); } }))); }; } function subscribe(r) { return t => { var i = e; var s = !1; t((e => { if (0 === e) { s = !0; } else if (0 === e.tag) { (i = e[0])(0); } else if (!s) { r(e[0]); i(0); } })); return { unsubscribe() { if (!s) { s = !0; i(1); } } }; }; } var t = { done: !0 }; function zip(r) { var t = Object.keys(r).length; return i => { var s = new Set; var a = Array.isArray(r) ? new Array(t).fill(e) : {}; var f = Array.isArray(r) ? new Array(t) : {}; var n = !1; var l = !1; var o = !1; var u = 0; var loop = function(v) { r[v]((c => { if (0 === c) { if (u >= t - 1) { o = !0; i(0); } else { u++; } } else if (0 === c.tag) { a[v] = c[0]; } else if (!o) { f[v] = c[0]; s.add(v); if (!n && s.size < t) { if (!l) { for (var p in r) { if (!s.has(p)) { (a[p] || e)(0); } } } else { l = !1; } } else { n = !0; l = !1; i(push(Array.isArray(f) ? f.slice() : { ...f })); } } })); }; for (var v in r) { loop(v); } i(start((e => { if (o) {} else if (1 === e) { o = !0; for (var r in a) { a[r](1); } } else if (!l) { l = !0; for (var t in a) { a[t](0); } } }))); }; } exports.buffer = function buffer(r) { return t => i => { var s = []; var a = e; var f = e; var n = !1; var l = !1; t((e => { if (l) {} else if (0 === e) { l = !0; f(1); if (s.length) { i(push(s)); } i(0); } else if (0 === e.tag) { a = e[0]; r((e => { if (l) {} else if (0 === e) { l = !0; a(1); if (s.length) { i(push(s)); } i(0); } else if (0 === e.tag) { f = e[0]; } else if (s.length) { var r = push(s); s = []; i(r); } })); } else { s.push(e[0]); if (!n) { n = !0; a(0); f(0); } else { n = !1; } } })); i(start((e => { if (1 === e && !l) { l = !0; a(1); f(1); } else if (!l && !n) { n = !0; a(0); f(0); } }))); }; }; exports.combine = function combine(...e) { return zip(e); }; exports.concat = function concat(e) { return concatAll(r(e)); }; exports.concatAll = concatAll; exports.concatMap = concatMap; exports.debounce = function debounce(e) { return r => t => { var i; var s = !1; var a = !1; r((r => { if (a) {} else if (0 === r) { a = !0; if (i) { s = !0; } else { t(0); } } else if (0 === r.tag) { var f = r[0]; t(start((e => { if (1 === e && !a) { a = !0; s = !1; if (i) { clearTimeout(i); } f(1); } else if (!a) { f(0); } }))); } else { if (i) { clearTimeout(i); } i = setTimeout((() => { i = void 0; t(r); if (s) { t(0); } }), e(r[0])); } })); }; }; exports.delay = function delay(e) { return r => t => { var i = 0; r((r => { if (0 !== r && 0 === r.tag) { t(r); } else { i++; setTimeout((() => { if (i) { i--; t(r); } }), e); } })); }; }; exports.empty = e => { var r = !1; e(start((t => { if (1 === t) { r = !0; } else if (!r) { r = !0; e(0); } }))); }; exports.filter = function filter(r) { return t => i => { var s = e; t((e => { if (0 === e) { i(0); } else if (0 === e.tag) { s = e[0]; i(e); } else if (!r(e[0])) { s(0); } else { i(e); } })); }; }; exports.flatten = mergeAll; exports.forEach = function forEach(e) { return r => { subscribe(e)(r); }; }; exports.fromArray = r; exports.fromAsyncIterable = fromAsyncIterable; exports.fromCallbag = function fromCallbag(e) { return r => { e(0, ((e, t) => { if (0 === e) { r(start((e => { t(e + 1); }))); } else if (1 === e) { r(push(t)); } else { r(0); } })); }; }; exports.fromDomEvent = function fromDomEvent(e, r) { return make((t => { e.addEventListener(r, t.next); return () => e.removeEventListener(r, t.next); })); }; exports.fromIterable = fromIterable; exports.fromObservable = function fromObservable(e) { return r => { var t = (e[observableSymbol()] ? e[observableSymbol()]() : e).subscribe({ next(e) { r(push(e)); }, complete() { r(0); }, error(e) { throw e; } }); r(start((e => { if (1 === e) { t.unsubscribe(); } }))); }; }; exports.fromPromise = function fromPromise(e) { return make((r => { e.then((e => { Promise.resolve(e).then((() => { r.next(e); r.complete(); })); })); return teardownPlaceholder; })); }; exports.fromValue = function fromValue(e) { return r => { var t = !1; r(start((i => { if (1 === i) { t = !0; } else if (!t) { t = !0; r(push(e)); r(0); } }))); }; }; exports.interval = function interval(e) { return make((r => { var t = 0; var i = setInterval((() => r.next(t++)), e); return () => clearInterval(i); })); }; exports.lazy = function lazy(e) { return r => e()(r); }; exports.make = make; exports.makeSubject = function makeSubject() { var e; var r; return { source: share(make((t => { e = t.next; r = t.complete; return teardownPlaceholder; }))), next(r) { if (e) { e(r); } }, complete() { if (r) { r(); } } }; }; exports.map = function map(e) { return r => t => r((r => { if (0 === r || 0 === r.tag) { t(r); } else { t(push(e(r[0]))); } })); }; exports.merge = function merge(e) { return mergeAll(r(e)); }; exports.mergeAll = mergeAll; exports.mergeMap = mergeMap; exports.never = r => { r(start(e)); }; exports.onEnd = function onEnd(e) { return r => t => { var i = !1; r((r => { if (i) {} else if (0 === r) { i = !0; t(0); e(); } else if (0 === r.tag) { var s = r[0]; t(start((r => { if (1 === r) { i = !0; s(1); e(); } else { s(r); } }))); } else { t(r); } })); }; }; exports.onPush = onPush; exports.onStart = function onStart(e) { return r => t => r((r => { if (0 === r) { t(0); } else if (0 === r.tag) { t(r); e(); } else { t(r); } })); }; exports.pipe = (...e) => { var r = e[0]; for (var t = 1, i = e.length; t < i; t++) { r = e[t](r); } return r; }; exports.publish = function publish(e) { subscribe((e => {}))(e); }; exports.sample = function sample(r) { return t => i => { var s = e; var a = e; var f; var n = !1; var l = !1; t((e => { if (l) {} else if (0 === e) { l = !0; a(1); i(0); } else if (0 === e.tag) { s = e[0]; } else { f = e[0]; if (!n) { n = !0; a(0); s(0); } else { n = !1; } } })); r((e => { if (l) {} else if (0 === e) { l = !0; s(1); i(0); } else if (0 === e.tag) { a = e[0]; } else if (void 0 !== f) { var r = push(f); f = void 0; i(r); } })); i(start((e => { if (1 === e && !l) { l = !0; s(1); a(1); } else if (!l && !n) { n = !0; s(0); a(0); } }))); }; }; exports.scan = function scan(e, r) { return t => i => { var s = r; t((r => { if (0 === r) { i(0); } else if (0 === r.tag) { i(r); } else { i(push(s = e(s, r[0]))); } })); }; }; exports.share = share; exports.skip = function skip(r) { return t => i => { var s = e; var a = r; t((e => { if (0 === e) { i(0); } else if (0 === e.tag) { s = e[0]; i(e); } else if (a-- > 0) { s(0); } else { i(e); } })); }; }; exports.skipUntil = function skipUntil(r) { return t => i => { var s = e; var a = e; var f = !0; var n = !1; var l = !1; t((e => { if (l) {} else if (0 === e) { l = !0; if (f) { a(1); } i(0); } else if (0 === e.tag) { s = e[0]; r((e => { if (0 === e) { if (f) { l = !0; s(1); } } else if (0 === e.tag) { (a = e[0])(0); } else { f = !1; a(1); } })); } else if (!f) { n = !1; i(e); } else if (!n) { n = !0; s(0); a(0); } else { n = !1; } })); i(start((e => { if (1 === e && !l) { l = !0; s(1); if (f) { a(1); } } else if (!l && !n) { n = !0; if (f) { a(0); } s(0); } }))); }; }; exports.skipWhile = function skipWhile(r) { return t => i => { var s = e; var a = !0; t((e => { if (0 === e) { i(0); } else if (0 === e.tag) { s = e[0]; i(e); } else if (a) { if (r(e[0])) { s(0); } else { a = !1; i(e); } } else { i(e); } })); }; }; exports.subscribe = subscribe; exports.switchAll = function switchAll(e) { return switchMap(identity)(e); }; exports.switchMap = switchMap; exports.take = function take(r) { return t => i => { var s = e; var a = !1; var f = 0; t((e => { if (a) {} else if (0 === e) { a = !0; i(0); } else if (0 === e.tag) { if (r <= 0) { a = !0; i(0); e[0](1); } else { s = e[0]; } } else if (f++ < r) { i(e); if (!a && f >= r) { a = !0; i(0); s(1); } } else { i(e); } })); i(start((e => { if (1 === e && !a) { a = !0; s(1); } else if (0 === e && !a && f < r) { s(0); } }))); }; }; exports.takeLast = function takeLast(t) { return i => s => { var a = []; var f = e; i((e => { if (0 === e) { r(a)(s); } else if (0 === e.tag) { if (t <= 0) { e[0](1); r(a)(s); } else { (f = e[0])(0); } } else { if (a.length >= t && t) { a.shift(); } a.push(e[0]); f(0); } })); }; }; exports.takeUntil = function takeUntil(r) { return t => i => { var s = e; var a = e; var f = !1; t((e => { if (f) {} else if (0 === e) { f = !0; a(1); i(0); } else if (0 === e.tag) { s = e[0]; r((e => { if (0 === e) {} else if (0 === e.tag) { (a = e[0])(0); } else { f = !0; a(1); s(1); i(0); } })); } else { i(e); } })); i(start((e => { if (1 === e && !f) { f = !0; s(1); a(1); } else if (!f) { s(0); } }))); }; }; exports.takeWhile = function takeWhile(r, t) { return i => s => { var a = e; var f = !1; i((e => { if (f) {} else if (0 === e) { f = !0; s(0); } else if (0 === e.tag) { a = e[0]; s(e); } else if (!r(e[0])) { f = !0; if (t) { s(e); } s(0); a(1); } else { s(e); } })); }; }; exports.tap = onPush; exports.throttle = function throttle(e) { return r => t => { var i = !1; var s; r((r => { if (0 === r) { if (s) { clearTimeout(s); } t(0); } else if (0 === r.tag) { var a = r[0]; t(start((e => { if (1 === e) { if (s) { clearTimeout(s); } a(1); } else { a(0); } }))); } else if (!i) { i = !0; if (s) { clearTimeout(s); } s = setTimeout((() => { s = void 0; i = !1; }), e(r[0])); t(r); } })); }; }; exports.toArray = function toArray(r) { var t = []; var i = e; var s = !1; r((e => { if (0 === e) { s = !0; } else if (0 === e.tag) { (i = e[0])(0); } else { t.push(e[0]); i(0); } })); if (!s) { i(1); } return t; }; exports.toAsyncIterable = r => { var i = []; var s = !1; var a = !1; var f = !1; var n = e; var l; return { async next() { if (!a) { a = !0; r((e => { if (s) {} else if (0 === e) { if (l) { l = l(t); } s = !0; } else if (0 === e.tag) { f = !0; (n = e[0])(0); } else { f = !1; if (l) { l = l({ value: e[0], done: !1 }); } else { i.push(e[0]); } } })); } if (s && !i.length) { return t; } else if (!s && !f && i.length <= 1) { f = !0; n(0); } return i.length ? { value: i.shift(), done: !1 } : new Promise((e => l = e)); }, async return() { if (!s) { l = n(1); } s = !0; return t; }, [asyncIteratorSymbol()]() { return this; } }; }; exports.toCallbag = function toCallbag(e) { return (r, t) => { if (0 === r) { e((e => { if (0 === e) { t(2); } else if (0 === e.tag) { t(0, (r => { if (r < 3) { e[0](r - 1); } })); } else { t(1, e[0]); } })); } }; }; exports.toObservable = function toObservable(r) { return { subscribe(t, i, s) { var a = "object" == typeof t ? t : { next: t, error: i, complete: s }; var f = e; var n = !1; r((e => { if (n) {} else if (0 === e) { n = !0; if (a.complete) { a.complete(); } } else if (0 === e.tag) { (f = e[0])(0); } else { a.next(e[0]); f(0); } })); var l = { closed: !1, unsubscribe() { l.closed = !0; n = !0; f(1); } }; return l; }, [observableSymbol()]() { return this; } }; }; exports.toPromise = function toPromise(r) { return new Promise((t => { var i = e; var s; r((e => { if (0 === e) { Promise.resolve(s).then(t); } else if (0 === e.tag) { (i = e[0])(0); } else { s = e[0]; i(0); } })); })); }; exports.zip = zip; //# sourceMappingURL=wonka.js.map