UNPKG

ezcss

Version:
50 lines (49 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require("./util"); var atoms_1 = require("./atoms"); var interpolateSelectors_1 = require("./interpolateSelectors"); /** * Converts external POJSO IStyles style description into internal stylesheet AST representation. * @param {TStyles} pojso * @returns {Array} */ var toStyleSheet = function (pojso) { var stylesheet = []; for (var selector in pojso) { var values = pojso[selector]; // Atrule: @media, @keyframe, ... if (selector[0] === '@') { stylesheet.push({ type: 'Atrule', prelude: selector, rules: toStyleSheet(values), }); continue; } var selectors = selector.split(','); var styles = values; var declarations = []; var rule = [selector, declarations]; for (var prop in styles) { var value = styles[prop]; switch (typeof value) { case 'string': case 'number': prop = atoms_1.default[prop] || util_1.kebabCase(prop); declarations.push([prop, value]); break; case 'object': { var selectorsInterpolated = interpolateSelectors_1.default(selectors, prop); stylesheet = stylesheet.concat(toStyleSheet((_a = {}, _a[selectorsInterpolated] = value, _a))); break; } } } if (declarations.length) stylesheet.push(rule); } return stylesheet; var _a; }; exports.default = toStyleSheet;