import { fetchJson, preloadData } from './api.js'; import { renderGamePackages } from './renderers/gamePackages.js'; import { renderLaunchers } from './renderers/launchers.js'; import { renderOverview } from './renderers/overview.js'; import { renderPatches } from './renderers/patches.js'; import { renderResources } from './renderers/resources.js'; import { renderWebPretty } from './renderers/webPretty.js'; import type { MirrorFileEntry } from './types.js'; import { BASE_URL } from './utils/constants.js'; document.addEventListener('DOMContentLoaded', () => { main(); }); let mirrorFileDb: MirrorFileEntry[] = []; async function main() { const contentDiv = document.getElementById('content'); if (!contentDiv) return; await preloadData(); try { mirrorFileDb = await fetchJson(`${BASE_URL}/mirror_file_list.json`); } catch (e) { console.warn('Failed to fetch mirror list', e); } const tabsHtml = `
`; contentDiv.innerHTML = tabsHtml; await Promise.all([ renderOverview(document.getElementById('tab-overview')!, mirrorFileDb), renderGamePackages(document.getElementById('tab-game')!, mirrorFileDb), renderPatches(document.getElementById('tab-patch')!, mirrorFileDb), renderResources(document.getElementById('tab-resources')!), renderLaunchers(document.getElementById('tab-launcher')!, mirrorFileDb), renderWebPretty(document.getElementById('tab-web-pretty')!), ]); }