diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/api/Server.ts | 3 | ||||
-rw-r--r-- | src/util/plugin/PluginConfig.ts | 14 | ||||
-rw-r--r-- | src/util/util/Config.ts | 19 |
3 files changed, 17 insertions, 19 deletions
diff --git a/src/api/Server.ts b/src/api/Server.ts index 03c68af1..007c8163 100644 --- a/src/api/Server.ts +++ b/src/api/Server.ts @@ -1,5 +1,6 @@ import { Config, getOrInitialiseDatabase, initEvent, registerRoutes } from "@fosscord/util"; import { NextFunction, Request, Response, Router } from "express"; +import fs from "fs"; import { Server, ServerOptions } from "lambert-server"; import morgan from "morgan"; import path from "path"; @@ -12,8 +13,6 @@ import { initRateLimits } from "./middlewares/RateLimit"; import TestClient from "./middlewares/TestClient"; import { initTranslation } from "./middlewares/Translation"; import { initInstance } from "./util/handlers/Instance"; -import fs from "fs"; -import { PluginConfig } from "util/plugin/PluginConfig"; export interface FosscordServerOptions extends ServerOptions {} diff --git a/src/util/plugin/PluginConfig.ts b/src/util/plugin/PluginConfig.ts index b9c8aef0..17ec172c 100644 --- a/src/util/plugin/PluginConfig.ts +++ b/src/util/plugin/PluginConfig.ts @@ -57,12 +57,14 @@ function applyConfig(val: any) { if (!pair) pair = new PluginConfigEntity(); pair.key = key; - pair.value = obj; - if (!pair.key || pair.key == null) { - console.log(`[PluginConfig] WARN: Empty key`); - console.log(pair); - if (Environment.isDebug) debugger; - } else return pair.save(); + if (pair.value != obj) { + pair.value = obj; + if (!pair.key || pair.key == null) { + console.log(`[PluginConfig] WARN: Empty key`); + console.log(pair); + if (Environment.isDebug) debugger; + } else return pair.save(); + } } if (process.env.PLUGIN_CONFIG_PATH) { if (Environment.isDebug) console.log(`Writing config: ${process.env.PLUGIN_CONFIG_PATH}`); diff --git a/src/util/util/Config.ts b/src/util/util/Config.ts index 2879b955..567cf129 100644 --- a/src/util/util/Config.ts +++ b/src/util/util/Config.ts @@ -5,7 +5,6 @@ import { ConfigValue } from "../config"; import { ConfigEntity } from "../entities/Config"; const overridePath = process.env.CONFIG_PATH ?? ""; -const initialPath = path.join(process.cwd(), "initial.json"); let config: ConfigValue; let pairs: ConfigEntity[]; @@ -18,25 +17,21 @@ export const Config = { if (config) return config; console.log("[Config] Loading configuration..."); pairs = await ConfigEntity.find(); + console.log(`[Config] Loaded ${pairs.length} configuration pairs`); config = pairsToConfig(pairs); + console.log("[Config] Configuration loaded"); //config = (config || {}).merge(new ConfigValue()); config = OrmUtils.mergeDeep(new ConfigValue(), config); + console.log("[Config] Configuration merged"); if (process.env.CONFIG_PATH) try { const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); config = OrmUtils.mergeDeep(config, overrideConfig); + console.log("[Config] Override configuration loaded"); } catch (error) { fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); } - if (fs.existsSync(initialPath)) { - console.log("[Config] Importing initial configuration..."); - try { - const overrideConfig = JSON.parse(fs.readFileSync(initialPath, { encoding: "utf8" })); - config = overrideConfig.merge(config); - fs.rmSync(initialPath); - } catch (error) {} - } if (fs.existsSync(path.join(process.cwd(), "initial.json"))) try { @@ -77,8 +72,10 @@ function applyConfig(val: ConfigValue) { if (!pair) pair = new ConfigEntity(); pair.key = key; - pair.value = obj; - return pair.save(); + if (pair.value != obj) { + pair.value = obj; + return pair.save(); + } } if (process.env.CONFIG_PATH) { if (/--debug|--inspect/.test(process.execArgv.join(" "))) console.log(`Writing config: ${process.env.CONFIG_PATH}`); |