Skip to content

wrwrwr/babel-remove-props

Repository files navigation

babel-remove-props

A Babel transform removing any object properties you tell it to.

Properties in object literals {prop: value} and assignments obj.prop = value are removed. Terms with property access in expressions obj.prop are converted to undefined.

The transformation can be used for advanced minification, to remove some properties you know won't be used, but that are not automatically detectable as such.

Example

The following code:

a.removeMe = 0;
a.removeMeToo = i++;
{removeMe: 1, doNotRemoveMe: 2};

is transformed to:

i++;
{doNotRemoveMe: 2};

Try running Babel with DEBUG=remove-props to see what is being removed.

Usage

Add 'transform-remove-props' to .babelrc with a regular expression matching the properties to remove:

{
    plugins: [
        ['transform-remove-props', {regex: /^(removeMe|removeMeToo)$/}]
    ]
}

The transform is best used after transpiling and bundling, but before lossless minification (such as Uglify).

Options

regex (required)

A regular expression that specifies properties to remove.

pureMembers and pureCallees

Properties of member and call expressions:

a.b.removeMe = 1;
a.b().removeMe = 2;

cannot be removed as a member access or a function may have side-effects.

To get rid of the whole expression (rather than just its right-hand side), pass a pureMembers, respectively pureCallees, option – in the above case any regular expression matching a.b.

Pure callees is set to pureFuncsWithUnusualExceptionRegex from side-effects-safe by default.

Installation

npm install babel-cli babel-plugin-transform-remove-props

About

Babel transform to remove selected properties.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published