mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-25 19:52:36 +01:00
✨ config override file
This commit is contained in:
parent
1fc003abda
commit
842d6ea905
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,4 +7,5 @@ api/assets/*.css
|
||||
database.db
|
||||
tsconfig.tsbuildinfo
|
||||
files/
|
||||
.env
|
||||
.env
|
||||
config.json
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user