File size: 742 Bytes
98c9143
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import consola from "consola"
import { createRequire } from "node:module"

type ElectronModule = {
  net?: {
    fetch?: typeof fetch
  }
}

const require = createRequire(import.meta.url)

export function bindElectronFetch(): boolean {
  if (!process.versions.electron) return false

  try {
    const electronModule = require("electron") as ElectronModule
    const netFetch = electronModule.net?.fetch

    if (typeof netFetch !== "function") return false

    globalThis.fetch = netFetch.bind(electronModule.net)
    consola.log("Successfully bound Electron's net.fetch to global fetch.")
    return true
  } catch {
    consola.log(
      "Failed to bind Electron's net.fetch. Falling back to global fetch.",
    )
    return false
  }
}