eslint-config-love
Version:
A TypeScript ESLint config that loves you
31 lines • 1.23 kB
JavaScript
import eslintCommentsRules from './plugin-usage/eslint-comments.js';
import eslintRules from './plugin-usage/eslint.js';
import nRules from './plugin-usage/n.js';
import promiseRules from './plugin-usage/promise.js';
import typescriptEslint from './plugin-usage/typescript-eslint.js';
import importRules from './plugin-usage/import.js';
const imports = [
typescriptEslint,
eslintCommentsRules,
eslintRules,
nRules,
promiseRules,
importRules,
];
export const { rulesPerPlugin, rules, plugins } = imports.reduce((acc, { pluginName, plugin, rules: localRules }) => {
if (plugin !== 'eslint') {
/* eslint-disable no-param-reassign -- caller does not have access to param */
acc.plugins[pluginName] = plugin;
}
const rules = Object.fromEntries(Object.entries(localRules).map(([localRuleName, ruleConfig]) => [
plugin === 'eslint'
? localRuleName
: `${pluginName}/${localRuleName}`,
ruleConfig,
]));
acc.rulesPerPlugin[pluginName] = rules;
acc.rules = { ...acc.rules, ...rules };
return acc;
/* eslint-enable no-param-reassign */
}, { rulesPerPlugin: {}, rules: {}, plugins: {} });
//# sourceMappingURL=plugin-usage.js.map