style-to-object
Version:
Parse CSS inline style to JavaScript object.
36 lines (35 loc) • 976 B
JavaScript
import parse from "inline-style-parser";
//#region src/index.ts
/**
* Parses inline style to object.
*
* @param style - Inline style.
* @param iterator - Iterator.
* @returns - Style object or null.
*
* @example Parsing inline style to object:
*
* ```js
* import parse from 'style-to-object';
* parse('line-height: 42;'); // { 'line-height': '42' }
* ```
*/
function StyleToObject(style, iterator) {
let styleObject = null;
if (!style || typeof style !== "string") return styleObject;
const declarations = parse(style);
const hasIterator = typeof iterator === "function";
declarations.forEach((declaration) => {
if (declaration.type !== "declaration") return;
const { property, value } = declaration;
if (hasIterator) iterator(property, value, declaration);
else if (value) {
styleObject = styleObject ?? {};
styleObject[property] = value;
}
});
return styleObject;
}
//#endregion
export { StyleToObject as default };
//# sourceMappingURL=index.mjs.map