UNPKG

eslint-plugin-reblend

Version:

Reblend specific linting rules for ESLint

50 lines (41 loc) 1.3 kB
'use strict'; const fromEntries = require('object.fromentries'); const entries = require('object.entries'); const allRules = require('../lib/rules'); function filterRules(rules, predicate) { return fromEntries(entries(rules).filter(entry => predicate(entry[1]))); } /** * @param {object} rules - rules object mapping rule name to rule module * @returns {Record<string, 2>} */ function configureAsError(rules) { return fromEntries(Object.keys(rules).map(key => [`reblend/${key}`, 2])); } const activeRules = filterRules(allRules, rule => !rule.meta.deprecated); const activeRulesConfig = configureAsError(activeRules); const deprecatedRules = filterRules(allRules, rule => rule.meta.deprecated); module.exports = { plugins: { /** * @type {{ * deprecatedRules: Record<string, import('eslint').Rule.RuleModule>, * rules: Record<string, import('eslint').Rule.RuleModule>, * }} */ reblend: { deprecatedRules, rules: allRules, }, }, rules: activeRulesConfig, languageOptions: { parserOptions: { ecmaFeatures: { jsx: true, }, }, }, }; // this is so the `languageOptions` property won't be warned in the new config system Object.defineProperty(module.exports, 'languageOptions', { enumerable: false });