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
28 version: MOONLIGHT_VERSION,
29 branch: MOONLIGHT_BRANCH as MoonlightBranch,
30
31 getConfig: moonlightNode.getConfig.bind(moonlightNode),
32 getConfigOption: moonlightNode.getConfigOption.bind(moonlightNode),
33 getNatives: moonlightNode.getNatives.bind(moonlightNode),
34 getLogger(id) {
35 return new Logger(id);
36 },
37 lunast: new LunAST(),
38 moonmap: new Moonmap()
39 };
40
41 try {
42 loadMappings(window.moonlight.moonmap, window.moonlight.lunast);
43 await loadProcessedExtensions(moonlightNode.processedExtensions);
44 await installWebpackPatcher();
45 } catch (e) {
46 logger.error("Error setting up web-preload", e);
47 }
48
49 if (MOONLIGHT_ENV === "web-preload") {
50 window.addEventListener("DOMContentLoaded", () => {
51 installStyles();
52 });
53 } else {
54 installStyles();
55 }
56}
57
58if (MOONLIGHT_ENV === "web-preload") {
59 load();
60} else {
61 window._moonlightBrowserLoad = load;
62}