babel-plugin-remove-ungap

Remove @ungap ponyfills

Usage no npm install needed!

<script type="module">
  import babelPluginRemoveUngap from 'https://cdn.skypack.dev/babel-plugin-remove-ungap';
</script>

README

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