Mirror: 🎩 A tiny but capable push & pull stream library for TypeScript and Flow
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add Close talkback signal to tapAll

+25 -4
+25 -4
src/operators/wonka_operator_tapAll.re
··· 2 2 3 3 let tapAll = (~onStart, ~onPush, ~onEnd) => { 4 4 curry(source => curry(sink => { 5 + let ended = ref(false); 6 + 5 7 source((.signal) => { 6 8 switch (signal) { 7 - | Start(_) => onStart(.) 8 - | Push(x) => onPush(.x) 9 - | End => onEnd(.) 9 + | Start(talkback) => { 10 + onStart(.) 11 + 12 + sink(.Start((.signal) => { 13 + switch (signal) { 14 + | Close when !ended^ => { 15 + ended := true; 16 + onEnd(.); 17 + } 18 + | Close => () 19 + | _ => talkback(.signal) 20 + } 21 + })); 22 + } 23 + | Push(x) => { 24 + onPush(.x) 25 + sink(.signal); 26 + } 27 + | End when !ended^ => { 28 + ended := true; 29 + onEnd(.) 30 + } 31 + | _ => () 10 32 }; 11 33 12 - sink(.signal); 13 34 }); 14 35 })); 15 36 };