UNPKG

@rustresult/result

Version:

Rust-like Result and ResultAsync for Javascript

32 lines 1.03 kB
import { Err, Ok } from './factory'; import { RustlikeResultAsync } from './RustlikeResultAsync'; export function resultifyPromise(promise) { return new RustlikeResultAsync(promise.then((value) => Ok(value), (err) => Err(err))); } export function resultifySync(fn) { function curriedResultify(_fn) { return function resultifiedSyncFn(...args) { try { return Ok(_fn(...args)); } catch (err) { return Err(err); } }; } return fn ? curriedResultify(fn) : curriedResultify; } export function resultifyAsync(fn) { function curriedResultify(_fn) { return function resultifiedAsyncFn(...args) { try { return resultifyPromise(Promise.resolve(_fn(...args))); } catch (err) { return new RustlikeResultAsync(Err(err)); } }; } return fn ? curriedResultify(fn) : curriedResultify; } //# sourceMappingURL=resultify.js.map