@babel/plugin-transform-react-pure-annotations
Advanced tools
Comparing version 7.16.7 to 7.18.0
@@ -14,3 +14,3 @@ "use strict"; | ||
const PURE_CALLS = new Map([["react", ["cloneElement", "createContext", "createElement", "createFactory", "createRef", "forwardRef", "isValidElement", "memo", "lazy"]], ["react-dom", ["createPortal"]]]); | ||
const PURE_CALLS = [["react", new Set(["cloneElement", "createContext", "createElement", "createFactory", "createRef", "forwardRef", "isValidElement", "memo", "lazy"])], ["react-dom", new Set(["createPortal"])]]; | ||
@@ -35,8 +35,8 @@ var _default = (0, _helperPluginUtils.declare)(api => { | ||
function isReactCall(path) { | ||
if (!_core.types.isMemberExpression(path.node.callee)) { | ||
const callee = path.get("callee"); | ||
const calleePath = path.get("callee"); | ||
if (!calleePath.isMemberExpression()) { | ||
for (const [module, methods] of PURE_CALLS) { | ||
for (const method of methods) { | ||
if (callee.referencesImport(module, method)) { | ||
if (calleePath.referencesImport(module, method)) { | ||
return true; | ||
@@ -50,15 +50,12 @@ } | ||
for (const [module, methods] of PURE_CALLS) { | ||
const object = path.get("callee.object"); | ||
const object = calleePath.get("object"); | ||
const callee = calleePath.node; | ||
if (object.referencesImport(module, "default") || object.referencesImport(module, "*")) { | ||
for (const method of methods) { | ||
if (_core.types.isIdentifier(path.node.callee.property, { | ||
name: method | ||
})) { | ||
return true; | ||
} | ||
if (!callee.computed && _core.types.isIdentifier(callee.property)) { | ||
const propertyName = callee.property.name; | ||
for (const [module, methods] of PURE_CALLS) { | ||
if (object.referencesImport(module, "default") || object.referencesImport(module, "*")) { | ||
return methods.has(propertyName); | ||
} | ||
return false; | ||
} | ||
@@ -65,0 +62,0 @@ } |
{ | ||
"name": "@babel/plugin-transform-react-pure-annotations", | ||
"version": "7.16.7", | ||
"version": "7.18.0", | ||
"description": "Mark top-level React method calls as pure for tree shaking", | ||
@@ -20,3 +20,3 @@ "repository": { | ||
"@babel/helper-annotate-as-pure": "^7.16.7", | ||
"@babel/helper-plugin-utils": "^7.16.7" | ||
"@babel/helper-plugin-utils": "^7.17.12" | ||
}, | ||
@@ -27,3 +27,3 @@ "peerDependencies": { | ||
"devDependencies": { | ||
"@babel/core": "^7.16.7", | ||
"@babel/core": "^7.18.0", | ||
"@babel/helper-plugin-test-runner": "^7.16.7" | ||
@@ -30,0 +30,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
46