Mirror: 馃帺 A tiny but capable push & pull stream library for TypeScript and Flow
at v1.4.2 545 B view raw
1open Wonka_types; 2open Wonka_helpers; 3 4let takeLast = max => curry(source => curry(sink => { 5 open Rebel; 6 let queue = MutableQueue.make(); 7 8 captureTalkback(source, (.signal, talkback) => { 9 switch (signal) { 10 | Start(_) => talkback(.Pull) 11 | Push(x) => { 12 let size = MutableQueue.size(queue); 13 if (size >= max && max > 0) { 14 ignore(MutableQueue.pop(queue)); 15 }; 16 17 MutableQueue.add(queue, x); 18 talkback(.Pull); 19 } 20 | End => makeTrampoline(sink, (.) => MutableQueue.pop(queue)) 21 } 22 }); 23}));