babel-plugin-transform-resolve-wildcard-import

0.1.1 • Public • Published

babel-plugin-transform-resolve-wildcard-import

Transforms wildcard style imports:

    import * as x from 'y';
    import * as w from 'z';
    x.a();
    x.b();
    console.log(Object.values(w));

into member style imports:

    import {a, b} from 'y';
    import * as w from 'z';
    a();
    b();
    console.log(Object.values(w));

(well, that would be ideal, but actually it looks more like the following, which is a bit simpler to implement:)

    import {a as _a, b as _b} from 'y';
    import * as w from 'z';
    var x = {a: _a, b: _b};
    x.a();
    x.b();
    console.log(Object.values(w));

This is useful in some situations to get webpack and similar tools to tree-shake better.

Note: This plugin only works when the wildcard import (x in the example) is only ever used in a property access. If you use x directly, then we leave the wildcard import in place.

Options

By default this will apply to all wildcard imports, for example with a .babelrc like:

{
    "plugins": ["babel-plugin-transform-resolve-wildcard-import"]
}

If you only want it to apply this to certain import paths you can restrict the transforms with an array of regular expressions passed as only:

{
    "plugins": [
        ["babel-plugin-transform-resolve-wildcard-import", {only: [
            "^lodash$",
            "^\.\.?\/UI(\/(index(\.js)?)?)?$"
        ]}]
    ]
}

Package Sidebar

Install

npm i babel-plugin-transform-resolve-wildcard-import

Weekly Downloads

25

Version

0.1.1

License

MIT

Unpacked Size

7.62 kB

Total Files

6

Last publish

Collaborators

  • gpittarelli