Skip to content

Latest commit

 

History

History
110 lines (77 loc) · 1.68 KB

README.md

File metadata and controls

110 lines (77 loc) · 1.68 KB

@putout/plugin-maybe NPM version

🐊Putout plugin helps with maybe monad.

Install

npm i @putout/plugin-maybe -D

Rules

{
    "rules": {
        "maybe/array": "on",
        "maybe/empty-array": "on",
        "maybe/fn": "on",
        "maybe/noop": "on",
        "maybe/declare": "on"
    }
}

array

❌ Example of incorrect code

const array = isArray(a) ? a : [a];

✅ Example of correct code

const maybeArray = (a) => isArray(a) ? a : [a];
const array = maybeArray(a);

empty-array

❌ Example of incorrect code

const array = !a ? [] : a;

✅ Example of correct code

const maybeArray = (a) => !a ? [] : a;
const array = maybeEmptyArray(a);

fn

❌ Example of incorrect code

const isFn = (a) => typeof a === 'function';
const fn = isFn(a) ? a : () => {};

✅ Example of correct code

const isFn = (a) => typeof a === 'function';
const noop = () => {};
const maybeFn = isFn(a) ? a : noop;
const fn = maybeFn(a);

noop

❌ Example of incorrect code

const fn = f || (() => {});

✅ Example of correct code

const noop = () => {};
const fn = fn || noop;

declare

❌ Example of incorrect code

const fn = maybeFn(f);

✅ Example of correct code

const isFn = (a) => typeof a === 'function';
const noop = () => {};
const maybeFn = isFn(a) ? a : noop;
const fn = maybeFn(f);

License

MIT