UNPKG

styled-components

Version:

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅

41 lines (31 loc) • 1.65 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.objToCss = undefined; var _hyphenateStyleName = require('fbjs/lib/hyphenateStyleName'); var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName); var _isPlainObject = require('lodash/isPlainObject'); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } var objToCss = exports.objToCss = function objToCss(obj) { return Object.keys(obj).map(function (k) { return (0, _hyphenateStyleName2.default)(k) + ': ' + obj[k] + ';'; }).join(' '); }; var flatten = function flatten(chunks, executionContext) { return chunks.reduce(function (array, chunk) { /* Remove falsey values */ if (chunk === undefined || chunk === null || chunk === false || chunk === '') return array; /* Flatten arrays */ if (Array.isArray(chunk)) return array.concat.apply(array, _toConsumableArray(flatten(chunk, executionContext))); /* Either execute or defer the function */ if (typeof chunk === 'function') { return executionContext ? array.concat.apply(array, _toConsumableArray(flatten([chunk(executionContext)], executionContext))) : array.concat(chunk); } /* Handle objects */ return array.concat((0, _isPlainObject2.default)(chunk) ? objToCss(chunk) : chunk.toString()); }, []); }; exports.default = flatten;