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.

27 lines (24 loc) 878 B
import { err } from './result-err.mjs'; import { isOk } from './result-is-ok.mjs'; import { ok } from './result-ok.mjs'; function fold(...args) { switch (args.length) { case 3: { // Direct version: first argument is result const [result, mapFn, mapErrFn] = args; return foldImpl(result, mapFn, mapErrFn); } case 2: { // Curried version const [mapFn, mapErrFn] = args; return (result) => foldImpl(result, mapFn, mapErrFn); } } } const foldImpl = (result, mapFn, mapErrFn) => isOk(result) ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion ok(mapFn(result.value)) : // eslint-disable-next-line total-functions/no-unsafe-type-assertion err(mapErrFn(result.value)); export { fold }; //# sourceMappingURL=result-fold.mjs.map