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.

22 lines (19 loc) 668 B
import { isSome } from './optional-is-some.mjs'; import { none } from './optional-none.mjs'; import { unwrap } from './optional-unwrap.mjs'; function flatMap(...args) { switch (args.length) { case 2: { const [optional, flatMapFn] = args; return flatMapImpl(optional, flatMapFn); } case 1: { // Curried version const [flatMapFn] = args; return (optional) => flatMapImpl(optional, flatMapFn); } } } const flatMapImpl = (optional, flatMapFn) => (isSome(optional) ? flatMapFn(unwrap(optional)) : none); export { flatMap }; //# sourceMappingURL=optional-flat-map.mjs.map