UNPKG

2.61 kBSource Map (JSON)View Raw
1{"version":3,"file":"fetch.esm.js","sources":["../../src/utils/fetch.ts"],"sourcesContent":["import unfetch from 'isomorphic-unfetch';\nimport lru from 'tiny-lru';\nimport { FetchError } from './errors';\nimport { log } from './log';\n\nconst maxItems = 250;\nconst fiveMinutesTTL = 5 * 60 * 1000;\nconst cache = lru(maxItems, fiveMinutesTTL);\n\nexport async function fetch({\n url,\n headers,\n cached = true,\n}: {\n url: string;\n headers?: Record<string, string>;\n cached?: boolean;\n}): Promise<any> {\n const cacheKey = `headers=${JSON.stringify(headers)};url=${url}`;\n const cachedJSON = cache.get(cacheKey);\n if (cached && cachedJSON) {\n log('fetch: returning cached response: %O', {\n cacheKey,\n url,\n cachedJSON,\n });\n return cachedJSON;\n }\n\n const response = await unfetch(url, { headers });\n if (!response.ok) {\n log('fetch: request failed: %O', {\n url,\n headers,\n status: response.statusText,\n response,\n });\n throw new FetchError(url, response);\n }\n\n const json = await response.json();\n if (cached) {\n cache.set(cacheKey, json);\n }\n\n log('fetch: returning fresh response: %O', { url, json });\n return json;\n}\n"],"names":["maxItems","fiveMinutesTTL","cache","lru","fetch","url","headers","cached","cacheKey","JSON","stringify","cachedJSON","get","log","response","unfetch","ok","status","statusText","FetchError","json","set"],"mappings":";;;;;AAKA,MAAMA,QAAQ,GAAG,GAAjB;AACA,MAAMC,cAAc,GAAG,IAAI,EAAJ,GAAS,IAAhC;AACA,MAAMC,KAAK,gBAAGC,GAAG,CAACH,QAAD,EAAWC,cAAX,CAAjB;AAEO,eAAeG,KAAf,CAAqB;AACxBC,EAAAA,GADwB;AAExBC,EAAAA,OAFwB;AAGxBC,EAAAA,MAAM,GAAG;AAHe,CAArB;AASH,QAAMC,QAAQ,cAAcC,IAAI,CAACC,SAAL,CAAeJ,OAAf,SAA+BD,KAA3D;AACA,QAAMM,UAAU,GAAGT,KAAK,CAACU,GAAN,CAAUJ,QAAV,CAAnB;;AACA,MAAID,MAAM,IAAII,UAAd,EAA0B;AACtBE,IAAAA,GAAG,CAAC,sCAAD,EAAyC;AACxCL,MAAAA,QADwC;AAExCH,MAAAA,GAFwC;AAGxCM,MAAAA;AAHwC,KAAzC,CAAH;AAKA,WAAOA,UAAP;AACH;;AAED,QAAMG,QAAQ,GAAG,MAAMC,OAAO,CAACV,GAAD,EAAM;AAAEC,IAAAA;AAAF,GAAN,CAA9B;;AACA,MAAI,CAACQ,QAAQ,CAACE,EAAd,EAAkB;AACdH,IAAAA,GAAG,CAAC,2BAAD,EAA8B;AAC7BR,MAAAA,GAD6B;AAE7BC,MAAAA,OAF6B;AAG7BW,MAAAA,MAAM,EAAEH,QAAQ,CAACI,UAHY;AAI7BJ,MAAAA;AAJ6B,KAA9B,CAAH;AAMA,UAAM,IAAIK,UAAJ,CAAed,GAAf,EAAoBS,QAApB,CAAN;AACH;;AAED,QAAMM,IAAI,GAAG,MAAMN,QAAQ,CAACM,IAAT,EAAnB;;AACA,MAAIb,MAAJ,EAAY;AACRL,IAAAA,KAAK,CAACmB,GAAN,CAAUb,QAAV,EAAoBY,IAApB;AACH;;AAEDP,EAAAA,GAAG,CAAC,qCAAD,EAAwC;AAAER,IAAAA,GAAF;AAAOe,IAAAA;AAAP,GAAxC,CAAH;AACA,SAAOA,IAAP;AACH;;;;"}
\No newline at end of file