JavaScript Polyfill

Open-source JavaScript projects categorized as Polyfill

Top 23 JavaScript Polyfill Projects

  • window.fetch polyfill

    A window.fetch JavaScript polyfill.

  • Project mention: How do I detect requests initiated by the new fetch standard? How should I detect an AJAX request in general? | /r/codehunter | 2023-07-02

    Most js libraries use XMLHttpRequest and so provide HTTP_X_REQUESTED_WITH: XMLHttpRequest, but neither Chrome's implementation nor Github's polyfill of the new fetch uses a similar header. So how can one detect that the request is AJAX?

  • core-js

    Standard Library

  • Project mention: Emacs' helm is maintained by one maintaner for 11 years long | news.ycombinator.com | 2023-12-22

    This is surprisingly common. The other example off the top of my head, a single maintainer of a very popular project who had to temporarily abandon it due to lack of funds, is Denis Pushkarev (zloirock) and core.js (https://github.com/zloirock/core-js/blob/master/docs/2023-02...).

    The majority of OSS projects have most of their contributions by one person (the project leader), and the vast majority of OSS contributors don't do it for their job. It seems nearly every single popular OSS project is like this (one unpaid, maybe sponsored, volunteer doing most of the work); it's not even worth listing projects and names, because you can just pick a couple projects you know and I bet at least one will be an example. Fortunately, most of these people seem to be well-off (probably in part due to the quality of programming jobs), but every once in a while there's someone who's not so fortunate. It should be more common to sponsor maintainers, especially if they are asking for donations provided they can prove that they really need the money (the world we live in, some people who have plenty fake issues to solicit donations, then others who genuinely need and deserve the money are scolded and left unfunded because of them).

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • history.js

    History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all browsers. Including continued support for data, titles, replaceState. Supports jQuery, MooTools and Prototype. For HTML5 browsers this means that you can modify the URL directly, without needing to use hashes anymore. For HTML4 browsers it will revert back to using the old onhashchange functionality.

  • unfetch

    🐕 Bare minimum 500b fetch polyfill.

  • Sugar

    A Javascript library for working with native objects.

  • adapter

    Shim to insulate apps from spec changes and prefix differences. Latest adapter.js release:

  • dialog-polyfill

    Polyfill for the HTML dialog element

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • rangeslider.js

    🎚 HTML5 input range slider element jQuery polyfill

  • broadcast-channel

    :satellite: BroadcastChannel to send data between different browser-tabs or nodejs-processes :satellite: + LeaderElection over the channels https://pubkey.github.io/broadcast-channel/

  • resize-observer-polyfill

    A polyfill for the Resize Observer API

  • css-vars-ponyfill

    Client-side support for CSS custom properties (aka "CSS variables") in legacy and modern browsers

  • proxy-polyfill

    Proxy object polyfill

  • jsbi

    JSBI is a pure-JavaScript implementation of the official ECMAScript BigInt proposal.

  • Project mention: How to Implement and Deploy a Smart Contract Event Listener with AWS CDK | dev.to | 2023-11-19

    import 'dotenv/config'; import * as erc20abi from './abi.json'; import Web3, { Contract, WebSocketProvider } from 'web3'; /* Workaround for JSON.stringify() event logs with BigInt values. We need to stringify event logs for more readable logging in CloudWatch. https://github.com/GoogleChromeLabs/jsbi/issues/30 */ (BigInt.prototype as any).toJSON = function () { return this.toString(); }; /** * Starts the smart contract event listener. * Websocket Provider config: https://docs.web3js.org/api/web3-providers-ws/class/WebSocketProvider * @param chain - Name of the blockchain network for logging purposes. * @param wssEndpoint - Websocket endpoint for the blockchain network. * @param contractAddress - Smart contract address. */ const startEventListener = async (chain: string, wssEndpoint: string, contractAddress: string) => { const provider = new WebSocketProvider( wssEndpoint, {}, { autoReconnect: true, delay: 10000, // Default: 5000 ms maxAttempts: 10, // Default: 5 }, ); provider.on('connect', () => { console.log(`Connected to ${chain} websocket provider`); }); provider.on('disconnect', error => { console.error(`Closed ${chain} webSocket connection`, error); }); const web3 = new Web3(provider); /* Smart contract event listeners Listening to events: - Transfer - Approval */ const contract = new web3.eth.Contract(erc20abi, contractAddress); await subscribeToEvent(chain, contract, 'Transfer'); await subscribeToEvent(chain, contract, 'Approval'); }; /** * Subscribes to a smart contract event. * @param chain - Name of the blockchain network for logging purposes. * @param contract - Smart contract address. * @param eventName - Name of the event to subscribe to. */ const subscribeToEvent = async (chain: string, contract: Contract, eventName: string) => { const subscription = await contract.events[eventName](); subscription.on('connected', subscriptionId => { console.log(`${chain} USDT '${eventName}' SubID:`, subscriptionId); }); subscription.on('data', event => { console.log(`${chain} USDT '${eventName}'`, JSON.stringify({ event })); // cannot json.stringify BigInt... }); subscription.on('changed', event => { // Remove event from local database }); subscription.on('error', error => { console.error(`${chain} USDT '${eventName}' error:`, error); }); }; /* Start smart contract event listeners Chains: - Ethereum */ startEventListener('Ethereum', process.env.ETH_WSS_ENDPOINT!, process.env.ETH_SMART_CONTRACT_ADDRESS!);

  • webassemblyjs

    Toolchain for WebAssembly

  • css-paint-polyfill

    CSS Custom Paint / Paint Worklet polyfill with special browser optimizations.

  • Project mention: The Staggering Frontiers of CSS | news.ycombinator.com | 2023-06-18

    CSS Houdini is (I think) still A Thing, but I believe the browser devs have (rightly!) decided to concentrate on fixing more important issues first.

    I believe the CSS Painting API[1] is the most advanced of the set? It has shipped in Chrome, behind a flag in Safari, and there's a polyfill[2] that (may/may not) work for unsupported browsers.

    But the key issue with Houdini is that it requires JS to be enabled before it can do its magic ...

    [1] - https://developer.mozilla.org/en-US/docs/Web/API/CSS_Paintin...

    [2] - https://github.com/GoogleChromeLabs/css-paint-polyfill

  • avif.js

    :shipit: AVIF polyfill for the browser

  • standardized-audio-context

    A cross-browser wrapper for the Web Audio API which aims to closely follow the standard.

  • loading-attribute-polyfill

    Fast and lightweight dependency-free vanilla JavaScript polyfill for native lazy loading / the awesome loading='lazy'-attribute.

  • details-element-polyfill

    <details>

  • polyfill

    Set of all Javascript polyfills (by behnammodi)

  • github-wc-polyfill

    Ensure that all GitHub and GitLab scripts required for UXP and SeaMonkey are loaded correctly

  • palefill

    Inject Polyfills for various web technologies into pages requiring them

  • Project mention: Have you guys ever heared about this one? Mercury. Its from the creator of Thorium, an optmized version of Firefox. | /r/browsers | 2023-12-08

    It cannot render modern sites without a polyfill addon to improve compatibility because they are worried more about legacy extensions and an old UI than providing a usable browser https://martok.github.io/palefill/

  • fromentries

    Object.fromEntries() ponyfill (in 6 lines)

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

JavaScript Polyfill related posts

  • Emacs' helm is maintained by one maintaner for 11 years long

    1 project | news.ycombinator.com | 22 Dec 2023
  • Have you guys ever heared about this one? Mercury. Its from the creator of Thorium, an optmized version of Firefox.

    1 project | /r/browsers | 8 Dec 2023
  • Users are massively giving their 1-star reviews to AdBlocker

    1 project | news.ycombinator.com | 30 Nov 2023
  • SpeakBits - A reddit alternative without the corporate baggage

    1 project | /r/SideProject | 30 Sep 2023
  • How do I detect requests initiated by the new fetch standard? How should I detect an AJAX request in general?

    2 projects | /r/codehunter | 2 Jul 2023
  • [Torte de Lini] After 375 changes, all 166 Standard Hero Guides are updated to patch 7.33d

    1 project | /r/DotA2 | 21 Jun 2023
  • The Staggering Frontiers of CSS

    2 projects | news.ycombinator.com | 18 Jun 2023
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 10 May 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Index

What are some of the best open-source Polyfill projects in JavaScript? This list will help you:

Project Stars
1 window.fetch polyfill 25,804
2 core-js 23,871
3 history.js 10,760
4 unfetch 5,686
5 Sugar 4,521
6 adapter 3,578
7 dialog-polyfill 2,430
8 rangeslider.js 2,164
9 broadcast-channel 1,762
10 resize-observer-polyfill 1,732
11 css-vars-ponyfill 1,458
12 proxy-polyfill 1,131
13 jsbi 891
14 webassemblyjs 769
15 css-paint-polyfill 729
16 avif.js 663
17 standardized-audio-context 640
18 loading-attribute-polyfill 615
19 details-element-polyfill 227
20 polyfill 144
21 github-wc-polyfill 101
22 palefill 78
23 fromentries 69

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com