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:18:05 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-12 20:18:05 +0200
commitd24348ef0f53c80ad618056c45eda6c147525133 (patch)
tree7cf427eb871c2127aef1fdd6c9659452415cd0d6 /gateway/src/util/Config.ts
parentMerge branch 'master' into gateway (diff)
downloadserver-d24348ef0f53c80ad618056c45eda6c147525133.tar.xz
:sparkles: gateway
Diffstat (limited to 'gateway/src/util/Config.ts')
-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, +});