diff options
Diffstat (limited to 'gateway/src/util/Config.ts')
-rw-r--r-- | gateway/src/util/Config.ts | 41 |
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, +}); |