import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js' import {strlen} from './Utility.js' /** * @param {object[]} children * @param {function} callback * @return {string} */ export function serialize (children, callback) { var output = '' for (var i = 0; i < children.length; i++) output += callback(children[i], i, children, callback) || '' return output } /** * @param {object} element * @param {number} index * @param {object[]} children * @param {function} callback * @return {string} */ export function stringify (element, index, children, callback) { switch (element.type) { case LAYER: if (element.children.length) break case IMPORT: case DECLARATION: return element.return = element.return || element.value case COMMENT: return '' case KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}' case RULESET: if (!strlen(element.value = element.props.join(','))) return '' } return strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : '' }