@johngw/stream
Version:
Reactive programming tools using the WHATWG Streams API.
32 lines • 748 B
JavaScript
/**
* Prevents chunks from travelling down the stream
* until the predicate returns true.
*
* @group Transformers
* @example
* ```
* --0--1--2--3--4--5--6--1--2--3--4--
*
* after(x => x > 4)
*
* ------------------5--6--1--2--3--4-
* ```
*/
export function after(predicate) {
let pass = false;
return new TransformStream({
async transform(chunk, controller) {
if (pass)
return controller.enqueue(chunk);
try {
pass = await predicate(chunk);
}
catch (error) {
return controller.error(error);
}
if (pass)
controller.enqueue(chunk);
},
});
}
//# sourceMappingURL=after.js.map