diff options
Diffstat (limited to 'node_modules/babel-helper-explode-assignable-expression')
4 files changed, 121 insertions, 0 deletions
diff --git a/node_modules/babel-helper-explode-assignable-expression/.npmignore b/node_modules/babel-helper-explode-assignable-expression/.npmignore new file mode 100644 index 0000000..47cdd2c --- /dev/null +++ b/node_modules/babel-helper-explode-assignable-expression/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/node_modules/babel-helper-explode-assignable-expression/README.md b/node_modules/babel-helper-explode-assignable-expression/README.md new file mode 100644 index 0000000..d8d90ae --- /dev/null +++ b/node_modules/babel-helper-explode-assignable-expression/README.md @@ -0,0 +1,5 @@ +# babel-helper-explode-assignable-expression + +## Usage + +TODO diff --git a/node_modules/babel-helper-explode-assignable-expression/lib/index.js b/node_modules/babel-helper-explode-assignable-expression/lib/index.js new file mode 100644 index 0000000..3604315 --- /dev/null +++ b/node_modules/babel-helper-explode-assignable-expression/lib/index.js @@ -0,0 +1,72 @@ +"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"];
\ No newline at end of file diff --git a/node_modules/babel-helper-explode-assignable-expression/package.json b/node_modules/babel-helper-explode-assignable-expression/package.json new file mode 100644 index 0000000..4cf74a0 --- /dev/null +++ b/node_modules/babel-helper-explode-assignable-expression/package.json @@ -0,0 +1,41 @@ +{ + "_from": "babel-helper-explode-assignable-expression@^6.24.1", + "_id": "babel-helper-explode-assignable-expression@6.24.1", + "_inBundle": false, + "_integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "_location": "/babel-helper-explode-assignable-expression", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-helper-explode-assignable-expression@^6.24.1", + "name": "babel-helper-explode-assignable-expression", + "escapedName": "babel-helper-explode-assignable-expression", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-helper-builder-binary-assignment-operator-visitor" + ], + "_resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "_shasum": "f25b82cf7dc10433c55f70592d5746400ac22caa", + "_spec": "babel-helper-explode-assignable-expression@^6.24.1", + "_where": "/home/pruss/Dev/3-minute-website/node_modules/babel-helper-builder-binary-assignment-operator-visitor", + "bundleDependencies": false, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "deprecated": false, + "description": "Helper function to explode an assignable expression", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-explode-assignable-expression", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-assignable-expression" + }, + "version": "6.24.1" +} |