@babel/plugin-transform-react-constant-elements
Advanced tools
Comparing version 7.22.5 to 8.0.0-alpha.0
@@ -1,10 +0,5 @@ | ||
"use strict"; | ||
import { declare } from '@babel/helper-plugin-utils'; | ||
import { types, template } from '@babel/core'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _helperPluginUtils = require("@babel/helper-plugin-utils"); | ||
var _core = require("@babel/core"); | ||
var _default = (0, _helperPluginUtils.declare)((api, options) => { | ||
var index = declare((api, options) => { | ||
api.assertVersion(7); | ||
@@ -19,9 +14,9 @@ const { | ||
function declares(node, scope) { | ||
if (_core.types.isJSXIdentifier(node, { | ||
if (types.isJSXIdentifier(node, { | ||
name: "this" | ||
}) || _core.types.isJSXIdentifier(node, { | ||
}) || types.isJSXIdentifier(node, { | ||
name: "arguments" | ||
}) || _core.types.isJSXIdentifier(node, { | ||
}) || types.isJSXIdentifier(node, { | ||
name: "super" | ||
}) || _core.types.isJSXIdentifier(node, { | ||
}) || types.isJSXIdentifier(node, { | ||
name: "new" | ||
@@ -67,3 +62,2 @@ })) { | ||
enter(path, state) { | ||
var _expressionResult$deo; | ||
const stop = () => { | ||
@@ -116,3 +110,3 @@ state.isImmutable = false; | ||
} | ||
} else if ((_expressionResult$deo = expressionResult.deopt) != null && _expressionResult$deo.isIdentifier()) { | ||
} else if (expressionResult.deopt?.isIdentifier()) { | ||
return; | ||
@@ -128,3 +122,2 @@ } | ||
JSXElement(path) { | ||
var _jsxScope; | ||
if (HOISTED.has(path.node)) return; | ||
@@ -135,3 +128,3 @@ const name = path.node.openingElement.name; | ||
let lastSegment = name; | ||
while (_core.types.isJSXMemberExpression(lastSegment)) { | ||
while (types.isJSXMemberExpression(lastSegment)) { | ||
lastSegment = lastSegment.property; | ||
@@ -148,3 +141,3 @@ } | ||
} | ||
(_jsxScope = jsxScope) != null ? _jsxScope : jsxScope = path.scope; | ||
jsxScope ??= path.scope; | ||
HOISTED.set(path.node, jsxScope); | ||
@@ -172,10 +165,10 @@ const visitorState = { | ||
targetScope.push({ | ||
id: _core.types.identifier(id) | ||
id: types.identifier(id) | ||
}); | ||
HOISTED.set(path.node, targetScope); | ||
let replacement = _core.template.expression.ast` | ||
${_core.types.identifier(id)} || (${_core.types.identifier(id)} = ${path.node}) | ||
let replacement = template.expression.ast` | ||
${types.identifier(id)} || (${types.identifier(id)} = ${path.node}) | ||
`; | ||
if (path.parentPath.isJSXElement() || path.parentPath.isJSXAttribute()) { | ||
replacement = _core.types.jsxExpressionContainer(replacement); | ||
replacement = types.jsxExpressionContainer(replacement); | ||
} | ||
@@ -187,4 +180,4 @@ path.replaceWith(replacement); | ||
}); | ||
exports.default = _default; | ||
export { index as default }; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@babel/plugin-transform-react-constant-elements", | ||
"version": "7.22.5", | ||
"version": "8.0.0-alpha.0", | ||
"description": "Treat React JSX elements as value types and hoist them to the highest scope", | ||
@@ -20,16 +20,20 @@ "repository": { | ||
"dependencies": { | ||
"@babel/helper-plugin-utils": "^7.22.5" | ||
"@babel/helper-plugin-utils": "^8.0.0-alpha.0" | ||
}, | ||
"peerDependencies": { | ||
"@babel/core": "^7.0.0-0" | ||
"@babel/core": "^8.0.0-alpha.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.22.5", | ||
"@babel/helper-plugin-test-runner": "^7.22.5" | ||
"@babel/core": "^8.0.0-alpha.0", | ||
"@babel/helper-plugin-test-runner": "^8.0.0-alpha.0" | ||
}, | ||
"engines": { | ||
"node": ">=6.9.0" | ||
"node": "^16.20.0 || ^18.16.0 || >=20.0.0" | ||
}, | ||
"author": "The Babel Team (https://babel.dev/team)", | ||
"type": "commonjs" | ||
"exports": { | ||
".": "./lib/index.js", | ||
"./package.json": "./package.json" | ||
}, | ||
"type": "module" | ||
} |
@@ -5,3 +5,3 @@ # @babel/plugin-transform-react-constant-elements | ||
See our website [@babel/plugin-transform-react-constant-elements](https://babeljs.io/docs/en/babel-plugin-transform-react-constant-elements) for more information. | ||
See our website [@babel/plugin-transform-react-constant-elements](https://babeljs.io/docs/babel-plugin-transform-react-constant-elements) for more information. | ||
@@ -8,0 +8,0 @@ ## Install |
Sorry, the diff of this file is not supported yet
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
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
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
23897
Yes
173
1
+ Added@babel/code-frame@8.0.0-alpha.12(transitive)
+ Added@babel/compat-data@8.0.0-alpha.12(transitive)
+ Added@babel/core@8.0.0-alpha.12(transitive)
+ Added@babel/generator@8.0.0-alpha.12(transitive)
+ Added@babel/helper-compilation-targets@8.0.0-alpha.12(transitive)
+ Added@babel/helper-plugin-utils@8.0.0-alpha.12(transitive)
+ Added@babel/helper-string-parser@8.0.0-alpha.12(transitive)
+ Added@babel/helper-validator-identifier@8.0.0-alpha.12(transitive)
+ Added@babel/helper-validator-option@8.0.0-alpha.12(transitive)
+ Added@babel/helpers@8.0.0-alpha.12(transitive)
+ Added@babel/highlight@8.0.0-alpha.12(transitive)
+ Added@babel/parser@8.0.0-alpha.12(transitive)
+ Added@babel/template@8.0.0-alpha.12(transitive)
+ Added@babel/traverse@8.0.0-alpha.12(transitive)
+ Added@babel/types@8.0.0-alpha.12(transitive)
+ Addedglobals@15.9.0(transitive)
+ Addedjs-tokens@8.0.3(transitive)
+ Addedjsesc@3.0.2(transitive)
+ Addedlru-cache@7.18.3(transitive)
+ Addedsemver@7.6.3(transitive)
+ Addedto-fast-properties@3.0.1(transitive)
- Removed@babel/code-frame@7.24.7(transitive)
- Removed@babel/compat-data@7.25.4(transitive)
- Removed@babel/core@7.25.2(transitive)
- Removed@babel/generator@7.25.6(transitive)
- Removed@babel/helper-compilation-targets@7.25.2(transitive)
- Removed@babel/helper-module-imports@7.24.7(transitive)
- Removed@babel/helper-module-transforms@7.25.2(transitive)
- Removed@babel/helper-plugin-utils@7.24.8(transitive)
- Removed@babel/helper-simple-access@7.24.7(transitive)
- Removed@babel/helper-string-parser@7.24.8(transitive)
- Removed@babel/helper-validator-identifier@7.24.7(transitive)
- Removed@babel/helper-validator-option@7.24.8(transitive)
- Removed@babel/helpers@7.25.6(transitive)
- Removed@babel/highlight@7.24.7(transitive)
- Removed@babel/parser@7.25.6(transitive)
- Removed@babel/template@7.25.0(transitive)
- Removed@babel/traverse@7.25.6(transitive)
- Removed@babel/types@7.25.6(transitive)
- Removedansi-styles@3.2.1(transitive)
- Removedchalk@2.4.2(transitive)
- Removedcolor-convert@1.9.3(transitive)
- Removedcolor-name@1.1.3(transitive)
- Removedescape-string-regexp@1.0.5(transitive)
- Removedglobals@11.12.0(transitive)
- Removedhas-flag@3.0.0(transitive)
- Removedjs-tokens@4.0.0(transitive)
- Removedjsesc@2.5.2(transitive)
- Removedlru-cache@5.1.1(transitive)
- Removedsemver@6.3.1(transitive)
- Removedsupports-color@5.5.0(transitive)
- Removedto-fast-properties@2.0.0(transitive)
- Removedyallist@3.1.1(transitive)