Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

babel-plugin-transform-react-auto-add-display-name

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-transform-react-auto-add-display-name

automatic add display name for react component

  • 1.0.1
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

babel-plugin-react-add-display-name

This plugin add displayName to various form of react component definition, including ES6 class, createReactClass calls, stateless functions (both function and arrow).

Install

npm install --save-dev babel-plugin-react-add-display-name

Usage

.babelrc

{
  "plugins": ["react-add-display-name"]
}

Via CLI

$ babel --plugins react-add-display-name script.js

Via Node API

require("babel-core").transform("code", {
  plugins: ["react-add-display-name"]
});

Source of displayName

  • 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

Package last updated on 20 Apr 2020

Did you know?

Socket

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.

Install

Related posts

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