all files / lib/ stylord.js

100% Statements 7/7
100% Branches 0/0
100% Functions 2/2
100% Lines 7/7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24                                 
import buildStylesheet from './utils/build-stylesheet'
import buildSelector from './utils/build-selector'
 
const style = document.createElement('style')
style.dataset.stylord = ''
document.head.appendChild(style)
 
/**
 * Create a stylesheet and inject it to the head of the application.
 * @param {Object} rules - CSS rules to be rendered.
 * @param {Object} the class names of the css modules created.
 * @example
 * // returns {modal: 'modal_hgdfgf', button: 'button_guyhg'}
 * buildStylesheet({modal: {width: '100%'}, button: {borderRadius: '2px'}})
 */
export default rules => {
  style.appendChild(document.createTextNode(buildStylesheet(rules)))
 
  return Object.keys(rules).reduce((previous, current) => {
    previous[current] = buildSelector(current, rules[current])
    return previous
  }, {})
}