@ludeschersoftware/result
v1.0.0
Published
A minimal JavaScript implementation of Rust's `Result<T, E>` type for expressive and safe error handling.
Readme
A minimal JavaScript implementation of Rust's Result<T, E> type for expressive and safe error handling.
✨ Features
Result.Ok(value)andResult.Err(error)constructorsisOk()/isErr()type guardsunwrap()/unwrapErr()for accessing valuesmap()/mapErr()for transforming results- No dependencies, fully portable
📦 Installation
npm install @ludeschersoftware/result
# or
yarn add @ludeschersoftware/result🚀 Usage
import Result from "@ludeschersoftware/result";
const result = parseNumber("42");
if (result.isOk()) {
console.log("Parsed:", result.unwrap());
} else {
console.error("Failed:", result.unwrapErr());
}
function parseNumber(str) {
const num = Number(str);
return isNaN(num) ? Result.Err("Not a number") : Result.Ok(num);
}🧠 API
| Method | Description |
|----------------|--------------------------------------------------|
| Result.Ok(val) | Creates a success result |
| Result.Err(err) | Creates an error result |
| isOk() | Returns true if result is Ok |
| isErr() | Returns true if result is Err |
| unwrap() | Returns value if Ok, throws if Err |
| unwrapErr() | Returns error if Err, throws if Ok |
| map(fn) | Transforms Ok value, passes Err through |
| mapErr(fn) | Transforms Err value, passes Ok through |
🧼 License
MIT © Johannes Ludescher
💬 Feedback
Got ideas or improvements? Feel free to open an issue or submit a PR. Contributions are welcome!
