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