'use strict'; let debug = false, font: any, settings: any; let antiCacheQuery = '?_=' + new Date().getTime(); const p = new p5((p: p5) => { p.preload = () => { settings = p.loadJSON('data/settings/settings.json' + antiCacheQuery, {}, 'json', (json: any) => { console.log('Local settings loaded: ', json); }, (error: any) => { console.log('Local settings failed: ', error); }); font = p.loadFont('data/styles/fonts/Tajawal/Tajawal-Regular.ttf' + antiCacheQuery, (font: any) => { console.log('Local font loaded: ', font); }, (error: any) => { console.log('Local font failed: ', error); }); } p.setup = () => { canvasSetup(); eventsSetup(); loadDynamicScripts().then(async () => { for (let id of settings.tournaments){ try{ let tournament = await fetchTournament(id); $('#tournament-list').append(tournament.teaserHtml); } catch(e){ console.info('Cannot fetch internal tournament with id ' + id + ": " + e); } } }); } }); function canvasSetup(){ p.noCanvas(); } async function loadDynamicScripts(){ const json = await p.httpGet('data/settings/libraries.json' + antiCacheQuery, 'json') as Object; let requests = []; for (let script in json) { if (json[script]) { let url = '/lib/benjocraeft/' + script + '.js'; requests.push($.getScript(url, () => { console.log('Successfully loaded script: ', url); })); } } await $.when(...requests); console.log('All dynamic scripts have been loaded!'); }