@react-hookz/eslint-config
Version:
eslint configuration files used in @react-hookz projects
44 lines (38 loc) • 977 B
JavaScript
/**
* Set configs file patters in case config does not have one.
*
* @param {Linter.Config[]} configs
* @param {string[]} files
* @return {Linter.Config[]}
*/
export function setFilesIfUndef(configs, files) {
return configs.map(cfg => ({files, ...cfg}));
}
/**
* Collects the list of all rules from the given configs and disables
* them all.
*
* This function is useful for gradual application of config on large
* codebases. As eslint not allowing to reduce the list of rules fixing
* performed.
*
* @param {Linter.Config[]} configs
* @param {string[]} except
* @param {RegExp[]} exceptRx
* @return {Linter.RulesRecord}
*/
export function disableAllRules(configs, except = [], exceptRx = []) {
const rules = {};
for (const config of configs) {
for (const rule in config.rules ?? {}) {
if (except.includes(rule)) {
continue;
}
if (exceptRx.some(rx => rx.test(rule))) {
continue;
}
rules[rule] = 'off';
}
}
return rules;
}