summary refs log tree commit diff
path: root/src/util/Config.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-05-23 20:48:51 +0200
committerGitHub <noreply@github.com>2021-05-23 20:48:51 +0200
commitf756b20a2b08556b54dbf9667e910569203b07d1 (patch)
tree0a5524e67f305aca11ef507139d80b43f37cf8da /src/util/Config.ts
parent:arrow_up: update dependency (diff)
parentFix: No more typecasting required (diff)
downloadserver-f756b20a2b08556b54dbf9667e910569203b07d1.tar.xz
Merge pull request #69 from DiegoMagdaleno/master
Config updates and StrictNullChecks
Diffstat (limited to 'src/util/Config.ts')
-rw-r--r--src/util/Config.ts45
1 files changed, 30 insertions, 15 deletions
diff --git a/src/util/Config.ts b/src/util/Config.ts

index eee20e1d..8489888c 100644 --- a/src/util/Config.ts +++ b/src/util/Config.ts
@@ -1,21 +1,36 @@ import { Config } from "@fosscord/server-util"; - -export default { - init() { - return Config.init({ gateway: DefaultOptions }); - }, - get() { - return Config.getAll().gateway; - }, - set(val: any) { - return Config.setAll({ gateway: val }); - }, - getAll: Config.getAll, - setAll: Config.setAll, -}; +import { getConfigPathForFile } from "@fosscord/server-util/dist/util/Config"; +import Ajv, { JSONSchemaType } from "ajv"; export interface DefaultOptions { endpoint?: string; + security: { + jwtSecret: string; + } } -export const DefaultOptions: DefaultOptions = {}; +const schema: JSONSchemaType<DefaultOptions> = { + type: "object", + properties: { + endpoint: { + type: "string", + nullable: true + }, + security: { + type: "object", + properties: { + jwtSecret: { + type: "string" + } + }, + required: ["jwtSecret"] + }, + }, + required: ["security"] +} + +const ajv = new Ajv(); +const validator = ajv.compile(schema); + +const configPath = getConfigPathForFile("fosscord", "gateway", ".json"); +export const gatewayConfig = new Config<DefaultOptions>({path: configPath, schemaValidator: validator, schema: schema}) \ No newline at end of file