kjelsrud.dev/node_modules/style-to-object/index.js

44 lines
1 KiB
JavaScript
Raw Normal View History

2023-07-19 21:31:30 +02:00
var parse = require('inline-style-parser');
/**
* Parses inline style to object.
*
* @example
* // returns { 'line-height': '42' }
* StyleToObject('line-height: 42;');
*
* @param {String} style - The inline style.
* @param {Function} [iterator] - The iterator function.
* @return {null|Object}
*/
function StyleToObject(style, iterator) {
var output = null;
if (!style || typeof style !== 'string') {
return output;
}
var declaration;
var declarations = parse(style);
var hasIterator = typeof iterator === 'function';
var property;
var value;
for (var i = 0, len = declarations.length; i < len; i++) {
declaration = declarations[i];
property = declaration.property;
value = declaration.value;
if (hasIterator) {
iterator(property, value, declaration);
} else if (value) {
output || (output = {});
output[property] = value;
}
}
return output;
}
module.exports = StyleToObject;
module.exports.default = StyleToObject; // ESM support