UNPKG

siphon-cli

Version:

Simple bundler for web applications. 📦🔧🧡

46 lines (45 loc) • 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var types_1 = require("../../../../../types"); var creator_1 = require("../helpers/creator"); function rewrite_destructured_variables(node, path) { for (var i = 0; node.declarations[i]; i++) { var dec = node.declarations[i]; if (dec.id instanceof types_1.ObjectPattern) { var settlerObject = (0, creator_1.newIdentifier)("_s" + (Math.random() * 10).toPrecision(1) + Math.random().toString(16).slice(11) + "$$_"); for (var j = 0; dec.id.properties[j]; j++) { var property = dec.id.properties[j]; if (!property.computed && property.value instanceof types_1.Identifier) { var newDec = new types_1.VariableDeclarator(dec.loc.start); newDec.id = (0, creator_1.newIdentifier)(property.value.name); newDec.init = (0, creator_1.memberExpression)(settlerObject, property.key); newDec.loc.end = dec.loc.end; node.declarations.push(newDec); } } dec.id = settlerObject; } else if (dec.id instanceof types_1.ArrayPattern) { var k = 0; var settlerObject = (0, creator_1.newIdentifier)("_si" + (Math.random() * 10).toPrecision(1) + Math.random().toString(16).slice(8) + "$$_"); for (var j = 0; dec.id.elements[j]; j++) { var element = dec.id.elements[j]; if (element instanceof types_1.Identifier) { var newDec = new types_1.VariableDeclarator(dec.loc.start); newDec.id = (0, creator_1.newIdentifier)(element.name); newDec.init = (0, creator_1.memberExpression)(settlerObject, (0, creator_1.numberLiteral)(k++), true); node.declarations.push(newDec); } } dec.id = settlerObject; } } return node; } exports.default = rewrite_destructured_variables;