this repo has no description
at v1.2.5 2.1 kB view raw
1import { loadProcessedExtensions } from "@moonlight-mod/core/extension/loader"; 2import { installWebpackPatcher, onModuleLoad, registerPatch, registerWebpackModule } from "@moonlight-mod/core/patch"; 3import { constants, MoonlightBranch } from "@moonlight-mod/types"; 4import { installStyles } from "@moonlight-mod/core/styles"; 5import Logger, { initLogger } from "@moonlight-mod/core/util/logger"; 6import LunAST from "@moonlight-mod/lunast"; 7import Moonmap from "@moonlight-mod/moonmap"; 8import loadMappings from "@moonlight-mod/mappings"; 9import { createEventEmitter } from "@moonlight-mod/core/util/event"; 10import { EventPayloads, EventType } from "@moonlight-mod/types/core/event"; 11 12async function load() { 13 initLogger(moonlightNode.config); 14 const logger = new Logger("web-preload"); 15 16 window.moonlight = { 17 apiLevel: constants.apiLevel, 18 unpatched: new Set(), 19 pendingModules: new Set(), 20 enabledExtensions: new Set(), 21 events: createEventEmitter<EventType, EventPayloads>(), 22 patchingInternals: { 23 onModuleLoad, 24 registerPatch, 25 registerWebpackModule 26 }, 27 localStorage: window.localStorage, 28 29 version: MOONLIGHT_VERSION, 30 branch: MOONLIGHT_BRANCH as MoonlightBranch, 31 32 getConfig: moonlightNode.getConfig.bind(moonlightNode), 33 getConfigOption: moonlightNode.getConfigOption.bind(moonlightNode), 34 setConfigOption: moonlightNode.setConfigOption.bind(moonlightNode), 35 36 getNatives: moonlightNode.getNatives.bind(moonlightNode), 37 getLogger(id) { 38 return new Logger(id); 39 }, 40 lunast: new LunAST(), 41 moonmap: new Moonmap() 42 }; 43 44 try { 45 loadMappings(window.moonlight.moonmap, window.moonlight.lunast); 46 await loadProcessedExtensions(moonlightNode.processedExtensions); 47 await installWebpackPatcher(); 48 } catch (e) { 49 logger.error("Error setting up web-preload", e); 50 } 51 52 if (MOONLIGHT_ENV === "web-preload") { 53 window.addEventListener("DOMContentLoaded", () => { 54 installStyles(); 55 }); 56 } else { 57 installStyles(); 58 } 59} 60 61if (MOONLIGHT_ENV === "web-preload") { 62 load(); 63} else { 64 window._moonlightBrowserLoad = load; 65}