saferr

1.0.1 • Public • Published

Description

A zero-dependency JavaScript library for error handling. It is inspired by Go, and returns a tuple containing the error and the result instead of throwing an exception.

Unlike other JavaScript libraries (await-to-js), supports async/await, promises and regular functions.

Installation

npm i saferr

Examples

Async

import saferr from "saferr";
import axios from "axios";
 
const safeGet = saferr(axios.get);
 
const testAsync = async url => {
  const [err, result] = await safeGet(url);
 
  if (err) {
    console.error(err.message);
    return;
  }
 
  console.log(result.data.results[0].email);
};
 
 
// prints: zdenka.dieckmann@example.com
testAsync("https://randomuser.me/api/?results=1");
 
// prints: Network Error
testAsync("https://shmoogle.com");

Sync

import saferr from "saferr";
 
const syncFunc = shouldThrow => {
  if (shouldThrow) {
    throw new Error("Oops...");
  }
 
  return "ok";
};
 
const safeSyncFunc = saferr(syncFunc);
 
const testSync = ({succeed}) => {
  const [err, result] = safeSyncFunc(succeed);
 
  if (err) {
     console.error(err.message);
     return;
  }
 
  console.log(result);
};
 
// prints: ok
testSync({succeed: true});
 
// prints: Oops...
testSync({succeed: false});

Package Sidebar

Install

npm i saferr

Weekly Downloads

4

Version

1.0.1

License

MIT

Unpacked Size

4.97 kB

Total Files

5

Last publish

Collaborators

  • suzdalnitski