UNPKG

@rustresult/result

Version:

Rust-like Result and ResultAsync for Javascript

38 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resultifyAsync = exports.resultifySync = exports.resultifyPromise = void 0; const factory_1 = require("./factory"); const RustlikeResultAsync_1 = require("./RustlikeResultAsync"); function resultifyPromise(promise) { return new RustlikeResultAsync_1.RustlikeResultAsync(promise.then((value) => (0, factory_1.Ok)(value), (err) => (0, factory_1.Err)(err))); } exports.resultifyPromise = resultifyPromise; function resultifySync(fn) { function curriedResultify(_fn) { return function resultifiedSyncFn(...args) { try { return (0, factory_1.Ok)(_fn(...args)); } catch (err) { return (0, factory_1.Err)(err); } }; } return fn ? curriedResultify(fn) : curriedResultify; } exports.resultifySync = resultifySync; function resultifyAsync(fn) { function curriedResultify(_fn) { return function resultifiedAsyncFn(...args) { try { return resultifyPromise(Promise.resolve(_fn(...args))); } catch (err) { return new RustlikeResultAsync_1.RustlikeResultAsync((0, factory_1.Err)(err)); } }; } return fn ? curriedResultify(fn) : curriedResultify; } exports.resultifyAsync = resultifyAsync; //# sourceMappingURL=resultify.js.map