49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.rules = exports.generateRecommendedConfig = exports.generateAllRulesConfig = exports.configs = void 0;
|
||
|
var _requireindex = _interopRequireDefault(require("requireindex"));
|
||
|
/**
|
||
|
* @fileoverview lint rules for use with jest-dom
|
||
|
* @author Ben Monro
|
||
|
*/
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Requirements
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Plugin Definition
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
// import all rules in src/rules
|
||
|
const rules = (0, _requireindex.default)(`${__dirname}/rules`);
|
||
|
exports.rules = rules;
|
||
|
const generateRecommendedConfig = allRules => Object.entries(allRules).reduce((memo, [name, rule]) => ({
|
||
|
...memo,
|
||
|
...(rule.meta.docs.recommended ? {
|
||
|
[`jest-dom/${name}`]: "error"
|
||
|
} : {})
|
||
|
}), {});
|
||
|
exports.generateRecommendedConfig = generateRecommendedConfig;
|
||
|
const generateAllRulesConfig = allRules => Object.entries(allRules).reduce((memo, [name]) => ({
|
||
|
...memo,
|
||
|
...{
|
||
|
[`jest-dom/${name}`]: "error"
|
||
|
}
|
||
|
}), {});
|
||
|
exports.generateAllRulesConfig = generateAllRulesConfig;
|
||
|
const configs = {
|
||
|
recommended: {
|
||
|
plugins: ["jest-dom"],
|
||
|
rules: generateRecommendedConfig(rules)
|
||
|
},
|
||
|
all: {
|
||
|
plugins: ["jest-dom"],
|
||
|
rules: generateAllRulesConfig(rules)
|
||
|
}
|
||
|
};
|
||
|
exports.configs = configs;
|