/babel-plugin-remove-ungap

Remove @ungap ponyfills

Primary LanguageJavaScriptMIT LicenseMIT

babel-plugin-remove-ungap NPM Version

Remove @ungap ponyfills

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/from-entries Object.fromEntries Yes
@ungap/global-this globalThis
@ungap/import-node document.importNode Yes
@ungap/is-array Array.isArray Yes
@ungap/map Map
@ungap/promise-all-settled Promise.allSettled Yes
@ungap/set Set
@ungap/template-literal val => val Yes
@ungap/template-tag-arguments (...args) => args 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/promise-any Promise.any Yes

babel-plugin-remove-ungap for enterprise

Available as part of the Tidelift Subscription.

The maintainers of babel-plugin-remove-ungap and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.