UNPKG

snabbdom-to-html

Version:

Render Snabbdom Vnodes to HTML strings

30 lines (23 loc) 734 B
var assign = require('object-assign') var forOwn = require('lodash.forown') var escape = require('lodash.escape') var kebabCase = require('lodash.kebabcase') // data.style module.exports = function styleModule (vnode, attributes) { var values = [] var style = vnode.data.style || {} // merge in `delayed` properties if (style.delayed) { assign(style, style.delayed) } forOwn(style, function (value, key) { // omit hook objects if (typeof value === 'string' || typeof value === 'number') { var kebabKey = kebabCase(key) values.push((key.match(/^--.*/) ? '--' + kebabKey : kebabKey) + ': ' + escape(value)) } }) if (values.length) { attributes.set('style', values.join('; ')) } }