// Requirements
//------------------------------------------------------------------------------
-const lodash = require("lodash"),
+const equal = require("fast-deep-equal"),
recConfig = require("../../conf/eslint-recommended"),
- ConfigOps = require("../shared/config-ops"),
+ ConfigOps = require("@eslint/eslintrc/lib/shared/config-ops"),
{ Linter } = require("../linter"),
configRule = require("./config-rule");
* @returns {void}
*/
populateFromCoreRules() {
- const rulesConfig = configRule.createCoreRuleConfigs();
+ const rulesConfig = configRule.createCoreRuleConfigs(/* noDeprecated = */ true);
this.rules = makeRegistryItems(rulesConfig);
}
ruleSetIdx += 1;
if (cb) {
- cb(totalFilesLinting); // eslint-disable-line callback-return
+ cb(totalFilesLinting); // eslint-disable-line node/callback-return
}
});
/**
* Extract rule configuration into eslint:recommended where possible.
*
- * This will return a new config with `"extends": "eslint:recommended"` and
+ * This will return a new config with `["extends": [ ..., "eslint:recommended"]` and
* only the rules which have configurations different from the recommended config.
* @param {Object} config config object
- * @returns {Object} config object using `"extends": "eslint:recommended"`
+ * @returns {Object} config object using `"extends": ["eslint:recommended"]`
*/
function extendFromRecommended(config) {
const newConfig = Object.assign({}, config);
const recRules = Object.keys(recConfig.rules).filter(ruleId => ConfigOps.isErrorSeverity(recConfig.rules[ruleId]));
recRules.forEach(ruleId => {
- if (lodash.isEqual(recConfig.rules[ruleId], newConfig.rules[ruleId])) {
+ if (equal(recConfig.rules[ruleId], newConfig.rules[ruleId])) {
delete newConfig.rules[ruleId];
}
});
- newConfig.extends = RECOMMENDED_CONFIG_NAME;
+ newConfig.extends.unshift(RECOMMENDED_CONFIG_NAME);
return newConfig;
}