|
1 | 1 | 'use strict'; |
2 | 2 |
|
3 | | -var deprecatedRules = { |
4 | | - 'no-comment-textnodes': require('./lib/rules/no-comment-textnodes'), |
5 | | - 'require-extension': require('./lib/rules/require-extension'), |
6 | | - 'wrap-multilines': require('./lib/rules/wrap-multilines') |
7 | | -}; |
8 | | - |
9 | | -var rules = { |
| 3 | +var allRules = { |
10 | 4 | 'jsx-uses-react': require('./lib/rules/jsx-uses-react'), |
11 | 5 | 'no-multi-comp': require('./lib/rules/no-multi-comp'), |
12 | 6 | 'prop-types': require('./lib/rules/prop-types'), |
@@ -58,32 +52,45 @@ var rules = { |
58 | 52 | 'no-danger-with-children': require('./lib/rules/no-danger-with-children'), |
59 | 53 | 'style-prop-object': require('./lib/rules/style-prop-object'), |
60 | 54 | 'no-unused-prop-types': require('./lib/rules/no-unused-prop-types'), |
61 | | - 'no-children-prop': require('./lib/rules/no-children-prop') |
| 55 | + 'no-children-prop': require('./lib/rules/no-children-prop'), |
| 56 | + 'no-comment-textnodes': require('./lib/rules/no-comment-textnodes'), |
| 57 | + 'require-extension': require('./lib/rules/require-extension'), |
| 58 | + 'wrap-multilines': require('./lib/rules/wrap-multilines') |
62 | 59 | }; |
63 | 60 |
|
64 | | -var ruleNames = Object.keys(rules); |
65 | | -var allRules = {}; |
66 | | -for (var i = 0; i < ruleNames.length; i++) { |
67 | | - allRules['react/' + ruleNames[i]] = 2; |
68 | | -} |
69 | | - |
70 | | -var exportedRules = {}; |
71 | | -for (var key in rules) { |
72 | | - if (!rules.hasOwnProperty(key)) { |
73 | | - continue; |
| 61 | +function filterRules(rules, predicate) { |
| 62 | + var result = {}; |
| 63 | + for (var key in rules) { |
| 64 | + if (rules.hasOwnProperty(key) && predicate(rules[key])) { |
| 65 | + result[key] = rules[key]; |
| 66 | + } |
74 | 67 | } |
75 | | - exportedRules[key] = rules[key]; |
| 68 | + return result; |
76 | 69 | } |
77 | | -for (var deprecatedKey in deprecatedRules) { |
78 | | - if (!deprecatedRules.hasOwnProperty(deprecatedKey)) { |
79 | | - continue; |
| 70 | + |
| 71 | +function configureAsError(rules) { |
| 72 | + var result = {}; |
| 73 | + for (var key in rules) { |
| 74 | + if (!rules.hasOwnProperty(key)) { |
| 75 | + continue; |
| 76 | + } |
| 77 | + result['react/' + key] = 2; |
80 | 78 | } |
81 | | - exportedRules[deprecatedKey] = deprecatedRules[deprecatedKey]; |
| 79 | + return result; |
82 | 80 | } |
83 | 81 |
|
| 82 | +var activeRules = filterRules(allRules, function(rule) { |
| 83 | + return !rule.meta.deprecated; |
| 84 | +}); |
| 85 | +var activeRulesConfig = configureAsError(activeRules); |
| 86 | + |
| 87 | +var deprecatedRules = filterRules(allRules, function(rule) { |
| 88 | + return rule.meta.deprecated; |
| 89 | +}); |
| 90 | + |
84 | 91 | module.exports = { |
85 | 92 | deprecatedRules: deprecatedRules, |
86 | | - rules: exportedRules, |
| 93 | + rules: allRules, |
87 | 94 | configs: { |
88 | 95 | recommended: { |
89 | 96 | plugin: [ |
@@ -120,7 +127,7 @@ module.exports = { |
120 | 127 | jsx: true |
121 | 128 | } |
122 | 129 | }, |
123 | | - rules: allRules |
| 130 | + rules: activeRulesConfig |
124 | 131 | } |
125 | 132 | } |
126 | 133 | }; |
0 commit comments