@putout/plugin-try-catch

3.0.0 • Public • Published

@putout/plugin-try-catch NPM version

The try...catch statement marks a try block and a catch block. If the code in the try block throws an exception then the code in the catch block will be executed.

(c) MDN

🐊Putout plugin adds support of:

Which are drastically simplifies try...catch blocks.

Install

npm i @putout/plugin-try-catch

Rule

{
    "rules": {
        "try-catch/await": "on",
        "try-catch/args": "on",
        "try-catch/declare": "on",
        "try-catch/expand-arguments": "on",
        "try-catch/sync": "on",
        "try-catch/async": "on"
    }
}

sync

Example of incorrect code

try {
    log('hello');
} catch(error) {}

Example of correct code

import tryCatch from 'try-catch';

const [error] = tryCatch(log, 'hello');

async

Example of incorrect code

try {
    await send('hello');
} catch(error) {}

Example of correct code

import tryToCatch from 'try-catch';

const [error] = await tryToCatch(send, 'hello');

await

Example of incorrect code

await tryCatch(a, b);
tryToCatch(a, b);

Example of correct code

await tryToCatch(a, b);

args

Example of incorrect code

tryCatch(send('hello'));

Example of correct code

tryCatch(send, 'hello');

declare

Example of incorrect code

const [error] = tryCatch(fs.readFileSync, 'hello.txt');

Example of correct code

import tryCatch from 'try-catch';

const [error] = tryCatch(fs.readFileSync, 'hello.txt');

expand-arguments

Example of incorrect code

import tryCatch from 'try-catch';

test('some message', (t) => {
    const fn = () => copymitter('/hello');
    const [error] = tryCatch(fn);
    
    t.equal(error.message, 'to should be a string!');
    t.end();
});

Example of correct code

import tryCatch from 'try-catch';

test('some message', (t) => {
    const [error] = tryCatch(copymitter, '/hello');
    
    t.equal(error.message, 'to should be a string!');
    t.end();
});

License

MIT

Package Sidebar

Install

npm i @putout/plugin-try-catch

Weekly Downloads

3,880

Version

3.0.0

License

MIT

Unpacked Size

11.6 kB

Total Files

11

Last publish

Collaborators

  • coderaiser