import { default as createQueue, PRIORITY } from "../http-queue"; import { substituteVars } from "../../../utils/format"; const BEATMAPS_API_URL = "https://api.beatsaver.com/"; const SONG_BY_HASH_URL = BEATMAPS_API_URL + "/maps/hash/${hash}"; const SONG_BY_KEY_URL = BEATMAPS_API_URL + "/maps/id/${key}"; export default (options = {}) => { const queue = createQueue(options); const { fetchJson, fetchHtml, ...queueToReturn } = queue; const byHash = async (hash, priority = PRIORITY.FG_LOW, options = {}) => fetchJson(substituteVars(SONG_BY_HASH_URL, { hash }), options, priority); const byKey = async (key, priority = PRIORITY.FG_LOW, options = {}) => fetchJson(substituteVars(SONG_BY_KEY_URL, { key }), options, priority); return { byHash, byKey, ...queueToReturn, }; };