diff --git a/lib/addClassNames.js b/lib/addClassNames.js index a8007da..79605b3 100644 --- a/lib/addClassNames.js +++ b/lib/addClassNames.js @@ -4,11 +4,14 @@ const pseudoRegexp = require("./pseudoRegexp"), groups = require("./groups"), - uniq = require("lodash/uniq"); + flatten = require("lodash/flatten"), + uniq = require("lodash/uniq"); module.exports = function addClassNames(classNames, include) { - include.forEach((inc) => { + include = typeof include === "string" ? [ include ] : include; + + flatten(include).forEach((inc) => { if(pseudoRegexp.test(inc)) { return classNames.push(inc); } diff --git a/lib/getClassNameFns.js b/lib/getClassNameFns.js index c7bb8ef..7852d0c 100644 --- a/lib/getClassNameFns.js +++ b/lib/getClassNameFns.js @@ -3,27 +3,13 @@ const classNameFunctions = require("./classNameFunctions"), addClassNames = require("./addClassNames"), - removeClassNames = require("./removeClassNames"), - - flatten = require("lodash/flatten"); - - -function shallowArray(item) { - if(!Array.isArray(item)) { - item = [ item ]; - } - - return flatten(item); -} + removeClassNames = require("./removeClassNames"); module.exports = function(config) { let classNames = [], classFunctions = {}; - config.include = shallowArray(config.include); - config.exclude = shallowArray(config.exclude); - classNames = addClassNames(classNames, config.include); classNames = removeClassNames(classNames, config.exclude); diff --git a/lib/removeClassNames.js b/lib/removeClassNames.js index a57a7f2..6103dd3 100644 --- a/lib/removeClassNames.js +++ b/lib/removeClassNames.js @@ -4,11 +4,14 @@ const pseudoRegexp = require("./pseudoRegexp"), groups = require("./groups"), - pull = require("lodash/pull"); + flatten = require("lodash/flatten"), + pull = require("lodash/pull"); module.exports = function(classNames, exclude) { - exclude.forEach((exc) => { + exclude = typeof exclude === "string" ? [ exclude ] : exclude; + + flatten(exclude).forEach((exc) => { if(pseudoRegexp.test(exc)) { return pull(classNames, exc); }