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.

26 lines (23 loc) 788 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 map(...args) { switch (args.length) { case 2: { const [optional, mapFn] = args; return mapImpl(optional, mapFn); } case 1: { // Curried version: first argument is mapping function const [mapFn] = args; return (optional) => mapImpl(optional, mapFn); } } } const mapImpl = (optional, mapFn) => isSome(optional) ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion some(mapFn(unwrap(optional))) : none; export { map }; //# sourceMappingURL=optional-map.mjs.map