pragmatic-fp-ts
Version:
Opinionated functional programming library with easy use in mind
26 lines (25 loc) • 668 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tryCatch = void 0;
function tryCatch(tryer, catcher, value) {
if (arguments.length === 1) {
return function (c, v) {
return arguments.length === 1 ? tryCatch(tryer, c) : tryCatch(tryer, c, v);
};
}
else if (arguments.length === 2) {
return (v) => tryCatch(tryer, catcher, v);
}
try {
return tryer(value);
}
catch (err) {
if (!catcher) {
throw new Error("No catcher fn defined");
}
else {
return catcher(err, value);
}
}
}
exports.tryCatch = tryCatch;