this repo has no description
1import { Config } from "@moonlight-mod/types";
2import requireImport from "./util/import";
3import { getConfigPath } from "./util/data";
4
5const defaultConfig: Config = {
6 extensions: {
7 moonbase: true,
8 disableSentry: true,
9 noTrack: true,
10 noHideToken: true
11 },
12 repositories: ["https://moonlight-mod.github.io/extensions/repo.json"]
13};
14
15export function writeConfig(config: Config) {
16 const fs = requireImport("fs");
17 const configPath = getConfigPath();
18 fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
19}
20
21function readConfigNode(): Config {
22 const fs = requireImport("fs");
23 const configPath = getConfigPath();
24
25 if (!fs.existsSync(configPath)) {
26 writeConfig(defaultConfig);
27 return defaultConfig;
28 }
29
30 let config: Config = JSON.parse(fs.readFileSync(configPath, "utf8"));
31
32 // Assign the default values if they don't exist (newly added)
33 config = { ...defaultConfig, ...config };
34 writeConfig(config);
35
36 return config;
37}
38
39export function readConfig(): Config {
40 webPreload: {
41 return moonlightNode.config;
42 }
43
44 nodePreload: {
45 return readConfigNode();
46 }
47
48 injector: {
49 return readConfigNode();
50 }
51
52 throw new Error("Called readConfig() in an impossible environment");
53}