UNPKG

wonka

Version:

A fast push & pull stream library for Reason, loosely following the [callbag spec](https://github.com/callbag/callbag)

44 lines (40 loc) 1.74 kB
'use strict'; var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); function tapAll(onStart, onPush, onEnd) { return (function (source) { return (function (sink) { var ended = /* record */[/* contents */false]; return Curry._1(source, (function (signal) { if (typeof signal === "number") { if (ended[0]) { return /* () */0; } else { ended[0] = true; return onEnd(); } } else if (signal.tag) { onPush(signal[0]); return sink(signal); } else { var talkback = signal[0]; onStart(); return sink(/* Start */Block.__(0, [(function (signal) { if (signal) { if (ended[0]) { return /* () */0; } else { ended[0] = true; return onEnd(); } } else { return talkback(signal); } })])); } })); }); }); } exports.tapAll = tapAll; /* No side effect */