export const DB_BASE_URL = process.env.NODE_ENV === 'development' ? '' : 'https://dbd-db.neru.rip'; const _cache = new Map>(); export function fetchDB(path: string): Promise { if (!_cache.has(path)) { _cache.set( path, fetch(`${DB_BASE_URL}${path}`) .then(r => { if (!r.ok) throw new Error(`[db] ${r.status} ${path}`); return r.json(); }) .catch(err => { _cache.delete(path); console.error(err); return []; }) ); } return _cache.get(path)!; } export const fetchCharacters = () => fetchDB('/data/characters.json'); export const fetchCustomizations = () => fetchDB('/data/customization_items.json'); export const fetchItems = () => fetchDB('/data/items.json'); export const fetchOfferings = () => fetchDB('/data/offerings.json'); export const fetchDLCs = () => fetchDB('/data/dlcs.json');