wonka
Version:
A fast push & pull stream library for Reason, loosely following the [callbag spec](https://github.com/callbag/callbag)
47 lines (41 loc) • 1.73 kB
JavaScript
import * as Block from "bs-platform/lib/es6/block.js";
import * as Curry from "bs-platform/lib/es6/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);
}
})]));
}
}));
});
});
}
export {
tapAll ,
}
/* No side effect */