Package category
Polyfills and shims
Backfill missing language and platform features.
622 packages2 comparisons
Packages compared
622 packages
| Package | Weekly downloads | 12-month change | 52 weeks | Gzip | Last release | Module | Types | Categories |
|---|---|---|---|---|---|---|---|---|
| symbol-observable Symbol.observable ponyfill | 16.5m | +8% | - | 5 years ago 4.0.0 | ESM + CommonJS | Bundled | Polyfills and shims | |
| node-abort-controller AbortController for Node based on EventEmitter | 16.4m | +52% | - | 3 years ago 3.1.1 | CommonJS | None | Polyfills and shims | |
| headers-polyfill A native "Headers" class polyfill. | 14m | +156% | - | 6 months ago 5.0.1 | ESM + CommonJS | Bundled | Polyfills and shims, HTTP clients | |
| es6-promise A lightweight library that provides tools for organizing asynchronous code | 14m | +33% | - | 7 years ago 4.2.8 | CommonJS | Bundled | Promises and async control flow, Polyfills and shims | |
| urlpattern-polyfill Polyfill for the URLPattern API | 14m | +58% | - | 1 year ago 10.1.0 | ESM + CommonJS | Bundled | Polyfills and shims | |
| homedir-polyfill Node.js os.homedir polyfill for older versions of node.js. | 12.6m | +30% | - | 7 years ago 1.0.3 | CommonJS | None | Polyfills and shims | |
| assign-symbols Assign the enumerable es6 Symbol properties from one or more objects to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method. | 12.5m | +9% | - | 8 years ago 2.0.2 | CommonJS | None | Polyfills and shims | |
| formdata-node Spec-compliant FormData implementation for Node.js | 12.1m | +140% | - | 2 years ago 6.0.3 | ESM + CommonJS | Bundled | Polyfills and shims, Files and file systems | |
| pinkie-promise ES2015 Promise ponyfill | 11.8m | -6% | - | 10 years ago 2.0.1 | - | None | Polyfills and shims | |
| marky Performance timer based on performance.mark() and measure() | 11.7m | +204% | - | 1 year ago 1.3.0 | ESM + CommonJS | Bundled | Polyfills and shims | |
| regenerator-transform Explode async and generator functions into a state machine. | 11.5m | -31% | - | 3 years ago 0.15.2 | CommonJS | None | Promises and async control flow, Polyfills and shims | |
| buffer-indexof-polyfill This is a polyfill for Buffer#indexOf introduced in NodeJS 4.0. | 11.3m | +191% | - | 6 years ago 1.0.2 | CommonJS | None | Polyfills and shims | |
| listenercount backwards compatible version of builtin events.listenercount | 11.3m | +224% | - | 10 years ago 1.0.1 | CommonJS | None | Polyfills and shims | |
| es5-ext ECMAScript extensions and shims | 11m | +13% | - | 2 years ago 0.10.64 | - | None | Polyfills and shims | |
| es6-symbol ECMAScript 6 Symbol polyfill | 10.9m | +7% | - | 2 years ago 3.1.4 | - | None | Polyfills and shims | |
| resize-observer-polyfill A polyfill for the Resize Observer API | 10.6m | +53% | - | 7 years ago 1.5.1 | ESM + CommonJS | Bundled | Polyfills and shims | |
| @react-native/js-polyfills Polyfills for React Native. | 10.4m | +211% | - | 30 days ago 0.87.1 | - | None | Polyfills and shims, React | |
| object.getownpropertydescriptors ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5. | 9.8m | -15% | - | 9 months ago 2.1.9 | CommonJS | None | Polyfills and shims | |
| ext JavaScript utilities with respect to emerging standard | 9.7m | +9% | - | 4 years ago 1.7.0 | - | None | Utility libraries, Polyfills and shims | |
| os-homedir Node.js 4 `os.homedir()` ponyfill | 9.6m | +11% | - | 7 years ago 2.0.0 | - | None | Polyfills and shims | |
| is-absolute Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`. | 9.4m | +33% | - | 9 years ago 1.0.0 | CommonJS | None | Polyfills and shims | |
| util.promisify Polyfill/shim for util.promisify in node versions < v8 | 9.2m | -13% | - | 1 year ago 1.1.3 | CommonJS | None | Polyfills and shims | |
| harmony-reflect ES5 shim for ES6 (ECMAScript 6) Reflect and Proxy objects | 9.2m | +12% | - | 5 years ago 1.6.2 | CommonJS | Bundled | Polyfills and shims | |
| number-is-nan ES2015 `Number.isNaN()` ponyfill | 8.9m | -1% | - | 5 years ago 3.0.0 | - | None | Polyfills and shims | |
| babel-runtime babel selfContained runtime | 8.9m | -10% | - | 9 years ago 6.26.0 | - | None | Polyfills and shims, Build tools | |
| is-nan ES2015-compliant shim for Number.isNaN - the global isNaN returns false positives. | 8.8m | +32% | - | 5 years ago 1.3.2 | CommonJS | None | Polyfills and shims | |
| code-point-at ES2015 `String#codePointAt()` ponyfill | 8.5m | -3% | - | 4 years ago 2.0.0 | - | None | Polyfills and shims | |
| path-dirname Node.js path.dirname() ponyfill | 8.3m | -7% | - | 9 years ago 1.0.2 | - | None | Polyfills and shims | |
| unfetch Bare minimum fetch polyfill in 500 bytes | 6.8m | +47% | - | 3 years ago 5.0.0 | ESM + CommonJS | Bundled | Polyfills and shims, HTTP clients | |
| scroll-into-view-if-needed Ponyfill for upcoming Element.scrollIntoView() APIs like scrollMode: if-needed, behavior: smooth and block: center | 6.8m | +104% | - | 3 years ago 3.1.0 | ESM + CommonJS | Bundled | Polyfills and shims, TypeScript tooling | |
| array-find-index ES2015 `Array#findIndex()` ponyfill | 6.5m | +12% | - | 9 years ago 1.0.2 | - | None | Polyfills and shims | |
| array.prototype.reduce An ES5 spec-compliant `Array.prototype.reduce` shim/polyfill/replacement that works as far down as ES3. | 6.2m | -2% | - | 1 year ago 1.0.8 | CommonJS | None | Polyfills and shims | |
| is-finite ES2015 Number.isFinite() ponyfill | 6.1m | -8% | - | 5 years ago 2.0.0 | - | None | Polyfills and shims | |
| es6-weak-map ECMAScript6 WeakMap polyfill | 5.9m | +0% | - | 7 years ago 2.0.3 | - | None | Polyfills and shims | |
| fromentries Object.fromEntries() ponyfill (in 6 lines) | 5.9m | +21% | - | 5 years ago 1.3.2 | CommonJS | Bundled | Polyfills and shims | |
| fake-indexeddb Fake IndexedDB: a pure JS in-memory implementation of the IndexedDB API | 4.9m | +381% | - | 10 months ago 6.2.5 | ESM + CommonJS | Bundled | Polyfills and shims | |
| object.hasown ES spec-compliant shim for Object.hasOwn | 4.8m | -24% | - | 9 days ago 1.1.5 | CommonJS | None | Polyfills and shims | |
| buffer-alloc-unsafe A [ponyfill](https://ponyfill.com) for `Buffer.allocUnsafe`. | 4.7m | +12% | - | 8 years ago 1.1.0 | - | None | Polyfills and shims | |
| map-or-similar A JavaScript (JS) Map or Similar object polyfill if Map is not available. | 4.6m | -4% | - | 9 years ago 1.5.0 | CommonJS | None | Polyfills and shims | |
| @juggle/resize-observer Polyfills the ResizeObserver API and supports box size options from the latest spec | 4.6m | +43% | - | 4 years ago 3.4.0 | ESM + CommonJS | Bundled | Polyfills and shims, TypeScript tooling | |
| string.prototype.padend ES2017 spec-compliant String.prototype.padEnd shim. | 4.3m | +2% | - | 2 years ago 3.1.6 | CommonJS | None | Polyfills and shims | |
| pony-cause Ponyfill and helpers for Error Causes | 3.9m | +84% | - | 2 years ago 2.1.11 | ESM + CommonJS | Bundled | Polyfills and shims | |
| promise-polyfill Lightweight promise polyfill. A+ compliant | 3.8m | +23% | - | 3 years ago 8.3.0 | ESM + CommonJS | None | Polyfills and shims, Promises and async control flow | |
| iterall Minimal zero-dependency utilities for using JavaScript Iterables in all environments. | 3.7m | +25% | - | 6 years ago 1.3.0 | ESM + CommonJS | Bundled | Polyfills and shims | |
| is-function is that thing a function? Use this module to find out | 3.6m | +19% | - | 6 years ago 1.0.2 | CommonJS | None | Polyfills and shims | |
| string.prototype.codepointat A robust & optimized `String.prototype.codePointAt` polyfill, based on the ECMAScript 6 specification. | 3.4m | +350% | - | 1 year ago 1.0.1 | CommonJS | None | Polyfills and shims | |
| webrtc-adapter A shim to insulate apps from WebRTC spec changes and browser prefix differences | 3.4m | +307% | - | 3 months ago 9.0.6 | ESM + CommonJS | Bundled | Polyfills and shims | |
| jsbi JSBI is a pure-JavaScript implementation of [the ECMAScript BigInt proposal](https://tc39.es/proposal-bigint/), which officially became a part of the JavaScript language in ES2020. | 3.3m | +96% | - | 1 year ago 4.3.2 | ESM + CommonJS | Bundled | Polyfills and shims | |
| @edge-runtime/ponyfill A ponyfill (doesn't overwrite the native methods) to use Edge Runtime APIs in any environment. | 3m | +246% | - | 1 year ago 4.0.0 | ESM + CommonJS | Bundled | Polyfills and shims | |
| react-native-url-polyfill A lightweight and trustworthy URL polyfill for React Native | 2.9m | +227% | - | 2 months ago 4.0.0 | CommonJS | Bundled | URLs and query strings, React |
12-month change compares the average of the last 4 weeks of downloads with the first 4 weeks of the 52-week series. Gzip size is for the whole package, as measured by Bundlephobia. "-" means the value has not been fetched.
- symbol-observableSymbol.observable ponyfill
- node-abort-controllerAbortController for Node based on EventEmitter
- headers-polyfillA native "Headers" class polyfill.
- es6-promiseA lightweight library that provides tools for organizing asynchronous code
- urlpattern-polyfillPolyfill for the URLPattern API
- homedir-polyfillNode.js os.homedir polyfill for older versions of node.js.
- assign-symbolsAssign the enumerable es6 Symbol properties from one or more objects to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method.
- formdata-nodeSpec-compliant FormData implementation for Node.js
- pinkie-promiseES2015 Promise ponyfill
- markyPerformance timer based on performance.mark() and measure()
- regenerator-transformExplode async and generator functions into a state machine.
- buffer-indexof-polyfillThis is a polyfill for Buffer#indexOf introduced in NodeJS 4.0.
- listenercountbackwards compatible version of builtin events.listenercount
- es5-extECMAScript extensions and shims
- es6-symbolECMAScript 6 Symbol polyfill
- resize-observer-polyfillA polyfill for the Resize Observer API
- @react-native/js-polyfillsPolyfills for React Native.
- object.getownpropertydescriptorsES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.
- extJavaScript utilities with respect to emerging standard
- os-homedirNode.js 4 `os.homedir()` ponyfill
- is-absoluteReturns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.
- util.promisifyPolyfill/shim for util.promisify in node versions < v8
- harmony-reflectES5 shim for ES6 (ECMAScript 6) Reflect and Proxy objects
- number-is-nanES2015 `Number.isNaN()` ponyfill
- babel-runtimebabel selfContained runtime
- is-nanES2015-compliant shim for Number.isNaN - the global isNaN returns false positives.
- code-point-atES2015 `String#codePointAt()` ponyfill
- path-dirnameNode.js path.dirname() ponyfill
- unfetchBare minimum fetch polyfill in 500 bytes
- scroll-into-view-if-neededPonyfill for upcoming Element.scrollIntoView() APIs like scrollMode: if-needed, behavior: smooth and block: center
- array-find-indexES2015 `Array#findIndex()` ponyfill
- array.prototype.reduceAn ES5 spec-compliant `Array.prototype.reduce` shim/polyfill/replacement that works as far down as ES3.
- is-finiteES2015 Number.isFinite() ponyfill
- es6-weak-mapECMAScript6 WeakMap polyfill
- fromentriesObject.fromEntries() ponyfill (in 6 lines)
- fake-indexeddbFake IndexedDB: a pure JS in-memory implementation of the IndexedDB API
- object.hasownES spec-compliant shim for Object.hasOwn
- buffer-alloc-unsafeA [ponyfill](https://ponyfill.com) for `Buffer.allocUnsafe`.
- map-or-similarA JavaScript (JS) Map or Similar object polyfill if Map is not available.
- @juggle/resize-observerPolyfills the ResizeObserver API and supports box size options from the latest spec
- string.prototype.padendES2017 spec-compliant String.prototype.padEnd shim.
- pony-causePonyfill and helpers for Error Causes
- promise-polyfillLightweight promise polyfill. A+ compliant
- iterallMinimal zero-dependency utilities for using JavaScript Iterables in all environments.
- is-functionis that thing a function? Use this module to find out
- string.prototype.codepointatA robust & optimized `String.prototype.codePointAt` polyfill, based on the ECMAScript 6 specification.
- webrtc-adapterA shim to insulate apps from WebRTC spec changes and browser prefix differences
- jsbiJSBI is a pure-JavaScript implementation of [the ECMAScript BigInt proposal](https://tc39.es/proposal-bigint/), which officially became a part of the JavaScript language in ES2020.
- @edge-runtime/ponyfillA ponyfill (doesn't overwrite the native methods) to use Edge Runtime APIs in any environment.
- react-native-url-polyfillA lightweight and trustworthy URL polyfill for React Native