UNPKG

eslint-config-fuks

Version:

24 lines (23 loc) 1.44 kB
import { compat } from './compat.js'; import { legacyPlugin } from './legacyPlugins.js'; const extendsConfig = (name) => compat.extends(name); const legacyConfigPlugins = (configs, plugins) => configs.map(config => { const newPlugins = plugins.reduce((acc, [name, alias]) => { var _a; const plugin = ((_a = config.plugins) === null || _a === void 0 ? void 0 : _a[alias]) ? legacyPlugin(name, alias) : undefined; return plugin ? Object.assign(Object.assign({}, acc), { [alias]: plugin }) : acc; }, {}); return Object.assign(Object.assign({}, config), { plugins: Object.assign(Object.assign({}, config.plugins), newPlugins) }); }); export const airbnbConfig = legacyConfigPlugins(extendsConfig(`airbnb`), [[`eslint-plugin-import`, `import`]]); export const airbnbHooksConfig = legacyConfigPlugins(extendsConfig(`airbnb/hooks`), [ [`eslint-plugin-react-hooks`, `react-hooks`], ]); export const airbnbTypescriptConfig = extendsConfig(`airbnb-typescript`); export const featureSlicedLayersSlicesSlicesConfig = extendsConfig(`@feature-sliced/eslint-config/rules/layers-slices`); export const testingLibraryReactConfig = legacyConfigPlugins(extendsConfig(`plugin:testing-library/react`), [ [`eslint-plugin-testing-library`, `testing-library`], ]); export const storybookConfig = legacyConfigPlugins(extendsConfig(`plugin:storybook/recommended`), [ [`eslint-plugin-storybook`, `storybook`], ]);