Config loader fixed

This commit is contained in:
Pavel Gnedov 2022-05-01 22:03:44 +07:00
parent dad9ed0287
commit b6e8db9249
6 changed files with 63 additions and 6 deletions

3
.gitignore vendored
View file

@ -32,4 +32,5 @@ lerna-debug.log*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/extensions.json
configs/main-config.jsonc

View file

@ -0,0 +1,39 @@
{
"mailListener": {
"issueNumberParser": "\\b(?<=#)\\d+\\b",
"imapSimpleConfig": {
"imap": {
"user": "",
"password": "",
"host": "",
"port": 143,
// tls: true,
"autotls": "always",
"authTimeout": 5000
}
},
"updateInterval": 180000, // 3 min
"boxName": "INBOX"
},
"rssListener": {
"subscriptions": [
{
"url": "",
"issueNumberParser": "\\b(?<=#)\\d+\\b"
}
],
"updateInterval": 600000 // 10 min
},
"issueChangesQueue": {
"updateInterval": 5000, // 5 sec
"itemsLimit": 3
},
"redmineUrlPrefix": "",
"webhooks": [
{
"url": "",
"apiKeyName": "",
"apiKeyValue": ""
}
]
}

View file

@ -1,10 +1,18 @@
import { readFileSync } from 'fs';
import { join } from 'path';
import { parse } from 'jsonc-parser';
import { MainConfigModel } from "../models/main-config-model";
import { MainConfigModel } from '../models/main-config-model';
export default (): MainConfigModel => {
const rawData = readFileSync(join(__dirname, '..', '..', 'configs', 'main-config.jsonc'), {encoding: "utf-8"});
const userDefinedConfigPath =
process.env['REDMINE_ISSUE_EVENT_EMITTER_CONFIG_PATH'];
const defaultConfigPath = 'configs';
const configPath = userDefinedConfigPath || defaultConfigPath;
const rawData = readFileSync(join(configPath, 'main-config.jsonc'), {
encoding: 'utf-8',
});
const data: MainConfigModel = parse(rawData);
return data;
};
};

View file

@ -2,4 +2,4 @@ export function random(min: number, max: number): number {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
}

View file

@ -25,6 +25,7 @@
"@nestjs/config": "^2.0.0",
"@nestjs/core": "^8.0.0",
"@nestjs/platform-express": "^8.0.0",
"@nestjs/platform-socket.io": "^8.4.4",
"@nestjs/serve-static": "^2.2.2",
"@nestjs/websockets": "^8.4.4",
"imap-simple": "^5.1.0",

View file

@ -659,6 +659,14 @@
multer "1.4.4"
tslib "2.3.1"
"@nestjs/platform-socket.io@^8.4.4":
version "8.4.4"
resolved "https://registry.yarnpkg.com/@nestjs/platform-socket.io/-/platform-socket.io-8.4.4.tgz#6fe10205387271b80027dd48cf9a986c1c397635"
integrity sha512-+/OE5W8J8K7oqNKBYAKa2e4c6OjKOsYN8XL0tBRk67yhB5/gtO93MV7IomAAVkOXPGi8u3sClxXxbSN3o5jywA==
dependencies:
socket.io "4.4.1"
tslib "2.3.1"
"@nestjs/schematics@^8.0.0", "@nestjs/schematics@^8.0.3":
version "8.0.9"
resolved "https://registry.yarnpkg.com/@nestjs/schematics/-/schematics-8.0.9.tgz#796e06c14ba43930abb12cde0e0144b16925a6a3"
@ -4454,7 +4462,7 @@ socket.io-parser@~4.0.4:
component-emitter "~1.3.0"
debug "~4.3.1"
socket.io@^4.4.1:
socket.io@4.4.1, socket.io@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.4.1.tgz#cd6de29e277a161d176832bb24f64ee045c56ab8"
integrity sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==