Skip to content

Latest commit

 

History

History
97 lines (77 loc) · 3.96 KB

File metadata and controls

97 lines (77 loc) · 3.96 KB

Build Status Coverage Status npm version npm downloads Dependency Status devDependency Status JavaScript Style Guide Sponsored by Leonidas Greenkeeper badge Maintainability

babel-plugin-rename-assigned-properties

Rename and add aliases for object properties that are being assigned a value

Installation

# With npm
$ npm install babel-plugin-rename-assigned-properties --save-dev

# With yarn 
$ yarn add babel-plugin-rename-assigned-properties --dev

Tested to work with Node >= 0.10

Usage

Options

  • renames: objects and their properties with new names. See below examples.
  • process: inline | post (default is inline). inline: The transformation processing is going to be done during the babel's one-time traversal. post: Transformation is done as an extra post traversal phase. Babel traverses program only once and the default inline option will do the transformation during that cycle just like any normal plugin would do. However, you might use other plugins that inject new code that does not get traversed, so for those situations you can define post to get that new code also processed by this plugin. You can also specify both values to get both behaviours.

Example via .babelrc

Transform objectName.propertyName = value to objectName.newName = value

{
  "plugins": [
    ["rename-assigned-properties", {
      "renames": {
        "objectName": {
          "propertyName": "newName"
        }
      }
    }]
  ]
}

More examples via .babelrc

You can also add aliases for properties by providing array of new names. Those will be transformed to chained assignments. It is also possible to specify transformation to be done as a separate post step (see options above).

Transform rapper.coolio = gfunc to rapper.ArtisLeonIveyJr = rapper.C = rapper.Coolio = gfunc

{
  "plugins": [
    ["rename-assigned-properties", {
      "renames": {
        "rapper": {
          "coolio": ["Coolio", "C", "ArtisLeonIveyJr"]
        }
      },
      "process": "post"
    }]
  ]
}

Via Node API

require("babel-core").transform("code", {
  plugins: [
    ["rename-assigned-properties", {
      "renames": {
        "objectName": {
          "propertyName": "newName"
        }
      }
    }]
  ]
});

Sponsors

Leonidas