UNPKG

bitbox-compiler

Version:

bitbox /unbox

36 lines (25 loc) 4.34 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.parse = parse; exports.default = function (node) { if (node.box === true) return this.tag(node); node.props.scope = '{ box: "' + node.parent.name + '", key: "' + node.parent.key + '" }'; node.body = node.body.replace(/\s+/g, ' ').replace(/\\/g, '\\\\').trim(); var p = _extends({}, node.props); p = p ? '' + this.convertprops(p) : ''; return '$tree.push(style({' + p + '}, `' + node.body + '`));'; }; var CSS_SELECTOR = /(^|\}|\{)\s*([^\{\}]+)\s*[^\$](?=\{)/g; var CSS_COMMENT = /\/\*[^\x00]*?\*\//gm; function parse(tag, style, type) { return style.replace(CSS_COMMENT, '').replace(CSS_SELECTOR, function (m, p1, p2) { return p1 + ' ' + p2.split(/\s*,\s*/g).map(function (sel) { var s = sel.trim().replace(/:box\s*/, '').trim(); return '' + tag + (s && s.indexOf(':') !== 0 && s.indexOf('.') !== 0 && s.indexOf('#') !== 0 ? ' > ' : '') + s + ' '; }).join(','); }).trim(); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2Rlcy9zdHlsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztRQUdnQixLQUFLLEdBQUwsS0FBSzs7a0JBU04sVUFBUyxJQUFJLEVBQUU7O0FBRTdCLEtBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTs7QUFFdEIsS0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFjLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxpQkFBWSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBSyxDQUFBOztBQUU5RSxLQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBOztBQUV4RSxLQUFJLENBQUMsZ0JBQVEsSUFBSSxDQUFDLEtBQUssQ0FBRSxDQUFBO0FBQ3pCLEVBQUMsR0FBRyxDQUFDLFFBQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBUSxDQUFBOztBQUV4QywrQkFBNkIsQ0FBQyxZQUFVLElBQUksQ0FBQyxJQUFJLFVBQVE7Q0FFekQ7O0FBMUJELElBQU0sWUFBWSxHQUFHLHVDQUF1QyxDQUFBO0FBQzVELElBQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFBOztBQUVsQyxTQUFTLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN2QyxRQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUMvRSxTQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxHQUFHLEVBQUU7QUFDeEQsT0FBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDaEQsZUFBVyxHQUFHLElBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUEsR0FBSyxDQUFDLE9BQUk7R0FDbkgsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtFQUNaLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtDQUNUIiwiZmlsZSI6InN0eWxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ1NTX1NFTEVDVE9SID0gLyhefFxcfXxcXHspXFxzKihbXlxce1xcfV0rKVxccypbXlxcJF0oPz1cXHspL2dcbmNvbnN0IENTU19DT01NRU5UID0gL1xcL1xcKlteXFx4MDBdKj9cXCpcXC8vZ21cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHRhZywgc3R5bGUsIHR5cGUpIHtcblx0cmV0dXJuIHN0eWxlLnJlcGxhY2UoQ1NTX0NPTU1FTlQsICcnKS5yZXBsYWNlKENTU19TRUxFQ1RPUiwgZnVuY3Rpb24obSwgcDEsIHAyKSB7XG5cdFx0cmV0dXJuIHAxICsgJyAnICsgcDIuc3BsaXQoL1xccyosXFxzKi9nKS5tYXAoZnVuY3Rpb24oc2VsKSB7XG5cdFx0XHR2YXIgcyA9IHNlbC50cmltKCkucmVwbGFjZSgvOmJveFxccyovLCAnJykudHJpbSgpXG5cdFx0XHRyZXR1cm4gYCR7IHRhZyB9JHsgcyAmJiBzLmluZGV4T2YoJzonKSAhPT0gMCAmJiBzLmluZGV4T2YoJy4nKSAhPT0gMCAmJiBzLmluZGV4T2YoJyMnKSAhPT0gMCA/ICcgPiAnIDogJycgfSR7IHMgfSBgXG5cdFx0fSkuam9pbignLCcpXG5cdH0pLnRyaW0oKVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihub2RlKSB7XG5cblx0aWYgKG5vZGUuYm94ID09PSB0cnVlKVxuXHRcdHJldHVybiB0aGlzLnRhZyhub2RlKVxuXG5cdG5vZGUucHJvcHMuc2NvcGUgPSBgeyBib3g6IFwiJHtub2RlLnBhcmVudC5uYW1lfVwiLCBrZXk6IFwiJHtub2RlLnBhcmVudC5rZXl9XCIgfWBcblxuXHRub2RlLmJvZHkgPSBub2RlLmJvZHkucmVwbGFjZSgvXFxzKy9nLCAnICcpLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJykudHJpbSgpXG5cblx0bGV0IHAgPSB7IC4uLm5vZGUucHJvcHMgfVxuXHRwID0gcCA/IGAkeyB0aGlzLmNvbnZlcnRwcm9wcyhwKSB9YCA6IGBgXG5cblx0cmV0dXJuIGAkdHJlZS5wdXNoKHN0eWxlKHskeyBwIH19LCBcXGAkeyBub2RlLmJvZHkgfVxcYCkpO2BcblxufVxuIl19