electron-main-fetch

Use the browser Fetch API from the main process in Electron

Usage no npm install needed!

<script type="module">
  import electronMainFetch from 'https://cdn.skypack.dev/electron-main-fetch';
</script>

README

electron-main-fetch Build Status

Use the browser Fetch API from the main process in Electron

Install

$ npm install electron-main-fetch

Requires Electron 9 or later.

Usage

const fetch = require('electron-main-fetch');

(async () => {
    const response = await fetch('https://api.ipify.org');
    console.log(await response.text());
    //=> '170.56.15.35'
})();

API

fetch(input, options)

Same options as Fetch

Response object example

{
    type: 'cors',
    url: 'https://api.ipify.org/',
    redirected: false,
    status: 200,
    ok: true,
    statusText: 'OK',
    bodyUsed: false,
    headers: {
        keys: [Function],
        entries: [Function],
        values: [Function],
        get: [Function],
        has: [Function],
        set: [Function],
        append: [Function],
        delete: [Function]
    },
    clone: [Function],
    arrayBuffer: [Function],
    json: [Function],
    text: [Function]
}

Difference between this and Fetch

We don't have direct access to the body stream, so there is no body property. There are some methods that are not useful in Node.js, like formData(), redirect(), etc. Some other methods are not very cross-browser compatible, so they are less common to use.

Missing:

  • body
  • blob()
  • formData()
  • error()

A small difference is that our .clone() method is async.

Related