ts-data-forge
Version:
[](https://www.npmjs.com/package/ts-data-forge) [](https://www.npmjs.com/package/ts-data-forge) [ • 878 B
JavaScript
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