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

Add tapAll operator

+7
src/operators/wonka_operator_tapAll.d.ts
···
···
+
import { Operator } from '../wonka_types';
+
+
export const tapAll: <A>(
+
onStart: () => void,
+
onPush: (value: A) => void,
+
onEnd: () => void
+
) => Operator<A, A>;
+15
src/operators/wonka_operator_tapAll.re
···
···
+
open Wonka_types;
+
+
let tapAll = (~onStart, ~onPush, ~onEnd) => {
+
curry(source => curry(sink => {
+
source((.signal) => {
+
switch (signal) {
+
| Start(_) => onStart(.)
+
| Push(x) => onPush(.x)
+
| End => onEnd(.)
+
};
+
+
sink(.signal);
+
});
+
}));
+
};
+9
src/operators/wonka_operator_tapAll.rei
···
···
+
open Wonka_types;
+
+
let tapAll: (
+
~onStart: (.unit) => unit,
+
~onPush: (.'a) => unit,
+
~onEnd: (.unit) => unit,
+
sourceT('a),
+
sinkT('a)
+
) => unit;
+1
src/wonka.d.ts
···
export * from './operators/wonka_operator_takeUntil';
export * from './operators/wonka_operator_takeWhile';
export * from './operators/wonka_operator_tap';
/* sinks */
export * from './sinks/wonka_sink_publish';
···
export * from './operators/wonka_operator_takeUntil';
export * from './operators/wonka_operator_takeWhile';
export * from './operators/wonka_operator_tap';
+
export * from './operators/wonka_operator_tapAll';
/* sinks */
export * from './sinks/wonka_sink_publish';
+1
src/wonka.ml
···
include Wonka_operator_takeUntil
include Wonka_operator_takeWhile
include Wonka_operator_tap
(* sinks *)
include Wonka_sink_publish
···
include Wonka_operator_takeUntil
include Wonka_operator_takeWhile
include Wonka_operator_tap
+
include Wonka_operator_tapAll
(* sinks *)
include Wonka_sink_publish