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 { 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}