stream-chain
Version:
Chain functions, generators, Node streams, and Web streams into a pipeline with backpressure support.
25 lines (21 loc) • 538 B
JavaScript
// @ts-self-types="./takeWhile.d.ts"
import {none} from '../defs.js';
const takeWhile = (fn, finalValue = none) => {
let test = true;
return value => {
if (!test) return finalValue;
const result = fn(value);
if (result && typeof result.then == 'function') {
return result.then(result => {
if (result) return value;
test = false;
return finalValue;
});
}
if (result) return value;
test = false;
return finalValue;
};
};
export default takeWhile;
export {takeWhile};