Mirror: 馃帺 A tiny but capable push & pull stream library for TypeScript and Flow
at v2.0.0 473 B view raw
1open Wonka_types; 2 3let onEnd = f => curry(source => curry(sink => { 4 let ended = ref(false); 5 6 source((.signal) => { 7 switch (signal) { 8 | Start(talkback) => { 9 sink(.Start((.signal) => { 10 talkback(.signal); 11 12 if (!ended^) { 13 ended := true; 14 f(.); 15 } 16 })); 17 } 18 | End => { 19 if (!ended^) { 20 ended := true; 21 sink(.signal); 22 f(.); 23 } 24 } 25 | _ => sink(.signal) 26 }; 27 }); 28}));