Socket
Socket
Sign inDemoInstall

@vitejs/plugin-react

Package Overview
Dependencies
Maintainers
4
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vitejs/plugin-react - npm Package Compare versions

Comparing version 1.3.1 to 1.3.2

src/jsx-runtime/restore-jsx.spec.ts

14

dist/index.js

@@ -295,7 +295,14 @@ var __create = Object.create;

}
const reactJsxRE = new RegExp("\\b" + reactAlias + "\\.(createElement|Fragment)\\b", "g");
let hasCompiledJsx = false;
code = code.replace(reactJsxRE, (_, prop) => {
const fragmentPattern = `\\b${reactAlias}\\.Fragment\\b`;
const createElementPattern = `\\b${reactAlias}\\.createElement\\(\\s*([A-Z"'][\\w$.]*["']?)`;
code = code.replace(new RegExp(fragmentPattern, "g"), () => {
hasCompiledJsx = true;
return "React." + prop;
return "React.Fragment";
}).replace(new RegExp(createElementPattern, "g"), (original, component) => {
if (/^[a-z][\w$]*$/.test(component)) {
return original;
}
hasCompiledJsx = true;
return "React.createElement(" + (component === "Fragment" ? "React.Fragment" : component);
});

@@ -305,3 +312,2 @@ if (!hasCompiledJsx) {

}
code = code.replace(/createElement\(Fragment,/g, "createElement(React.Fragment,");
babelRestoreJSX || (babelRestoreJSX = Promise.resolve().then(() => (init_babel_restore_jsx(), babel_restore_jsx_exports)));

@@ -308,0 +314,0 @@ const result = await babel2.transformAsync(code, {

{
"name": "@vitejs/plugin-react",
"version": "1.3.1",
"version": "1.3.2",
"license": "MIT",

@@ -36,3 +36,3 @@ "author": "Evan You",

"dependencies": {
"@babel/core": "^7.17.9",
"@babel/core": "^7.17.10",
"@babel/plugin-transform-react-jsx": "^7.17.3",

@@ -42,6 +42,6 @@ "@babel/plugin-transform-react-jsx-development": "^7.16.7",

"@babel/plugin-transform-react-jsx-source": "^7.16.7",
"@rollup/pluginutils": "^4.2.0",
"react-refresh": "^0.12.0",
"@rollup/pluginutils": "^4.2.1",
"react-refresh": "^0.13.0",
"resolve": "^1.22.0"
}
}

@@ -23,2 +23,3 @@ import type * as babelCore from '@babel/core'

const [reactAlias, isCommonJS] = parseReactAlias(code)
if (!reactAlias) {

@@ -28,14 +29,29 @@ return jsxNotFound

const reactJsxRE = new RegExp(
'\\b' + reactAlias + '\\.(createElement|Fragment)\\b',
'g'
)
let hasCompiledJsx = false
code = code.replace(reactJsxRE, (_, prop) => {
hasCompiledJsx = true
// Replace with "React" so JSX can be reverse compiled.
return 'React.' + prop
})
const fragmentPattern = `\\b${reactAlias}\\.Fragment\\b`
const createElementPattern = `\\b${reactAlias}\\.createElement\\(\\s*([A-Z"'][\\w$.]*["']?)`
// Replace the alias with "React" so JSX can be reverse compiled.
code = code
.replace(new RegExp(fragmentPattern, 'g'), () => {
hasCompiledJsx = true
return 'React.Fragment'
})
.replace(new RegExp(createElementPattern, 'g'), (original, component) => {
if (/^[a-z][\w$]*$/.test(component)) {
// Take care not to replace the alias for `createElement` calls whose
// component is a lowercased variable, since the `restoreJSX` Babel
// plugin leaves them untouched.
return original
}
hasCompiledJsx = true
return (
'React.createElement(' +
// Assume `Fragment` is equivalent to `React.Fragment` so modules
// that use `import {Fragment} from 'react'` are reverse compiled.
(component === 'Fragment' ? 'React.Fragment' : component)
)
})
if (!hasCompiledJsx) {

@@ -45,8 +61,2 @@ return jsxNotFound

// Support modules that use `import {Fragment} from 'react'`
code = code.replace(
/createElement\(Fragment,/g,
'createElement(React.Fragment,'
)
babelRestoreJSX ||= import('./babel-restore-jsx')

@@ -53,0 +63,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc