https://github.com/gluons/evl
😈 Function fallback when error.
https://github.com/gluons/evl
error evl exception javascript nvl
Last synced: 3 months ago
JSON representation
😈 Function fallback when error.
- Host: GitHub
- URL: https://github.com/gluons/evl
- Owner: gluons
- License: mit
- Created: 2017-02-07T09:58:20.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-07-17T12:15:15.000Z (almost 5 years ago)
- Last Synced: 2025-02-16T23:32:56.894Z (4 months ago)
- Topics: error, evl, exception, javascript, nvl
- Language: TypeScript
- Homepage: https://npm.im/evl
- Size: 375 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EVL
[](https://github.com/gluons/EVL/blob/master/LICENSE)
[](https://www.npmjs.com/package/evl)
[](https://www.npmjs.com/package/evl)
[](https://travis-ci.org/gluons/EVL)
[](https://github.com/gluons/tslint-config-gluons)😈 Function fallback when error.
> Likes [NVL](https://github.com/gluons/NVL) but for **Error** fallback.
## Installation
**Via [npm](https://www.npmjs.com/):**
[](https://www.npmjs.com/package/evl)
```
npm install evl
```**Via [Yarn](https://yarnpkg.com):**
```
yarn add evl
```## Usage
```javascript
const evl = require('evl');const err = () => {
throw new Error('An error. 😱');
};
const one = () => 1;
const two = () => 2;
const add = (a, b) => a + b;
const multiply = (a, b) => a * b;/*
* No arguments
*/
const a = evl(one, two)(); // a is 1
const b = evl(err, two)(); // b is 2/*
* With arguments
*/
// To call add(1, 2) or multiply(3, 4)
const c = evl(add, multiply)([1, 2], [3, 4]); // c is 3 (1 + 2 from add function)
// To call err(1, 2) or multiply(3, 4)
const d = evl(err, multiply)([1, 2], [3, 4]); // d is 12 (3 * 4 from multiply function)
```You can also pass **non-function**.
```javascript
const evl = require('evl');const err = () => {
throw new Error('An error. 💩');
};evl(err, 'I am fallback value.') // -> 'I am fallback value.'
```## API
### `evl(mainFunction, fallbackFunction)`
Create an [invoke function](#invokemainfuncargs-fallbackfuncargs---invoke-function) that will return the value from either of given functions.
#### mainFunction
Type: `Function`A **main function** that you expect it to work.
> If you pass **non-function** value to this parameter, `evl` will return it back from **invoke** function.
#### fallbackFunction
Type: `Function`A **fallback function** that will work when **main function** throw an error.
> If you pass **non-function** value to this parameter, `evl` will return it back from **invoke** function when **main function** not work.
---
### `invoke(mainFuncArgs, fallbackFuncArgs)` - Invoke Function
Return a value of either of given functions with given arguments.
> If both `mainFunction` and `fallbackFunction` have error, `invoke` will return `null`.
#### mainFuncArgs
Type: `Array`
Default: `[]`Arguments of `evl`'s `mainFunction`.
#### fallbackFuncArgs
Type: `Array`
Default: `[]`Arguments of `evl`'s `fallbackFunction`.