1.2.5 • Published 11 months ago

tryresult v1.2.5

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

GitHub Workflow Status NPM bundle size npm npm

📛 TryResult

A typescript library to get rid of try catches, and replace them with result types, inspired by Rust and Go error handling.

preview picture

Providing simple, easier, and more elegeant error handling, TryResult gives you functions that act as wrappers and catch errors in your own functions.

It also currently provides functions to assert if a result has an error in it, and to use a default value in case of errors.

Install

As with any npm package:

npm i tryresult

Or use Yarn:

yarn add tryresult

Usage

Import from the package:

import { tryAsync, isError } from "tryresult";

Wrap your async function with tryAsync:

let users = await tryAsync(
	// get a list of users from the database
	db.user.findMany(),
);

This will make the users variable be of type T | Error, meaning it can be either a value or an error (a union of types).

Then check for error in the variable with isError, and then handle the error:

if (isError(users)) {
	return "Could not get users from db";
}

This is a type guard and all code after the isError will consider result's type to be T.

v1.2.x onwards

Let's say you're fetching something like a user's role from the db:

const result = await tryAsync(db.user.find(id).role);

If you want to get the value and set a default value in case of error, you can use okOr on the result:

const role = okOr(result, "guestUser");

Now role is gonna be either the value from the db, or if there was an error, "guestUser".

To see the library used in a project, checkout out ahmeddots/oswald.

1.2.0

12 months ago

1.2.5

11 months ago

1.2.4

12 months ago

1.2.3

12 months ago

1.2.2

12 months ago

1.2.1

12 months ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago