@babel/traverse
Advanced tools
Comparing version 7.8.6 to 7.9.0
@@ -33,33 +33,139 @@ "use strict"; | ||
function gatherNodeParts(node, parts) { | ||
if (t.isModuleDeclaration(node)) { | ||
if (node.source) { | ||
gatherNodeParts(node.source, parts); | ||
} else if (node.specifiers && node.specifiers.length) { | ||
for (const specifier of node.specifiers) { | ||
gatherNodeParts(specifier, parts); | ||
switch (node == null ? void 0 : node.type) { | ||
default: | ||
if (t.isModuleDeclaration(node)) { | ||
if (node.source) { | ||
gatherNodeParts(node.source, parts); | ||
} else if (node.specifiers && node.specifiers.length) { | ||
for (const e of node.specifiers) gatherNodeParts(e, parts); | ||
} else if (node.declaration) { | ||
gatherNodeParts(node.declaration, parts); | ||
} | ||
} else if (t.isModuleSpecifier(node)) { | ||
gatherNodeParts(node.local, parts); | ||
} else if (t.isLiteral(node)) { | ||
parts.push(node.value); | ||
} | ||
} else if (node.declaration) { | ||
gatherNodeParts(node.declaration, parts); | ||
} | ||
} else if (t.isModuleSpecifier(node)) { | ||
gatherNodeParts(node.local, parts); | ||
} else if (t.isMemberExpression(node)) { | ||
gatherNodeParts(node.object, parts); | ||
gatherNodeParts(node.property, parts); | ||
} else if (t.isIdentifier(node)) { | ||
parts.push(node.name); | ||
} else if (t.isLiteral(node)) { | ||
parts.push(node.value); | ||
} else if (t.isCallExpression(node)) { | ||
gatherNodeParts(node.callee, parts); | ||
} else if (t.isObjectExpression(node) || t.isObjectPattern(node)) { | ||
for (const prop of node.properties) { | ||
gatherNodeParts(prop.key || prop.argument, parts); | ||
} | ||
} else if (t.isPrivateName(node)) { | ||
gatherNodeParts(node.id, parts); | ||
} else if (t.isThisExpression(node)) { | ||
parts.push("this"); | ||
} else if (t.isSuper(node)) { | ||
parts.push("super"); | ||
break; | ||
case "MemberExpression": | ||
case "OptionalMemberExpression": | ||
case "JSXMemberExpression": | ||
gatherNodeParts(node.object, parts); | ||
gatherNodeParts(node.property, parts); | ||
break; | ||
case "Identifier": | ||
case "JSXIdentifier": | ||
parts.push(node.name); | ||
break; | ||
case "CallExpression": | ||
case "OptionalCallExpression": | ||
case "NewExpression": | ||
gatherNodeParts(node.callee, parts); | ||
break; | ||
case "ObjectExpression": | ||
case "ObjectPattern": | ||
for (const e of node.properties) { | ||
gatherNodeParts(e, parts); | ||
} | ||
break; | ||
case "SpreadElement": | ||
case "RestElement": | ||
gatherNodeParts(node.argument, parts); | ||
break; | ||
case "ObjectProperty": | ||
case "ObjectMethod": | ||
case "ClassProperty": | ||
case "ClassMethod": | ||
case "ClassPrivateProperty": | ||
case "ClassPrivateMethod": | ||
gatherNodeParts(node.key, parts); | ||
break; | ||
case "ThisExpression": | ||
parts.push("this"); | ||
break; | ||
case "Super": | ||
parts.push("super"); | ||
break; | ||
case "Import": | ||
parts.push("import"); | ||
break; | ||
case "DoExpression": | ||
parts.push("do"); | ||
break; | ||
case "YieldExpression": | ||
parts.push("yield"); | ||
gatherNodeParts(node.argument, parts); | ||
break; | ||
case "AwaitExpression": | ||
parts.push("await"); | ||
gatherNodeParts(node.argument, parts); | ||
break; | ||
case "AssignmentExpression": | ||
gatherNodeParts(node.left, parts); | ||
break; | ||
case "VariableDeclarator": | ||
gatherNodeParts(node.id, parts); | ||
break; | ||
case "FunctionExpression": | ||
case "FunctionDeclaration": | ||
case "ClassExpression": | ||
case "ClassDeclaration": | ||
gatherNodeParts(node.id, parts); | ||
break; | ||
case "PrivateName": | ||
gatherNodeParts(node.id, parts); | ||
break; | ||
case "ParenthesizedExpression": | ||
gatherNodeParts(node.expression, parts); | ||
break; | ||
case "UnaryExpression": | ||
case "UpdateExpression": | ||
gatherNodeParts(node.argument, parts); | ||
break; | ||
case "MetaProperty": | ||
gatherNodeParts(node.meta, parts); | ||
gatherNodeParts(node.property, parts); | ||
break; | ||
case "JSXElement": | ||
gatherNodeParts(node.openingElement, parts); | ||
break; | ||
case "JSXOpeningElement": | ||
parts.push(node.name); | ||
break; | ||
case "JSXFragment": | ||
gatherNodeParts(node.openingFragment, parts); | ||
break; | ||
case "JSXOpeningFragment": | ||
parts.push("Fragment"); | ||
break; | ||
case "JSXNamespacedName": | ||
gatherNodeParts(node.namespace, parts); | ||
gatherNodeParts(node.name, parts); | ||
break; | ||
} | ||
@@ -244,13 +350,3 @@ } | ||
generateUidBasedOnNode(parent, defaultName) { | ||
let node = parent; | ||
if (t.isAssignmentExpression(parent)) { | ||
node = parent.left; | ||
} else if (t.isVariableDeclarator(parent)) { | ||
node = parent.id; | ||
} else if (t.isObjectProperty(node) || t.isObjectMethod(node)) { | ||
node = node.key; | ||
} | ||
generateUidBasedOnNode(node, defaultName) { | ||
const parts = []; | ||
@@ -263,4 +359,4 @@ gatherNodeParts(node, parts); | ||
generateUidIdentifierBasedOnNode(parent, defaultName) { | ||
return t.identifier(this.generateUidBasedOnNode(parent, defaultName)); | ||
generateUidIdentifierBasedOnNode(node, defaultName) { | ||
return t.identifier(this.generateUidBasedOnNode(node, defaultName)); | ||
} | ||
@@ -267,0 +363,0 @@ |
{ | ||
"name": "@babel/traverse", | ||
"version": "7.8.6", | ||
"version": "7.9.0", | ||
"description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", | ||
@@ -15,7 +15,7 @@ "author": "Sebastian McKenzie <sebmck@gmail.com>", | ||
"@babel/code-frame": "^7.8.3", | ||
"@babel/generator": "^7.8.6", | ||
"@babel/generator": "^7.9.0", | ||
"@babel/helper-function-name": "^7.8.3", | ||
"@babel/helper-split-export-declaration": "^7.8.3", | ||
"@babel/parser": "^7.8.6", | ||
"@babel/types": "^7.8.6", | ||
"@babel/parser": "^7.9.0", | ||
"@babel/types": "^7.9.0", | ||
"debug": "^4.1.0", | ||
@@ -28,3 +28,3 @@ "globals": "^11.1.0", | ||
}, | ||
"gitHead": "750d3dde3bd2d390819820fd22c05441da78751b" | ||
"gitHead": "8d5e422be27251cfaadf8dd2536b31b4a5024b02" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
155868
4353
Updated@babel/generator@^7.9.0
Updated@babel/parser@^7.9.0
Updated@babel/types@^7.9.0