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

100% Statements 4/4
100% Branches 1/1
100% Functions 1/1
100% Lines 4/4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28                                               
import {buildRule, buildPseudoRule, buildMediaQueryRule} from './build-rule'
 
/**
 * Build a css rule.
 * @param {string} selector - A class name.
 * @param {Object} declarations - CSS declarations.
 * @returns {string} formated css rule.
 * @example
 * // returns '.button{border-radius: 2px;}.button:after{content:""}'
 * buildDeclarations('button', {
 *   borderRadius: '2px',
 *   ':after': {
 *     content: '""'
 *   }
 * })
 */
export default (selector, declarations, globalSelector = false) => {
  const pseudoSelectors = buildPseudoRule(
    selector,
    declarations,
    globalSelector
  )
  const normalSelector = buildRule(selector, declarations, globalSelector)
  const mediaQuery = buildMediaQueryRule(selector, declarations, globalSelector)
 
  return normalSelector + pseudoSelectors + mediaQuery
}