From c98aebbd3a1c2c09c9adc00cffa31a2bdda7eaa9 Mon Sep 17 00:00:00 2001 From: Luke Westby Date: Mon, 26 Oct 2015 17:10:51 -0500 Subject: [PATCH] import directly from inner lodash modules instead of loading all of lodash --- src/extendReactClass.js | 7 ++++--- src/linkClass.js | 7 ++++--- src/makeConfiguration.js | 4 ++-- src/wrapStatelessFunction.js | 9 +++++---- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/extendReactClass.js b/src/extendReactClass.js index 4ff5114..aba8174 100644 --- a/src/extendReactClass.js +++ b/src/extendReactClass.js @@ -1,6 +1,7 @@ import linkClass from './linkClass'; import React from 'react'; -import _ from 'lodash'; +import isObject from 'lodash/lang/isObject'; +import assign from 'lodash/object/assign'; let extendReactClass; @@ -18,8 +19,8 @@ extendReactClass = (Component, defaultStyles, options) => { if (this.props.styles) { styles = this.props.styles; - } else if (_.isObject(defaultStyles)) { - this.props = _.assign({}, this.props, { + } else if (isObject(defaultStyles)) { + this.props = assign({}, this.props, { styles: defaultStyles }); diff --git a/src/linkClass.js b/src/linkClass.js index 1c16a57..1b06f3f 100644 --- a/src/linkClass.js +++ b/src/linkClass.js @@ -1,6 +1,7 @@ import React from 'react'; import makeConfiguration from './makeConfiguration'; -import _ from 'lodash'; +import filter from 'lodash/collection/filter'; +import isArray from 'lodash/lang/isArray'; let linkClass; @@ -29,7 +30,7 @@ linkClass = (element, styles = {}, userConfiguration) => { if (styleNames) { styleNames = styleNames.split(' '); - styleNames = _.filter(styleNames); + styleNames = filter(styleNames); if (configuration.allowMultiple === false && styleNames.length > 1) { throw new Error(`ReactElement styleName property defines multiple module names ("${element.props.styleName}").`); @@ -64,7 +65,7 @@ linkClass = (element, styles = {}, userConfiguration) => { if (React.isValidElement(element.props.children)) { newChildren = linkClass(React.Children.only(element.props.children), styles, configuration); - } else if (_.isArray(element.props.children)) { + } else if (isArray(element.props.children)) { newChildren = React.Children.map(element.props.children, (node) => { if (React.isValidElement(node)) { return linkClass(node, styles, configuration); diff --git a/src/makeConfiguration.js b/src/makeConfiguration.js index 6889c75..70ec746 100644 --- a/src/makeConfiguration.js +++ b/src/makeConfiguration.js @@ -1,4 +1,4 @@ -import _ from 'lodash'; +import forEach from 'lodash/collection/forEach'; /** * @typedef CSSModules~Options @@ -19,7 +19,7 @@ export default (userConfiguration = {}) => { errorWhenNotFound: true }; - _.forEach(userConfiguration, (value, name) => { + forEach(userConfiguration, (value, name) => { if (typeof configuration[name] === 'undefined') { throw new Error(`Unknown configuration property "${name}".`); } diff --git a/src/wrapStatelessFunction.js b/src/wrapStatelessFunction.js index 312238a..3a82db8 100644 --- a/src/wrapStatelessFunction.js +++ b/src/wrapStatelessFunction.js @@ -1,6 +1,7 @@ import linkClass from './linkClass'; import React from 'react'; -import _ from 'lodash'; +import assign from 'lodash/object/assign'; +import isObject from 'lodash/lang/isObject'; let wrapStatelessFunction; @@ -22,8 +23,8 @@ wrapStatelessFunction = (Component, defaultStyles, options) => { if (props.styles) { useProps = props; styles = props.styles; - } else if (_.isObject(defaultStyles)) { - useProps = _.assign({}, props, { + } else if (isObject(defaultStyles)) { + useProps = assign({}, props, { styles: defaultStyles }); @@ -42,7 +43,7 @@ wrapStatelessFunction = (Component, defaultStyles, options) => { return React.createElement('noscript'); }; - _.assign(WrappedComponent, Component); + assign(WrappedComponent, Component); return WrappedComponent; };