UNPKG

callbag-distinct-until-changed

Version:

👜 Callbag operator that drops consecutive duplicate values

40 lines (33 loc) • 740 B
var is = function is(previous, current) { return previous === current; }; function distinctUntilChanged(compare) { if (compare === void 0) { compare = is; } return function (source) { return function (start, sink) { if (start !== 0) return; var inited = false; var prev; var talkback; source(0, function (type, data) { if (type === 0) { talkback = data; } if (type !== 1) { sink(type, data); return; } if (inited && compare(prev, data)) { talkback(1); return; } inited = true; prev = data; sink(1, data); }); }; }; } export default distinctUntilChanged;