UNPKG

ts-data-forge

Version:

[![npm version](https://img.shields.io/npm/v/ts-data-forge.svg)](https://www.npmjs.com/package/ts-data-forge) [![npm downloads](https://img.shields.io/npm/dm/ts-data-forge.svg)](https://www.npmjs.com/package/ts-data-forge) [![License](https://img.shields.

29 lines (26 loc) 836 B
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