option-t
Version:
A toolkit of Nullable/Option/Result type implementation in ECMAScript. Their APIs are inspired by Rust's `Option<T>` and `Result<T, E>`.
25 lines (24 loc) • 804 B
JavaScript
import { createOk, createErr } from './result.js';
/**
* Convert {@link PromiseSettledResult<T>} returned by {@link Promise.allSettled} to {@link Result}
*/
export function fromPromiseSettledResultToResult(input) {
const status = input.status;
switch (status) {
case 'fulfilled': {
const value = input.value;
const okWrapped = createOk(value);
return okWrapped;
}
case 'rejected': {
const reason = input.reason;
const errWrapped = createErr(reason);
return errWrapped;
}
default: {
const statusStr = String(status);
const message = `\`PromiseSettledResult.status=${statusStr}\` is not supported`;
throw new TypeError(message);
}
}
}