1.1.1 • Published 10 days ago

@putout/eslint-flat v1.1.1

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

@putout/eslint-flat NPM version

Helps deal with ESLint FlatConfig.

Install

npm i @putout/eslint-flat

API

matchToFlat(match)

You have ability to write ESLint configs in objects instead of lots of arrays, for example instead of this:

module.exports = [
    ...safeAlign, {
        files: ['bin/putout.mjs'],
        rules: {
            'n/hashbang': 'off',
        },
    }, {
        files: ['**/register.mjs'],
        rules: {
            'n/no-unsupported-features/node-builtins': 'off',
        },
    },
];

You can use matchToFlat:

const {matchToFlat} = require('@putout/eslint-flat');
const {safeAlign} = require('eslint-plugin-putout/config');

const match = {
    'bin/putout.mjs': {
        'n/hashbang': 'off',
    },
    '**/register.mjs': {
        'n/no-unsupported-features/node-builtins': 'off',
    },
};

module.exports = [
    ...safeAlign,
    ...matchToFlat(match),
];

module.exports.match = match;

This also gives you ability to use new configs in monorepo:

matchToFlatDir(path)

If your eslint.config.js exports match, you can use matchToFlatDir to build correct files arrays:

const {safeAlign} = require('eslint-plugin-putout/config');
const {matchToFlatDir} = require('@putout/eslint-flat');

module.exports = [
    ...safeAlign,
    ...matchToFlatDir('./packages/putout'),
];

This is the same as:

module.exports = [
    ...safeAlign, {
        files: ['**/packages/putout/bin/putout.mjs'],
        rules: {
            'n/hashbang': 'off',
        },
    }, {
        files: ['**/packages/putout/**/register.mjs'],
        rules: {
            'n/no-unsupported-features/node-builtins': 'off',
        },
        ignores: [
            ['**/packages/putout/**/fixture'],
        ],
    },
];

mergeESLintConfigs(directories)

When you have monorepo with lots of packages in ./packages directory:

import {safeAlign} from 'eslint-plugin-putout/config';
import {mergeESLintConfigs} from '@putout/eslint-flat';

const config = await mergeESlintConfigs(['./packages']);

export default [
    ...safeAlign,
    ...config,
];

createESLintConfig(configs)

Gives ability to avoid lots of spreads:

export default createESLintConfig([safeAlign, config]);

License

MIT

1.1.1

10 days ago

1.1.0

10 days ago

1.0.4

11 days ago

1.0.3

11 days ago

1.0.2

12 days ago

1.0.1

12 days ago

1.0.0

12 days ago