Observed since 20 Oct, 21:54 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Safe promise handling with Results, implemented with ES2020 features
Safely handle asynchronous errors with Result. Inspired by neverthrow's core ResultAsync types, but is intended for use in sequential imperative statements using async/await, rather than functional pipelining.
Akin to Rust's std::result and Scala's scala.util.Either. Uses ES2020's Promise.allSettled under the hood and mostly follows its naming convention.
npm i @00f2ff/result
E defaults to Error.
settle<T, E>Settles a promise into Result<T, E> that can be narrowed to Fulfilled<T, E> or Rejected<T, E>.
const result: Result<boolean, Error> = await settle(Promise.resolve(true));
if (result.isFulfilled()) {
console.log(result.value); // true
}
const result: Result<boolean, Error> = await settle(Promise.reject(new Error("oh no"));
if (result.isRejected()) {
console.log(result.error); // Error("oh no")
}
settleAll<T, E>Settles an array of promises into a tuple of [Fulfilled<T, E>[], Rejected<T, E>[]].
const resolvingPromises = [Promise.resolve(true), Promise.resolve("hello")];
const rejectingPromises = [Promise.reject(new Error("oh no"), Promise.reject(new DbError("ruh roh"))];
const [fulfilled, rejected] = await settleAll<boolean | string, Error | DbError>([...resolvingPromises, ...rejectingPromises]);
npm run test
Download counts and popularity will appear here as the collector receives them.
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:54 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:6a47adf7b096b763480a2ff10486b9dc05f66bd985c54f0c017000e74fbb6ed9