try-js

1.9.1 • Public • Published

try-js

Type/construct for handling errors in Node.js, inspired by Scala's Try type.

Build Status

Example usage #1, happy case:

var Try = require('try-js');
 
var result = Try.of(() => 10)
    .map(res => res + 10)
    .getOrElse(-1);
 
console.log(result); // Prints 20

Example usage #2, failure case:

var Try = require('try-js');
 
var result = Try.of(() => { throw new Error('Internal failure') })
    .map(res => res + 10 )
    .getOrElse(-1);
 
console.log(result); // Prints -1

API doc

Table of functions

of

Accepts a supplier function resulting in a failure or success Try.

var newTry = Try.of(() => 'foobar');

success

Static helper function for creating a success Try.

var successTry = Try.success('Yay! It worked!');

failure

Static helper function for creating a failure Try.

var failureTry = Try.failure('Aw. It failed...');

filter

Function for filtering, where a predicate match results in a success try, and a failure.

var successTry = Try.of(() => 100)
    .filter(value => value > 50);
var failureTry = Try.of(() => 20)
    .filter(value => value > 50);

flatMap

Function for mapping on another Try, used to flatten a nested Try instances.

var successTry = Try.of(() => 'Some value')
    .flatMap(value => Try.of(() => 'Something else'));
var failureTry = Try.of(() => 'Some value')
    .flatMap(value => Try.of(() => { throw new Error('Oh snap!'); }));

getOrElse

Accepts a default value which is returned in case of failure, otherwise the value is returned.

var two = Try.of(() => { throw new Error('one'); })
    .getOrElse(2);

isFailure

Returns whether the Try is a Failure or not.

var correct = Try.of(() => { throw new Error(); })
    .isFailure();

isSuccess

Returns whether the Try is a Success or not.

var correct = Try.of(() => 'Victory!')
    .isSuccess();

onFailure

Function for performing an operation on the failure Try. Disregards the return value of the provided function.

var failureTry = Try.of(() => { throw new Error('Critical failure') })
    .onFailure(err => console.error(err));

onSuccess

Function for performing an operation on the success Try. Disregards the return value of the provided function.

var successTry = Try.of(() => { throw new Error('Superb win') })
    .onSuccess(value => console.log(value));

map

Accepts function that transforms a value if the current Try is a success Try.

var twentySuccessTry = Try.of(() => 10)
    .map(value => value + 10);

orElse

Accepts a function with a another try for Failure mapping.

var successTry = Try.of(() => { throw new Error('Oops'); })
    .orElse(() => Try.of(() => 'Much better'));

Readme

Keywords

none

Package Sidebar

Install

npm i try-js

Weekly Downloads

16

Version

1.9.1

License

MIT

Last publish

Collaborators

  • whirlwin