1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-09 12:12:35 +01:00

config override file

This commit is contained in:
Flam3rboy 2021-10-17 22:27:54 +02:00
parent b610e3f872
commit 3a76f0f33c
2 changed files with 17 additions and 2 deletions

3
.gitignore vendored
View File

@ -7,4 +7,5 @@ api/assets/*.css
database.db
tsconfig.tsbuildinfo
files/
.env
.env
config.json

View File

@ -1,5 +1,10 @@
import "missing-native-js-functions";
import { ConfigValue, ConfigEntity, DefaultConfigOptions } from "../entities/Config";
import path from "path";
import fs from "fs";
// TODO: yaml instead of json
const overridePath = path.join(process.cwd(), "config.json");
var config: ConfigValue;
var pairs: ConfigEntity[];
@ -12,8 +17,16 @@ export const Config = {
if (config) return config;
pairs = await ConfigEntity.find();
config = pairsToConfig(pairs);
config = (config || {}).merge(DefaultConfigOptions);
return this.set((config || {}).merge(DefaultConfigOptions));
try {
const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" }));
config = overrideConfig.merge(config);
} catch (error) {
fs.writeFileSync(overridePath, JSON.stringify(config, null, 4));
}
return this.set(config);
},
get: function get() {
return config;
@ -38,6 +51,7 @@ function applyConfig(val: ConfigValue) {
pair.value = obj;
return pair.save();
}
fs.writeFileSync(overridePath, JSON.stringify(val, null, 4));
return apply(val);
}