From fce69eba2f51f5d00ef1129b2282e94db22bf422 Mon Sep 17 00:00:00 2001 From: golopot Date: Thu, 9 May 2019 02:16:03 +0800 Subject: [PATCH] [Refactor]: replace util._extend with Object.assign --- lib/rules/sort-comp.js | 3 +-- lib/util/Components.js | 35 ++++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lib/rules/sort-comp.js b/lib/rules/sort-comp.js index 9470725cf1..cdb8704156 100644 --- a/lib/rules/sort-comp.js +++ b/lib/rules/sort-comp.js @@ -5,7 +5,6 @@ 'use strict'; const has = require('has'); -const util = require('util'); const Components = require('../util/Components'); const arrayIncludes = require('array-includes'); @@ -58,7 +57,7 @@ const defaultConfig = { function getMethodsOrder(userConfig) { userConfig = userConfig || {}; - const groups = util._extend(defaultConfig.groups, userConfig.groups); + const groups = Object.assign({}, defaultConfig.groups, userConfig.groups); const order = userConfig.order || defaultConfig.order; let config = []; diff --git a/lib/util/Components.js b/lib/util/Components.js index 38459a0ffa..b9de462d2e 100644 --- a/lib/util/Components.js +++ b/lib/util/Components.js @@ -4,7 +4,6 @@ */ 'use strict'; -const util = require('util'); const doctrine = require('doctrine'); const arrayIncludes = require('array-includes'); @@ -97,23 +96,25 @@ class Components { * @param {Object} props Additional properties to add to the component. */ set(node, props) { - while (node && !this._list[getId(node)]) { + let component = this._list[getId(node)]; + while (!component) { node = node.parent; + if (!node) { + return; + } + component = this._list[getId(node)]; } - if (!node) { - return; - } - const id = getId(node); - let copyUsedPropTypes; - if (this._list[id]) { - // usedPropTypes is an array. _extend replaces existing array with a new one which caused issue #1309. - // preserving original array so it can be merged later on. - copyUsedPropTypes = this._list[id].usedPropTypes && this._list[id].usedPropTypes.slice(); - } - this._list[id] = util._extend(this._list[id], props); - if (this._list[id] && props.usedPropTypes) { - this._list[id].usedPropTypes = mergeUsedPropTypes(copyUsedPropTypes || [], props.usedPropTypes); - } + + Object.assign( + component, + props, + { + usedPropTypes: mergeUsedPropTypes( + component.usedPropTypes || [], + props.usedPropTypes || [] + ) + } + ); } /** @@ -758,7 +759,7 @@ function componentRule(rule, context) { // Update the provided rule instructions to add the component detection const ruleInstructions = rule(context, components, utils); - const updatedRuleInstructions = util._extend({}, ruleInstructions); + const updatedRuleInstructions = Object.assign({}, ruleInstructions); const propTypesInstructions = propTypesUtil(context, components, utils); const usedPropTypesInstructions = usedPropTypesUtil(context, components, utils); const defaultPropsInstructions = defaultPropsUtil(context, components, utils);