this repo has no description
at v1.3.4 3.0 kB view raw
1import type { Logger } from "./logger"; 2import type { Config, ConfigExtension } from "./config"; 3import type { DetectedExtension, IdentifiedPatch, IdentifiedWebpackModule, ProcessedExtensions } from "./extension"; 4import type EventEmitter from "events"; 5import type LunAST from "@moonlight-mod/lunast"; 6import type Moonmap from "@moonlight-mod/moonmap"; 7import type { EventPayloads, EventType, MoonlightEventEmitter } from "./core/event"; 8import { MoonlightFS } from "./fs"; 9 10export type MoonlightHost = { 11 config: Config; 12 extensions: DetectedExtension[]; 13 processedExtensions: ProcessedExtensions; 14 asarPath: string; 15 events: EventEmitter; 16 17 version: string; 18 branch: MoonlightBranch; 19 20 getConfig: (ext: string) => ConfigExtension["config"]; 21 getConfigPath: () => Promise<string>; 22 getConfigOption: <T>(ext: string, name: string) => T | undefined; 23 setConfigOption: <T>(ext: string, name: string, value: T) => void; 24 writeConfig: (config: Config) => Promise<void>; 25 26 getLogger: (id: string) => Logger; 27 getMoonlightDir: () => string; 28 getExtensionDir: (ext: string) => string; 29}; 30 31export type MoonlightNode = { 32 config: Config; 33 extensions: DetectedExtension[]; 34 processedExtensions: ProcessedExtensions; 35 nativesCache: Record<string, any>; 36 isBrowser: boolean; 37 38 version: string; 39 branch: MoonlightBranch; 40 41 getConfig: (ext: string) => ConfigExtension["config"]; 42 getConfigOption: <T>(ext: string, name: string) => T | undefined; 43 setConfigOption: <T>(ext: string, name: string, value: T) => Promise<void>; 44 writeConfig: (config: Config) => Promise<void>; 45 46 getNatives: (ext: string) => any | undefined; 47 getLogger: (id: string) => Logger; 48 getMoonlightDir: () => string; 49 getExtensionDir: (ext: string) => string; 50}; 51 52export type MoonlightNodeSandboxed = { 53 fs: MoonlightFS; 54 addCors: (url: string) => void; 55 addBlocked: (url: string) => void; 56}; 57 58export type MoonlightWeb = { 59 patched: Map<string, Set<string>>; 60 unpatched: Set<IdentifiedPatch>; 61 pendingModules: Set<IdentifiedWebpackModule>; 62 enabledExtensions: Set<string>; 63 events: MoonlightEventEmitter<EventType, EventPayloads>; 64 patchingInternals: { 65 onModuleLoad: (moduleId: string | string[], callback: (moduleId: string) => void) => void; 66 registerPatch: (patch: IdentifiedPatch) => void; 67 registerWebpackModule: (module: IdentifiedWebpackModule) => void; 68 }; 69 localStorage: Storage; 70 71 version: string; 72 branch: MoonlightBranch; 73 apiLevel: number; 74 75 // Re-exports for ease of use 76 getConfig: MoonlightNode["getConfig"]; 77 getConfigOption: MoonlightNode["getConfigOption"]; 78 setConfigOption: MoonlightNode["setConfigOption"]; 79 writeConfig: MoonlightNode["writeConfig"]; 80 81 getNatives: (ext: string) => any | undefined; 82 getLogger: (id: string) => Logger; 83 84 lunast: LunAST; 85 moonmap: Moonmap; 86}; 87 88export enum MoonlightEnv { 89 Injector = "injector", 90 NodePreload = "node-preload", 91 WebPreload = "web-preload" 92} 93 94export enum MoonlightBranch { 95 STABLE = "stable", 96 NIGHTLY = "nightly", 97 DEV = "dev" 98}