all.js 1008 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. 'use strict';
  2. const fromEntries = require('object.fromentries');
  3. const entries = require('object.entries');
  4. const allRules = require('../lib/rules');
  5. function filterRules(rules, predicate) {
  6. return fromEntries(entries(rules).filter((entry) => predicate(entry[1])));
  7. }
  8. function configureAsError(rules) {
  9. return fromEntries(Object.keys(rules).map((key) => [`react/${key}`, 2]));
  10. }
  11. const activeRules = filterRules(allRules, (rule) => !rule.meta.deprecated);
  12. const activeRulesConfig = configureAsError(activeRules);
  13. const deprecatedRules = filterRules(allRules, (rule) => rule.meta.deprecated);
  14. module.exports = {
  15. plugins: {
  16. react: {
  17. deprecatedRules,
  18. rules: allRules,
  19. },
  20. },
  21. rules: activeRulesConfig,
  22. languageOptions: {
  23. parserOptions: {
  24. ecmaFeatures: {
  25. jsx: true,
  26. },
  27. },
  28. },
  29. };
  30. // this is so the `languageOptions` property won't be warned in the new config system
  31. Object.defineProperty(module.exports, 'languageOptions', { enumerable: false });