1.0.0 • Published 2 years ago
ts-result-type v1.0.0
ts-result-type
Result type - inspired by Rust's Result type
This Result module offers a mechanism for error handling using the Result type, an effective pattern popular in languages like Rust. This module introduces two main constructs, Ok and Err, for expressive error handling without exceptions.
Table of Contents
Installation
npm install ts-result-typepnpm add ts-result-typeyarn add ts-result-typeUsage
To represent a successful computation:
import type { Result } from 'ts-result-type'
import { Ok, Err } from 'ts-result-type'
const result = Ok(5)
console.log(result.isOk) // trueExamples:
- match: Process the value if it's an
Ok.
const result = Ok(5)
const output = result.match(value => value * 2, _ => 0)
console.log(output) // 10- getValueOrDefault: Get the contained value or a default.
const result = Ok(5)
console.log(result.getValueOrDefault(10)) // 5- getValueOrCompute: Get the contained value or a default.
const result: Result<number, string> = Err("400")
console.log(result.getValueOrCompute(err => +err)) // 400- map: Transform the value inside an
Ok.
const result = Ok(5)
const transformed = result.map(value => value.toString())
console.log(transformed.match(val => val, _ => "")) // "5"- mapErr: Transform the error inside an
Err.
const errorResult = Err('Error!')
const transformed = errorResult.mapErr(error => error.length)
console.log(transformed.match(_ => 0, errorLength => errorLength)) // 6Testing
To run tests:
npm run testLicense
This project is licensed under the MIT License. See LICENSE.md for more details.