Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
babel-plugin-transform-react-auto-add-display-name
Advanced tools
automatic add display name for react component
This plugin add displayName
to various form of react component definition, including ES6 class, createReactClass
calls, stateless functions (both function
and arrow).
npm install --save-dev babel-plugin-react-add-display-name
.babelrc
(Recommended).babelrc
{
"plugins": ["react-add-display-name"]
}
$ babel --plugins react-add-display-name script.js
require("babel-core").transform("code", {
plugins: ["react-add-display-name"]
});
For createReactClass
or createClass
calls, the variable name becomes displayName
:
let Foo = createReactClass({
// ...
});
Becomes
let Foo = createReactClass({
displayName: 'Foo',
// ...
});
For named classes, class name becomes displayName
, all classes with a render
method whose function body contains jsx expression are recgonized as component class:
class Foo extends Component {
render() {
return <div></div>;
}
}
let Alice = class Bob extends Component {
render() {
return <div></div>;
}
}
Becomes
class Foo extends Component {
render() {
return <div></div>;
}
}
Foo.displayName = 'Foo';
let Alice = class Bob extends Component {
render() {
return <div></div>;
}
}
Alice.displayName = 'Bob';
For anonymouse classes, the variable name becomes displayName
:
let Foo = class extends Component {
render() {
return <div></div>;
}
}
Becomes
let Foo = class extends Component {
render() {
return <div></div>;
}
}
Foo.displayName = 'Foo';
For stateless component defined via named functions (both function declarations and expressions), the function name becomes displayName
:
function Foo() {
return <div></div>;
}
let Alice = function Bob() {
return <div></div>;
};
Becomes
function Foo() {
return <div></div>;
}
Foo.displayName = 'Foo';
let Alice = function Bob() {
return <div></div>;
};
Alice.displayName = 'Bob';
For anonymous functions or arrow functions, the variable name becomes displayName
:
let Foo = function () {
return <div></div>;
};
let Bar = () => <div></div>;
Becomes
let Foo = function () {
return <div></div>;
};
Foo.displayName = 'Foo';
let Bar = () => <div></div>;
Bar.displayName = 'Bar';
For other cases where there is no explicit hint of displayName
, this plugin will not add displayName
to component.
FAQs
automatic add display name for react component
The npm package babel-plugin-transform-react-auto-add-display-name receives a total of 184 weekly downloads. As such, babel-plugin-transform-react-auto-add-display-name popularity was classified as not popular.
We found that babel-plugin-transform-react-auto-add-display-name demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.