summary refs log tree commit diff
path: root/gateway/src/util/Config.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-12 20:22:16 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-12 20:22:16 +0200
commitbdc0cc723c7d5974a4c4e3e8b0793917684ec85d (patch)
tree7123410553a6698d90ddaae69b05cde8402ded36 /gateway/src/util/Config.ts
parent1.3.52 (diff)
parent:sparkles: gateway (diff)
downloadserver-bdc0cc723c7d5974a4c4e3e8b0793917684ec85d.tar.xz
Merge branch 'master' into util
Diffstat (limited to '')
-rw-r--r--gateway/src/util/Config.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/gateway/src/util/Config.ts b/gateway/src/util/Config.ts
new file mode 100644

index 00000000..9ceb8cd5 --- /dev/null +++ b/gateway/src/util/Config.ts
@@ -0,0 +1,41 @@ +// @ts-nocheck +import { Config } from "@fosscord/server-util"; +import { getConfigPathForFile } from "@fosscord/server-util/dist/util/Config"; +import Ajv, { JSONSchemaType } from "ajv"; + +export interface DefaultOptions { + endpoint?: string; + security: { + jwtSecret: string; + }; +} + +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, +});