Package Exports
- @putout/eslint-flat
- @putout/eslint-flat/lib/flat.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@putout/eslint-flat) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@putout/eslint-flat 
Helps deal with ESLint FlatConfig.
Install
npm i @putout/eslint-flatAPI
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(cwd: DirName|FileURL, 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(__dirname, './packages/putout'),
];or
import {safeAlign} from 'eslint-plugin-putout/config';
import {matchToFlatDir} from '@putout/eslint-flat';
module.exports = [
...safeAlign,
...matchToFlatDir(import.meta.url, './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(cwd, 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(import.meta.url, ['./packages']);
export default [
...safeAlign,
...config,
];createESLintConfig(configs)
Gives ability to avoid lots of spreads (alias to defineConfig:
export default createESLintConfig([safeAlign, config]);License
MIT