UNPKG

css-doodle

Version:

A web component for visual art & creative coding

43 lines (41 loc) 1.25 kB
function generate(token, last) { let result = ''; if (token.type === 'block') { let isInline = Array.isArray(token.value) && token.value[0] && token.value[0].inline; if (token.times) { result += ('@M' + token.times + '(' + token.pureName + '{'); } else { result += token.name + '{'; } if (token.name === 'style') { result += token.value; } else if (Array.isArray(token.value) && token.value.length) { let lastGroup = ''; for (let t of token.value) { result += generate(t, lastGroup); if (t.origin) { lastGroup = t.origin.name.join(','); } } } if (token.times) { result += '})'; } else if (!isInline) { result += '}'; } } else if (token.type === 'statement') { let skip = (token.origin && last === token.origin.name.join(',')); let name = token.origin ? token.origin.name.join(',') : token.name; let value = token.origin ? token.origin.value : token.value; if (!skip) { result += (value && value.type) ? (name + ':' + generate(value)) : (name + ':' + value + ';'); } } return result; } export default function generate_svg_extended(token) { return generate(token).trim(); }