This repository has been archived on 2023-11-06. You can view files and clone it, but cannot push or open issues or pull requests.
beatsaber-overlay/utils/utils.js
2022-10-20 16:13:45 +01:00

37 lines
738 B
JavaScript

const mapCache = new Map();
module.exports = {
BEATSAVER_MAP_API:
process.env.NEXT_PUBLIC_HTTP_PROXY +
"/https://api.beatsaver.com/maps/hash/%s",
/**
* Gets a specified maps data from BeatSaver
*
* @param {string} hash
* @returns The map data
*/
async getMapData(hash) {
hash = this.BEATSAVER_MAP_API.replace("%s", hash);
if (mapCache.has(hash)) {
// Return from cache
return mapCache.get(hash);
}
const data = await fetch(hash, {
headers: {
origin: "Fascinated Overlay",
},
});
if (data.status === 404) {
return undefined;
}
const json = await data.json();
mapCache.set(hash, json);
setTimeout(() => {
mapCache.delete(hash);
}, 60 * 60 * 1000); // 1h
return json;
},
};