{"version":3,"file":"index.module.mjs","sources":["../node_modules/@ungap/global-this/esm/index.js","../index.js","../custom-fetch.js"],"sourcesContent":["(function (Object) {\n  typeof globalThis !== 'object' && (\n    this ?\n      get() :\n      (Object.defineProperty(Object.prototype, '_T_', {\n        configurable: true,\n        get: get\n      }), _T_)\n  );\n  function get() {\n    var global = this || self;\n    global.globalThis = global;\n    delete Object.prototype._T_;\n  }\n}(Object));\nexport default globalThis;\n","import fetch from 'node-fetch';\nimport abortController from 'abort-controller';\n\nimport customFetch from './custom-fetch';\n\nexport default function(endpoint, config, options = {}) {\n  return customFetch(endpoint, config, {\n    ...options,\n    fetch,\n    AbortController: globalThis.AbortController || abortController\n  });\n}\n","import '@ungap/global-this';\n\nexport default function customFetch(\n  endpoint,\n  {\n    body,\n    ...customConfig\n  } = {},\n  {\n    fetch = globalThis.fetch,\n    AbortController = globalThis.AbortController,\n    timeout\n  } = {},\n) {\n  const headers = { 'Content-Type': 'application/json' };\n  let signal = undefined;\n  if (timeout) {\n    ({ signal } = createTimeoutSignal(AbortController, timeout));\n  }\n  const config = {\n    method: body ? 'POST' : 'GET',\n    ...customConfig,\n    headers: {\n      ...headers,\n      ...customConfig.headers,\n    }\n  }\n  if (body && config.headers === 'application/json') {\n    config.body = JSON.stringify(body);\n  } else {\n    config.body = body;\n  }\n  if (signal) {\n    config.signal = signal;\n  }\n\n  return fetch(endpoint, config).then(async (response) => {\n    timeoutSignal.clear(signal);\n    if (response.ok) {\n      return await response.json()\n    } else {\n      const errorMessage = await response.text()\n      return Promise.reject(new Error(errorMessage))\n    }\n  });\n}\n\nfunction createTimeoutSignal(AbortController, timeout) {\n  const controller = new AbortController();\n  const timeoutId = globalThis.setTimeout(() => {\n    controller.abort();\n  }, timeout);\n  return {\n    signal: controller.signal,\n    clear: () => {\n      globalThis.clearTimeout(timeoutId);\n    }\n  };\n}\n"],"names":["Object","get","global","this","self","globalThis","prototype","_T_","defineProperty","configurable","endpoint","config","options","body","customConfig","fetch","AbortController","timeout","signal","undefined","controller","timeoutId","setTimeout","abort","clear","clearTimeout","createTimeoutSignal","method","headers","JSON","stringify","then","response","timeoutSignal","ok","json","text","errorMessage","Promise","reject","Error","customFetch","abortController"],"mappings":"2QAAC,SAAUA,GAST,SAASC,IACP,IAAIC,EAASC,MAAQC,KACrBF,EAAOG,WAAaH,SACbF,EAAOM,UAAUC,IAXJ,iBAAfF,aACLF,KACEF,KACCD,EAAOQ,eAAeR,EAAOM,UAAW,MAAO,CAC9CG,cAAc,EACdR,IAAKA,IACHM,MAPV,CAcEP,kCCTsBU,EAAUC,EAAQC,GACxC,gBADwCA,IAAAA,EAAU,aCFlDF,wBAII,KAFFG,IAAAA,KACGC,uJAMD,SAHFC,MAAAA,aAAQV,WAAWU,YACnBC,gBAAAA,aAAkBX,WAAWW,kBAC7BC,IAAAA,QAIEC,OAASC,EACb,GAAIF,EAAS,OA+Bf,SAA6BD,EAAiBC,GAC5C,IAAMG,EAAa,IAAIJ,EACjBK,EAAYhB,WAAWiB,WAAW,WACtCF,EAAWG,SACVN,GACH,MAAO,CACLC,OAAQE,EAAWF,OACnBM,MAAO,WACLnB,WAAWoB,aAAaJ,KAtCZK,CAAoBV,EAAiBC,GAAhDC,IAAAA,OAEL,IAAMP,KACJgB,OAAQd,EAAO,OAAS,OACrBC,GACHc,aARc,CAAE,eAAgB,oBAU3Bd,EAAac,WAYpB,OAREjB,EAAOE,KADLA,GAA2B,qBAAnBF,EAAOiB,QACHC,KAAKC,UAAUjB,GAEfA,EAEZK,IACFP,EAAOO,OAASA,GAGXH,EAAML,EAAUC,GAAQoB,cAAYC,OAEzC,OADAC,cAAcT,MAAMN,GAChBc,EAASE,mBACEF,EAASG,wBAEKH,EAASI,sBAA9BC,GACN,OAAOC,QAAQC,OAAO,IAAIC,MAAMH,MAN7B,qCD9BAI,CAAY/B,EAAUC,OACxBC,GACHG,MAAAA,EACAC,gBAAiBX,WAAWW,iBAAmB0B"}