Files
2026-06-19 04:29:24 -03:00

33 lines
1007 B
TypeScript

export const DB_BASE_URL =
process.env.NODE_ENV === 'development' ? '' : 'https://dbd-db.neru.rip';
const _cache = new Map<string, Promise<any>>();
export function fetchDB<T = any>(path: string): Promise<T> {
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');
export const fetchAddons = () => fetchDB('/data/addons.json');
export const fetchPerks = () => fetchDB('/data/perks.json');