ts-data-forge
Version:
[](https://www.npmjs.com/package/ts-data-forge) [](https://www.npmjs.com/package/ts-data-forge) [ • 836 B
JavaScript
import { isSome } from './optional-is-some.mjs';
import { none } from './optional-none.mjs';
import { some } from './optional-some.mjs';
import { unwrap } from './optional-unwrap.mjs';
function filter(...args) {
switch (args.length) {
case 2: {
const [optional, predicate] = args;
return filterImpl(optional, predicate);
}
case 1: {
// Curried version: first argument is predicate function
const [predicate] = args;
return (optional) => filterImpl(optional, predicate);
}
}
}
const filterImpl = (optional, predicate) => {
if (isSome(optional)) {
const value = unwrap(optional);
return predicate(value) ? some(value) : none;
}
return none;
};
export { filter };
//# sourceMappingURL=optional-filter.mjs.map