all files / lib/utils/ build-stylesheet.js

100% Statements 3/3
100% Branches 0/0
100% Functions 2/2
100% Lines 3/3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22                                     
import prefix from 'inline-style-prefixer/static'
import buildSelector from './build-selector'
import buildRule from './build-rule'
import buildDeclarations from './build-declarations'
 
/**
 * Build a stylesheet.
 * @param {Object} rulesObj - The rules for the stylesheet.
 * @returns {string} formated stylesheet.
 * @example
 * // returns '.modal_hgdfgf{width:100%;}.button_guyhg{border-radius-2px;}'
 * buildStylesheet({modal: {width: '100%'}, button: {borderRadius: '2px'}})
 */
export default rulesObj =>
  Object.keys(rulesObj).reduce((previousValue, currentValue) => {
    const declarationsObj = rulesObj[currentValue]
    return previousValue +
      buildRule(
        buildSelector(currentValue, declarationsObj),
        buildDeclarations(prefix(declarationsObj)))
  }, '')