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