New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

babel-plugin-react-generate-property-rework-proposal

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-react-generate-property-rework-proposal

A plugin to automatically generate properties (for example data attributes) for all JSX open tags, using user specified convention

  • 1.0.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

babel-plugin-react-generate-property

Overview

A plugin to automatically generate and add properties (for example data attributes) for all JSX open tags, especially styled components (Emotion, Styled Components, etc). This is useful for a couple places:

  • End to End test, if you don't want to manually add data attributes or classnames to all tags.
  • Third party usage tracking tools like Heap, where they can pick up data attributes.

Before

// src/client/Components/Common/Header.jsx
<View>
  <Logo>...</Logo>
  <Content>...</Content>
</View>

const View = styled('div')(...);
const Logo = styled('div')(...);
const Content = styled('div')(...);

Generated

// src/client/Components/Common/Header.jsx
// using options (customProperty: 'data-test', dirLevel: 1)
<View data-test="Common_Header_View">
  <Logo data-test="Common_Header_Logo">...</Logo>
  <Content data-test="Common_Header_Content">...</Content>
</View>

const View = styled('div')(...);
const Logo = styled('div')(...);
const Content = styled('div')(...);

Installation

Available on npm as babel-plugin-react-generate-property.

To install the latest stable version with Yarn:

$ yarn add --dev babel-plugin-react-generate-property

...or with npm:

$ npm install --save-dev babel-plugin-react-generate-property

Usage (via .babelrc)

// .babelrc

{
  "env": {
    "development": {
      "plugins": ["react-generate-data-id"]
    }
  }
}

Custom options

// .babelrc
{
  "env": {
    "development": {
      "plugins": [["react-generate-data-id", { "customProperty": "data-dev", "dirLevel": 2, "slashChar": "\" }]]
    }
  }
}

customProperty Use this to configure which property to add to open tags. By default it would be "data-id".

dirLevel How many levels of the file directory do you want to use for the property value. If you use more, the generated value is more likely to be unique, but you will also incur slightly larger builds. Default to 1 (append only the directory where the target file is located in)

slashChar Default to "/", if you are on Windows, use "".

Via CLI

babel --plugins react-generate-data-id script.js

Via Node API

without options:

require('babel-core').transform('code', {
  plugins: ['react-generate-data-id'],
});

with options:

require('babel-core').transform('code', {
  plugins: [['react-generate-data-id', { customProperty: 'data-test' }]],
});

Contributing

This library gets reference and inspiration from https://github.com/alanbsmith/babel-plugin-react-add-property/blob/master/README.md, all requests and comments are welcome.

License

[MIT][license]

Keywords

FAQs

Package last updated on 05 Dec 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