bitbox-compiler
Version:
bitbox /unbox
31 lines (23 loc) • 4.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (node, meta) {
if (node.attrs.length === 1 && node.attrs[0].key === 'import' && node.attrs[0].type === 'static') {
return 'import \'' + node.attrs[0].value + '\';\n';
}
var keys = Object.keys(node.props);
//if (keys[0].indexOf('-') > -1) keys[0] = `{ ${ camelCase(keys[0]) } }`
var name = (0, _helpers.camelCase)(keys[0]);
var exp = node.attrs.map(function (prop) {
if (prop.type === 'value') return '{ ' + prop.value + ' as ' + (0, _helpers.camelCase)(prop.key) + ' }';else return '' + (0, _helpers.camelCase)(prop.key);
});
var src = node.props.from ? node.props.from : exp[0];
meta[name] = src; //.replace(/['"`]/g, '')
if (src.indexOf('!box') > -1)
// return `` // `// import ${ name } | $.import('${ name }')\n`
return 'import { ' + name + ' } from ' + (node.props.from ? src : 'from \'' + src + '\'') + ';\n';else return 'import ' + exp.join(' ') + ' ' + (node.props.from ? src : 'from \'' + src + '\'') + ';\n';
//return `import ${ exp.join(` `) } ${ node.props.from ? src : `from '${ src }'` };\n`
};
var _helpers = require('../helpers');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2Rlcy9pbXBvcnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O2tCQUVlLFVBQVMsSUFBSSxFQUFFLElBQUksRUFBRTs7QUFFbkMsS0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO0FBQ25DLHVCQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBTztFQUM3Qzs7QUFFRixLQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Ozs7QUFBQSxBQUlsQyxLQUFJLElBQUksR0FBRyx3QkFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTs7QUFFN0IsS0FBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLEVBQUk7QUFDaEMsTUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFDeEIsY0FBYSxJQUFJLENBQUMsS0FBSyxZQUFTLHdCQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBSyxLQUV4RCxZQUFXLHdCQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBRztFQUNsQyxDQUFDLENBQUE7QUFDRixLQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDdEQsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUc7QUFBQSxBQUNoQixLQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDOztBQUUzQix1QkFBbUIsSUFBSSxpQkFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLGVBQWEsR0FBRyxRQUFJLFNBQU0sS0FFbEYsbUJBQWtCLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLGVBQWEsR0FBRyxRQUFJLFNBQU07O0NBR3JGO0FBSHFGO0FBNUJ0RixxQ0FBc0MiLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FtZWxDYXNlIH0gZnJvbSAnLi4vaGVscGVycydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obm9kZSwgbWV0YSkge1xuXG5cdGlmIChub2RlLmF0dHJzLmxlbmd0aCA9PT0gMVxuXHRcdCYmIG5vZGUuYXR0cnNbMF0ua2V5ID09PSAnaW1wb3J0J1xuXHRcdCYmIG5vZGUuYXR0cnNbMF0udHlwZSA9PT0gJ3N0YXRpYycpIHtcblx0XHRcdHJldHVybiBgaW1wb3J0ICckeyBub2RlLmF0dHJzWzBdLnZhbHVlIH0nO1xcbmBcblx0XHR9XG5cblx0bGV0IGtleXMgPSBPYmplY3Qua2V5cyhub2RlLnByb3BzKVxuXG5cdC8vaWYgKGtleXNbMF0uaW5kZXhPZignLScpID4gLTEpIGtleXNbMF0gPSBgeyAkeyBjYW1lbENhc2Uoa2V5c1swXSkgfSB9YFxuXG5cdGxldCBuYW1lID0gY2FtZWxDYXNlKGtleXNbMF0pXG5cblx0bGV0IGV4cCA9IG5vZGUuYXR0cnMubWFwKHByb3AgPT4ge1xuXHRcdGlmIChwcm9wLnR5cGUgPT09ICd2YWx1ZScpXG5cdFx0XHRyZXR1cm4gYHsgJHsgcHJvcC52YWx1ZSB9IGFzICR7IGNhbWVsQ2FzZShwcm9wLmtleSkgfSB9YFxuXHRcdGVsc2Vcblx0XHRcdHJldHVybiBgJHsgY2FtZWxDYXNlKHByb3Aua2V5KSB9YFxuXHR9KVxuXHRjb25zdCBzcmMgPSBub2RlLnByb3BzLmZyb20gPyBub2RlLnByb3BzLmZyb20gOiBleHBbMF1cblx0bWV0YVtuYW1lXSA9IHNyYyAvLy5yZXBsYWNlKC9bJ1wiYF0vZywgJycpXG5cdGlmIChzcmMuaW5kZXhPZignIWJveCcpID4gLTEpXG5cdC8vXHRyZXR1cm4gYGAgLy8gYC8vIGltcG9ydCAkeyBuYW1lIH0gfCAkLmltcG9ydCgnJHsgbmFtZSB9JylcXG5gXG5cdFx0cmV0dXJuIGBpbXBvcnQgeyAke25hbWV9IH0gZnJvbSAkeyBub2RlLnByb3BzLmZyb20gPyBzcmMgOiBgZnJvbSAnJHsgc3JjIH0nYCB9O1xcbmBcblx0ZWxzZVxuXHRcdHJldHVybiBgaW1wb3J0ICR7IGV4cC5qb2luKGAgYCkgfSAkeyBub2RlLnByb3BzLmZyb20gPyBzcmMgOiBgZnJvbSAnJHsgc3JjIH0nYCB9O1xcbmBcblx0Ly9yZXR1cm4gYGltcG9ydCAkeyBleHAuam9pbihgIGApIH0gJHsgbm9kZS5wcm9wcy5mcm9tID8gc3JjIDogYGZyb20gJyR7IHNyYyB9J2AgfTtcXG5gXG5cbn1cbiJdfQ==