eslint-config-fuks
Version:
24 lines (23 loc) • 1.44 kB
JavaScript
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`],
]);