{"version":3,"sources":["cache.tsx"],"sourcesContent":["// @ts-ignore\nimport { Storage } from \"./storage.tsx\"\n\nexport const hashCode = (s) =>\n    s.split(\"\").reduce((a, b) => {\n        a = (a << 5) - a + b.charCodeAt(0)\n        return a & a\n    }, 0)\n\nexport function corsProxy(url) {\n    return `https://cors-anywhere.herokuapp.com/${url}`\n}\n\nexport async function cachedResponse(\n    url: string,\n    cache = new Storage(\"cache\")\n) {\n    const cacheKey = url\n    const data = await cache.get(cacheKey)\n\n    if (data) {\n        return data\n    } else {\n        var req = new XMLHttpRequest()\n        req.open(\"GET\", url, true)\n        req.responseType = \"blob\"\n\n        return new Promise((resolve, reject) => {\n            req.onload = async function () {\n                if (this.status === 200) {\n                    await cache.set(url, this.response)\n                    resolve(this.response)\n                } else {\n                    reject(\n                        new Error(\n                            `Response status ${this.status} ${this.statusText}`\n                        )\n                    )\n                }\n            }\n            req.onerror = function (error) {\n                reject(error)\n            }\n\n            req.send()\n        })\n    }\n}\n\nexport async function setCachedData(\n    url: string,\n    dataToCache: Record<string, unknown>,\n    cache = new Storage(\"cache\")\n) {\n    const cacheKey = url\n    const data = await cache.set(cacheKey, dataToCache)\n}\n\nexport async function checkForCachedData(\n    url: string,\n    cache = new Storage(\"cache\")\n) {\n    const cacheKey = url\n    const data = await cache.get(cacheKey)\n\n    if (data) {\n        return data\n    } else {\n        return null\n    }\n}\n"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAS,OAAO,KAAQ,eAAe,CAAA,AAEvC,OAAO,MAAM,QAAQ,CAAG,AAAC,CAAC,EACtB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,GAAK,CACzB,CAAC,CAAG,CAAC,CAAC,EAAI,CAAC,CAAC,CAAG,CAAC,CAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAClC,OAAO,CAAC,CAAG,CAAC,CAAA,AAChB,CAAC,CAAE,CAAC,CAAC,CAAA,AAET,OAAO,SAAS,SAAS,CAAC,GAAG,CAAE,CAC3B,MAAO,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC,CAAA,AACvD,CAAC,AAED,OAAO,eAAe,cAAc,CAChC,GAAW,CACX,KAAK,CAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAC9B,CACE,MAAM,QAAQ,CAAG,GAAG,CACpB,MAAM,IAAI,CAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAEtC,GAAI,IAAI,CAAE,CACN,OAAO,IAAI,CAAA,AACf,KAAO,CACH,IAAI,GAAG,CAAG,IAAI,cAAc,AAAE,CAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,IAAI,CAAC,CAC1B,GAAG,CAAC,YAAY,CAAG,MAAM,CAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,CAAE,MAAM,GAAK,CACpC,GAAG,CAAC,MAAM,CAAG,gBAAkB,CAC3B,GAAI,IAAI,CAAC,MAAM,GAAK,GAAG,CAAE,CACrB,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,IAAI,CAAC,QAAQ,CAAC,CACnC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC1B,KAAO,CACH,MAAM,CACF,IAAI,KAAK,CACL,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CACtD,CACJ,CACL,CAAC,AACL,CAAC,CACD,GAAG,CAAC,OAAO,CAAG,SAAU,KAAK,CAAE,CAC3B,MAAM,CAAC,KAAK,CAAC,CACjB,CAAC,CAED,GAAG,CAAC,IAAI,EAAE,CACd,CAAC,CAAC,CAAA,AACN,CAAC,AACL,CAAC,AAED,OAAO,eAAe,aAAa,CAC/B,GAAW,CACX,WAAoC,CACpC,KAAK,CAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAC9B,CACE,MAAM,QAAQ,CAAG,GAAG,CACpB,MAAM,IAAI,CAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,WAAW,CAAC,CACvD,CAAC,AAED,OAAO,eAAe,kBAAkB,CACpC,GAAW,CACX,KAAK,CAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAC9B,CACE,MAAM,QAAQ,CAAG,GAAG,CACpB,MAAM,IAAI,CAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAEtC,GAAI,IAAI,CAAE,CACN,OAAO,IAAI,CAAA,AACf,KAAO,CACH,OAAO,IAAI,CAAA,AACf,CAAC,AACL,CAAC"}