babel-plugin-remove-ungap

1.2.0 • Public • Published

babel-plugin-remove-ungap

Travis CI Greenkeeper badge NPM Version NPM Downloads MIT

Remove @ungap ponyfills

Install babel-plugin-remove-ungap

npm i -D babel-plugin-remove-ungap

Usage

Add remove-ungap to your babelrc plugins if the ponyfills are not needed by your browser target. This could be due to only targeting modern browsers or because your project already polyfills the browser.

This plugin works with CJS and ES modules before bundling. It can be run by rollup-plugin-babel before import or require statements are altered.

exclude option

You can add the exclude option to block removal/processing of specific @ungap modules.

{
    plugins: [
        ['remove-ungap', {
            exclude: [
                '@ungap/essential-map'
            ]
        }]
    ]
}

This config will cause any import of @ungap/essential-map to be preserved.

future option

Some @ungap polyfills are needed by most current browsers or did not exist when the current semver-major of this plugin was released. These are only processed if explicitly requested by the future option. For example:

{
    plugins: [
        ['remove-ungap', {
            future: [
                '@ungap/from-entries'
            ]
        }]
    ]
}

Unknown modules are ignored.

Modules that are removed

Module Target Declares variable
@ungap/assign Object.assign Yes
@ungap/array-iterator Array.prototype[Symbol.iterator] Yes
@ungap/custom-event CustomEvent
@ungap/essential-map Map
@ungap/essential-set Set
@ungap/essential-symbol Symbol
@ungap/essential-weakset WeakSet
@ungap/event Event
@ungap/event-target EventTarget
@ungap/import-node document.importNode Yes
@ungap/is-array Array.isArray Yes
@ungap/map Map
@ungap/set Set
@ungap/template-literal val => val Yes
@ungap/trim String.prototype.trim Yes
@ungap/weakmap WeakMap
@ungap/weakset WeakSet

@ungap/create-content is altered

@ungap/create-content is altered so that HAS_CONTENT is constant true. This allows minifiers to strip code that is not useed by modern browsers.

Modules that can be removed by the future option

Module Target Declares variable
@ungap/from-entries Object.fromEntries Yes
@ungap/global-this globalThis
@ungap/promise-all-settled Promise.allSettled Yes
@ungap/promise-any Promise.any Yes
@ungap/template-tag-arguments (...args) => args Yes

Running tests

Tests are provided by xo and ava.

npm install
npm test

Readme

Keywords

none

Package Sidebar

Install

npm i babel-plugin-remove-ungap

Weekly Downloads

9

Version

1.2.0

License

MIT

Unpacked Size

12.1 kB

Total Files

5

Last publish

Collaborators

  • coreyfarrell