123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- "use strict";
- exports.__esModule = true;
- exports.default = function (node, nodes, file, scope, allowedSingleIdent) {
- var obj = void 0;
- if (t.isIdentifier(node) && allowedSingleIdent) {
- obj = node;
- } else {
- obj = getObjRef(node, nodes, file, scope);
- }
- var ref = void 0,
- uid = void 0;
- if (t.isIdentifier(node)) {
- ref = node;
- uid = obj;
- } else {
- var prop = getPropRef(node, nodes, file, scope);
- var computed = node.computed || t.isLiteral(prop);
- uid = ref = t.memberExpression(obj, prop, computed);
- }
- return {
- uid: uid,
- ref: ref
- };
- };
- var _babelTypes = require("babel-types");
- var t = _interopRequireWildcard(_babelTypes);
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
- function getObjRef(node, nodes, file, scope) {
- var ref = void 0;
- if (t.isSuper(node)) {
- return node;
- } else if (t.isIdentifier(node)) {
- if (scope.hasBinding(node.name)) {
- return node;
- } else {
- ref = node;
- }
- } else if (t.isMemberExpression(node)) {
- ref = node.object;
- if (t.isSuper(ref) || t.isIdentifier(ref) && scope.hasBinding(ref.name)) {
- return ref;
- }
- } else {
- throw new Error("We can't explode this node type " + node.type);
- }
- var temp = scope.generateUidIdentifierBasedOnNode(ref);
- nodes.push(t.variableDeclaration("var", [t.variableDeclarator(temp, ref)]));
- return temp;
- }
- function getPropRef(node, nodes, file, scope) {
- var prop = node.property;
- var key = t.toComputedKey(node, prop);
- if (t.isLiteral(key) && t.isPureish(key)) return key;
- var temp = scope.generateUidIdentifierBasedOnNode(prop);
- nodes.push(t.variableDeclaration("var", [t.variableDeclarator(temp, prop)]));
- return temp;
- }
- module.exports = exports["default"];
|