Skip to content

Commit eeaa9d3

Browse files
committed
Use the npm package config to load the config.
This is what was used prior to #347. It was a nice idea motivated to drop a dependency that was confusing. It was just never followed through and was underestimated how much disruption it would cause. It was also believed that the library would mean there could only ever be one global copy of the config, It was followed up by: #369 #357 #429 https://github.com/matrix-org/mjolnir/pull/397/files #365 For simplicity sake I am reinstating the library. The practice of loading default.yaml by default is also dangerous and has led to issues multiple times in #mjolnir:matrix.org. It is a sample and not a default. In a following commit I will be adding the ability to specify the config to use from the cli.
1 parent 0845636 commit eeaa9d3

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"version": "sed -i '/# version automated/s/[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*/'$npm_package_version'/' synapse_antispam/setup.py && git add synapse_antispam/setup.py && cat synapse_antispam/setup.py"
2020
},
2121
"devDependencies": {
22+
"@types/config": "^3.3.0",
2223
"@types/crypto-js": "^4.0.2",
2324
"@types/express": "^4.17.13",
2425
"@types/html-to-text": "^8.0.1",
@@ -43,6 +44,7 @@
4344
"dependencies": {
4445
"await-lock": "^2.2.2",
4546
"body-parser": "^1.20.1",
47+
"config": "^3.3.8",
4648
"express": "^4.17",
4749
"html-to-text": "^8.0.0",
4850
"humanize-duration": "^3.27.1",

src/config.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import * as fs from "fs";
1818
import * as path from "path";
1919
import { load } from "js-yaml";
2020
import { MatrixClient } from "matrix-bot-sdk";
21+
import Config from "config";
2122

2223
/**
2324
* The configuration, as read from production.yaml
@@ -171,11 +172,6 @@ const defaultConfig: IConfig = {
171172
};
172173

173174
export function read(): IConfig {
174-
const config_dir = process.env.NODE_CONFIG_DIR || "./config";
175-
const config_file = `${process.env.NODE_ENV || "default"}.yaml`
176-
177-
const content = fs.readFileSync(path.join(config_dir, config_file), "utf8");
178-
const parsed = load(content);
179-
const config = {...defaultConfig, ...(parsed as object)} as IConfig;
175+
const config = Config.util.extendDeep({}, defaultConfig, Config.util.toObject()) as IConfig;
180176
return config;
181177
}

yarn.lock

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@
122122
resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8"
123123
integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==
124124

125+
"@types/config@^3.3.0":
126+
version "3.3.0"
127+
resolved "https://registry.yarnpkg.com/@types/config/-/config-3.3.0.tgz#2b632cb37c639bf8d57054561f5a77d31dcebc1e"
128+
integrity sha512-9kZSbl3/X3TVNowLCu5HFQdQmD+4287Om55avknEYkuo6R2dDrsp/EXEHUFvfYeG7m1eJ0WYGj+cbcUIhARJAQ==
129+
125130
"@types/connect@*":
126131
version "3.4.35"
127132
resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz"
@@ -776,6 +781,13 @@ [email protected]:
776781
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
777782
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
778783

784+
config@^3.3.8:
785+
version "3.3.8"
786+
resolved "https://registry.yarnpkg.com/config/-/config-3.3.8.tgz#14ef7aef22af25877fdaee696ec64d761feb7be0"
787+
integrity sha512-rFzF6VESOdp7wAXFlB9IOZI4ouL05g3A03v2eRcTHj2JBQaTNJ40zhAUl5wRbWHqLZ+uqp/7OE0BWWtAVgrong==
788+
dependencies:
789+
json5 "^2.2.1"
790+
779791
780792
version "0.5.3"
781793
resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"
@@ -2052,6 +2064,11 @@ json5@^1.0.1:
20522064
dependencies:
20532065
minimist "^1.2.0"
20542066

2067+
json5@^2.2.1:
2068+
version "2.2.1"
2069+
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
2070+
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
2071+
20552072
jsonpointer@^5.0.0:
20562073
version "5.0.1"
20572074
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559"

0 commit comments

Comments
 (0)