clean-function
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

clean-function

A replacement for using try-catch in JavaScript/TypeScript!

It seems like a lot of people hate try-catch just like me, so I built a better, clean, and type-safe solution.

How it works

You just wrap any function you have with the cleanFunction that you get from the package and you're good to go. Instead of using try-catch, you do it like this:

import { cleanFunction } from "clean-function";

const myFunction = cleanFunction(async (args: ANY_ARGS) => {
    // do anything you want
})

const { data, error } = await myFunction(args);

if (error === null) {
    console.log(data); // handle the data
} else {
    // handle errors
}

Installation

This package is intended to be used anywhere: the browser, Node.js, Deno, the edge, and it has no dependencies, install:

npm install clean-function

or using any other package manager you use in your project.

Usage

Using this package is so simple, you just wrap your function with cleanFunction.

For Asynchronous Functions

import { cleanFunction } from "clean-function";

const sum = cleanFunction(async (a: number, b: number) => {
    // do anything you want here
    return a + b;
});

const { data, error } = await sum(1, 2);

if (error === null) {
    console.log(data); // number (3)
} else {
    // handle errors as you want
    console.error(error);
}

For Synchronous Functions

import { cleanFunctionSync } from "clean-function";

const mySyncFunction = cleanFunctionSync((a: number, b: number) => {
    return a + b;
});

const { data, error } = mySyncFunction(1, 2);

if (error === null) {
    console.log(data); // number (3)
} else {
    // handle errors as you want
    console.error(error);
}

Made with ❤️ by Kais Radwan

/clean-function/

    Package Sidebar

    Install

    npm i clean-function

    Weekly Downloads

    8

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    8.77 kB

    Total Files

    7

    Last publish

    Collaborators

    • kaisradwan