@babel/generator
Advanced tools
Comparing version 7.17.7 to 7.17.9
@@ -131,5 +131,41 @@ "use strict"; | ||
function isDecoratorMemberExpression(node) { | ||
switch (node.type) { | ||
case "Identifier": | ||
return true; | ||
case "MemberExpression": | ||
return !node.computed && node.property.type === "Identifier" && isDecoratorMemberExpression(node.object); | ||
default: | ||
return false; | ||
} | ||
} | ||
function shouldParenthesizeDecoratorExpression(node) { | ||
if (node.type === "CallExpression") { | ||
node = node.callee; | ||
} | ||
if (node.type === "ParenthesizedExpression") { | ||
return false; | ||
} | ||
return !isDecoratorMemberExpression(node); | ||
} | ||
function Decorator(node) { | ||
this.token("@"); | ||
this.print(node.expression, node); | ||
const { | ||
expression | ||
} = node; | ||
if (shouldParenthesizeDecoratorExpression(expression)) { | ||
this.token("("); | ||
this.print(expression, node); | ||
this.token(")"); | ||
} else { | ||
this.print(expression, node); | ||
} | ||
this.newline(); | ||
@@ -136,0 +172,0 @@ } |
{ | ||
"name": "@babel/generator", | ||
"version": "7.17.7", | ||
"version": "7.17.9", | ||
"description": "Turns an AST into code.", | ||
@@ -28,3 +28,3 @@ "author": "The Babel Team (https://babel.dev/team)", | ||
"@babel/helper-fixtures": "^7.17.0", | ||
"@babel/parser": "^7.17.7", | ||
"@babel/parser": "^7.17.9", | ||
"@jridgewell/trace-mapping": "^0.3.4", | ||
@@ -31,0 +31,0 @@ "@types/jsesc": "^2.5.0", |
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
120106
4283
0