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 1.15 kB
import { type UnwrapErr, type UnwrapOk, type UnwrapWarn } from './types.mjs'; /** * Applies the provided mapper based on the current variant. * * @example * * ```ts * const okFold = TernaryResult.fold( * TernaryResult.ok(2), * (value) => value * 2, * (warn: string) => warn.length, * (error: string) => error.toUpperCase(), * ); * * const warnFold = TernaryResult.fold( * TernaryResult.warn(2, 'spike'), * (value: number) => value, * (warn: string) => warn.toUpperCase(), * (error: string) => error, * ); * * assert.deepStrictEqual(okFold, TernaryResult.ok(4)); * * assert.deepStrictEqual(warnFold, TernaryResult.warn(2, 'SPIKE')); * ``` */ export declare function fold<R extends UnknownTernaryResult, S2, W2, E2>(result: R, mapOk: (value: UnwrapOk<R>) => S2, mapWarn: (value: UnwrapWarn<R>) => W2, mapErr: (error: UnwrapErr<R>) => E2): TernaryResult<S2, E2, W2>; export declare function fold<S, W, E, S2, W2, E2>(mapOk: (value: S) => S2, mapWarn: (value: W) => W2, mapErr: (error: E) => E2): (result: TernaryResult<S, E, W>) => TernaryResult<S2, E2, W2>; //# sourceMappingURL=ternary-result-fold.d.mts.map