this repo has no description
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 { WebEventPayloads, WebEventType } from "@moonlight-mod/types/core/event";
11
12async function load() {
13 delete window._moonlightWebLoad;
14 initLogger(moonlightNode.config);
15 const logger = new Logger("web-preload");
16
17 window.moonlight = {
18 patched: new Map(),
19 unpatched: new Set(),
20 pendingModules: new Set(),
21 enabledExtensions: new Set(),
22
23 events: createEventEmitter<WebEventType, WebEventPayloads>(),
24 patchingInternals: {
25 onModuleLoad,
26 registerPatch,
27 registerWebpackModule
28 },
29 localStorage: window.localStorage,
30
31 version: MOONLIGHT_VERSION,
32 branch: MOONLIGHT_BRANCH as MoonlightBranch,
33 apiLevel: constants.apiLevel,
34
35 getConfig: moonlightNode.getConfig.bind(moonlightNode),
36 getConfigOption: moonlightNode.getConfigOption.bind(moonlightNode),
37 setConfigOption: moonlightNode.setConfigOption.bind(moonlightNode),
38 writeConfig: moonlightNode.writeConfig.bind(moonlightNode),
39
40 getNatives: moonlightNode.getNatives.bind(moonlightNode),
41 getLogger(id) {
42 return new Logger(id);
43 },
44
45 lunast: new LunAST(),
46 moonmap: new Moonmap()
47 };
48
49 try {
50 loadMappings(window.moonlight.moonmap, window.moonlight.lunast);
51 await loadProcessedExtensions(moonlightNode.processedExtensions);
52 await installWebpackPatcher();
53 } catch (e) {
54 logger.error("Error setting up web-preload", e);
55 }
56
57 if (document.readyState === "complete") {
58 installStyles();
59 } else {
60 window.addEventListener("load", installStyles);
61 }
62}
63
64window._moonlightWebLoad = load;