1.0.1 • Published 3 years ago

@func-chain/core v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

This package provides the core functionality for func-chain.

Installation

Yarn

yarn add @func-chain/core

NPM

npm install -S @func-chain/core

Usage

Basic

import funcChain from '@func-chain/core';

const foo = (arg1, arg2) => {
    if (arg2 === true) {
        arg1.qux++;
    }
};

const bar = (arg1, arg2) => {
    return arg1.qux; // 2
};

const baz = (arg1, arg2) => {
    return (arg3) => {
        return arg3 * 2;
    };
};

const handler = funcChain([foo, bar, baz]);

await handler({ qux: 1 }, true); // 4

Error Handling

import funcChain from '@func-chain/core';

const foo = () => {
    throw new Error('Oops');
};

const bar = () => {
    return true;
};

const errorHandler = (err) => {
    return {
        success: false,
    };
};

const handler = funcChain([foo, bar], errorHandler);

await handler(); // {success: false}

Using a Function Signature

import funcChain from '@func-chain/core';

type CustomArg = {
    prop1: string;
    prop2: number;
};

type CustomFunc = (arg1: CustomArg) => any;

const foo = (arg1: CustomArg) => {
    //
};

const bar = (arg1: CustomArg) => {
    //
};

const handler = funcChain<CustomFunc>([foo, bar]);

await handler({ prop1: 'baz', prop2: 100 });