Mirror: 馃帺 A tiny but capable push & pull stream library for TypeScript and Flow
at v3.1.0 691 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 => talkback(. Pull) 20 }, 21 ), 22 ) 23 | End => 24 if (! ended^) { 25 ended := true; 26 sink(. signal); 27 f(.); 28 } 29 | _ => sink(. signal) 30 } 31 ); 32 }) 33 );