wonka
Version:
A fast push & pull stream library for Reason, loosely following the [callbag spec](https://github.com/callbag/callbag)
31 lines (27 loc) • 1.07 kB
JavaScript
;
var Wonka_helpers = require("../wonka_helpers.js");
function takeLast(max) {
return (function (source) {
return (function (sink) {
var queue = new Array();
return Wonka_helpers.captureTalkback(source, (function (signal, talkback) {
if (typeof signal === "number") {
return Wonka_helpers.makeTrampoline(sink, (function () {
return queue.shift();
}));
} else if (signal.tag) {
var size = queue.length;
if (size >= max && max > 0) {
queue.shift();
}
queue.push(signal[0]);
return talkback(/* Pull */0);
} else {
return talkback(/* Pull */0);
}
}));
});
});
}
exports.takeLast = takeLast;
/* No side effect */