Files
idle_clicker/public/js/services/data.js
T

25 lines
843 B
JavaScript

// Loads the static game data and the lists of installed themes / languages.
import { buildContext } from '../engine/context.js';
async function getJson(url) {
const response = await fetch(url);
if (!response.ok) throw new Error(`${url}: HTTP ${response.status}`);
return response.json();
}
export async function loadGameContext() {
const [rules, generators, upgrades] = await Promise.all([
getJson('data/rules.json'),
getJson('data/generators.json'),
getJson('data/upgrades.json'),
]);
return buildContext({ rules, generators, upgrades });
}
/** [{ id, order, assets, locales }] discovered from public/themes/ by the server. */
export const fetchThemes = () => getJson('api/themes');
/** [{ code, name }] discovered from public/locales/ by the server. */
export const fetchLocales = () => getJson('api/locales');