diff --git a/index.js b/index.js index 8edb1177f1..5ece08d9b4 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,5 @@ 'use strict'; -const fromEntries = require('object.fromentries'); -const entries = require('object.entries'); - /* eslint-disable global-require */ const allRules = { 'boolean-prop-naming': require('./lib/rules/boolean-prop-naming'), @@ -97,8 +94,14 @@ const allRules = { }; /* eslint-enable */ +const fromEntries = Object.fromEntries || function fromEntries(entries) { + const obj = {}; + for (const [key, value] of entries) obj[key] = value; + return obj; +} + function filterRules(rules, predicate) { - return fromEntries(entries(rules).filter((entry) => predicate(entry[1]))); + return fromEntries(Object.entries(rules).filter((entry) => predicate(entry[1]))); } function configureAsError(rules) { diff --git a/lib/util/Components.js b/lib/util/Components.js index ff65e367aa..70b5cfc336 100644 --- a/lib/util/Components.js +++ b/lib/util/Components.js @@ -6,8 +6,6 @@ 'use strict'; const doctrine = require('doctrine'); -const arrayIncludes = require('array-includes'); -const values = require('object.values'); const variableUtil = require('./variable'); const pragmaUtil = require('./pragma'); @@ -562,7 +560,7 @@ function componentRule(rule, context) { */ getDetectedComponents() { const list = components.list(); - return values(list).filter((val) => { + return Object.values(list).filter((val) => { if (val.node.type === 'ClassDeclaration') { return true; } @@ -590,7 +588,7 @@ function componentRule(rule, context) { nodeWrapsComponent(node) { const childComponent = this.getNameOfWrappedComponent(node.arguments); const componentList = this.getDetectedComponents(); - return !!childComponent && arrayIncludes(componentList, childComponent); + return !!childComponent && componentList.includes(childComponent); }, isPragmaComponentWrapper(node) { @@ -600,11 +598,11 @@ function componentRule(rule, context) { const propertyNames = ['forwardRef', 'memo']; const calleeObject = node.callee.object; if (calleeObject && node.callee.property) { - return arrayIncludes(propertyNames, node.callee.property.name) + return propertyNames.includes(node.callee.property.name) && calleeObject.name === pragma && !this.nodeWrapsComponent(node); } - return arrayIncludes(propertyNames, node.callee.name) && this.isDestructuredFromPragmaImport(node.callee.name); + return propertyNames.includes(node.callee.name) && this.isDestructuredFromPragmaImport(node.callee.name); }, /** diff --git a/lib/util/defaultProps.js b/lib/util/defaultProps.js index 5c1a7ec205..849cc7a08b 100644 --- a/lib/util/defaultProps.js +++ b/lib/util/defaultProps.js @@ -4,7 +4,6 @@ 'use strict'; -const fromEntries = require('object.fromentries'); const astUtil = require('./ast'); const propsUtil = require('./props'); const variableUtil = require('./variable'); @@ -90,7 +89,10 @@ module.exports = function defaultPropsInstructions(context, components, utils) { const newDefaultProps = Object.assign( {}, defaults, - fromEntries(defaultProps.map((prop) => [prop.name, prop])) + defaultProps.reduce((obj, prop) => { + obj[prop.name] = prop; + return obj; + }, {}) ); components.set(component.node, {