@flowr/result
v6.0.0
Published
A TypeScript port of Rust's Result<T> and Option<T> structures
Maintainers
Readme
@flowr/result
A TypeScript port of Rust's Result<T> and Option<T> structs
Installation
You can use the following command to install this package, or replace pnpm add with your package manager of choice.
pnpm add @flowr/resultUsage
Wrapping synchronous try-catch blocks
Old code without Result.from:
try {
const returnCode = someFunctionThatMightThrow();
return returnCode;
}
catch (error) {
console.error(error);
return null;
}New Code with Result.from:
import { Result } from '@flowr/result';
const returnCode = Result.from(() => someFunctionThatMightThrow());
return returnCode.unwrapOrElse((error) => {
console.error(error);
return null;
});Wrapping asynchronous try-catch blocks
Old code without Result.fromAsync:
try {
const returnCode = await someFunctionThatReturnsAPromiseAndMightReject();
return returnCode;
}
catch (error) {
console.error(error);
return null;
}New Code with Result.fromAsync:
import { Result } from '@flowr/result';
const returnCode = await Result.fromAsync(async () => someFunctionThatReturnsAPromiseAndMightReject());
return returnCode.unwrapOrElse((error) => {
console.error(error);
return null;
});