GM Fetch

A fetch API of GM_xmlhttpRequest

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/472236/1392209/GM%20Fetch.js

Author
Secant
Version
1.2.1
Created
2023-08-02
Updated
2024-06-10
License
MIT

@sec-ant/gm-fetch

A fetch API for GM_xmlhttpRequest / GM.xmlHttpRequest.

Features

  • Use responseType: stream to prevent buffering large data when possible.
  • Use Typescript.
  • Provides es module, iife script and lib mode userscript as well.

Install

If you use vite-plugin-monkey:

npm i @sec-ant/gm-fetch

or just plain userscript (change latest to the version number as needed):

// @require   https://cdn.jsdelivr.net/npm/@sec-ant/gm-fetch@latest/dist/index.iife.js

Usage

  1. Grant necessary GM_APIs:

    vite-plugin-monkey:

    {
      plugins: [
        monkey({
          userscript: {
            // or GM.xmlHttpRequest
            grant: "GM_xmlhttpRequest",
            // whatever websites you're to make requests to
            connect: ["github.com"],
          },
        }),
      ];
    }
    

    plain userscript:

    // @grant     GM_xmlhttpRequest
    // @connect   github.com
    
  2. Use it just like fetch:

    vite-plugin-monkey:

    import gmFetch from "@sec-ant/gm-fetch";
    
    gmFetch("https://github.com/Sec-ant/gm-fetch");
    

    plain userscript:

    /* globals gmFetch */
    (function () {
      "use strict";
      gmFetch("https://github.com/Sec-ant/gm-fetch");
    })();
    

License

MIT