Skip to content

gpittarelli/babel-plugin-transform-resolve-wildcard-import

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)?)?)?$"
        ]}]
    ]
}

About

Simple transform to strip some wildcard imports

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published