2.1.0 β€’ Published 10 months ago

@putout/plugin-apply-overrides v2.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@putout/plugin-apply-overrides NPM version

🐊Putout plugin adds ability to apply overrides.

Checkout in 🐊Putout Editor.

When you write testable code and want to avoid mocking required or imported modules, one of a solutions to use simple form of dependency injection:

import {readDirSync as _readdirSync} from 'node:fs/promises';

export const readRules = (dirOpt, rulesDir, overrides = {}) => {
    const {
        cwd,
        readdirSync = _readdirSync,
    } = overrides;
};

Pass overrides as last parameter, in this case use can test easily your function readFules:

import {test, stub} from 'supertape';

test('readRules', (t) => {
    const readdirSync = stub().returns([]);
    const rules = readRules('', '', {
        readdirSync,
    });
    
    t.equal(rules, []);
    t.end();
});

Then only issue is, when you have lots of parameters, your function declaration will be to long, or to hard to read, so recommended way is to use overrides variable.

Install

npm i @putout/plugin-apply-overrides

Rule

{
    "rules": {
        "apply-overrides": "on"
    }
}

❌ Example of incorrect code

async function matchToFlatDir(path, config, {readESLintConfig = _readESLintConfig} = {}) {}

βœ… Example of correct code

async function matchToFlatDir(path, config, overrides = {}) {
    const {
        readESLintConfig = _readESLintConfig,
    } = overrides;
}

License

MIT

2.1.0

10 months ago

2.0.0

10 months ago

1.3.0

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago