use new config

This commit is contained in:
Flam3rboy 2021-05-24 20:46:07 +02:00
parent f756b20a2b
commit e287d3e5bd
2 changed files with 16 additions and 11 deletions

View File

@ -11,13 +11,13 @@ import {
UserModel, UserModel,
toObject, toObject,
EVENTEnum, EVENTEnum,
Config,
} from "@fosscord/server-util"; } from "@fosscord/server-util";
import { setupListener } from "../listener/listener"; import { setupListener } from "../listener/listener";
import { IdentifySchema } from "../schema/Identify"; import { IdentifySchema } from "../schema/Identify";
import { Send } from "../util/Send"; import { Send } from "../util/Send";
import experiments from "./experiments.json"; import experiments from "./experiments.json";
import { check } from "./instanceOf"; import { check } from "./instanceOf";
import * as Config from "../util/Config";
// TODO: bot sharding // TODO: bot sharding
// TODO: check priviliged intents // TODO: check priviliged intents
@ -30,7 +30,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
const identify: IdentifySchema = data.d; const identify: IdentifySchema = data.d;
try { try {
const { jwtSecret } = Config.gatewayConfig.getAll().security; const { jwtSecret } = Config.get().security;
var decoded = await checkToken(identify.token, jwtSecret); // will throw an error if invalid var decoded = await checkToken(identify.token, jwtSecret); // will throw an error if invalid
} catch (error) { } catch (error) {
console.error("invalid token", error); console.error("invalid token", error);

View File

@ -1,3 +1,4 @@
// @ts-nocheck
import { Config } from "@fosscord/server-util"; import { Config } from "@fosscord/server-util";
import { getConfigPathForFile } from "@fosscord/server-util/dist/util/Config"; import { getConfigPathForFile } from "@fosscord/server-util/dist/util/Config";
import Ajv, { JSONSchemaType } from "ajv"; import Ajv, { JSONSchemaType } from "ajv";
@ -6,7 +7,7 @@ export interface DefaultOptions {
endpoint?: string; endpoint?: string;
security: { security: {
jwtSecret: string; jwtSecret: string;
} };
} }
const schema: JSONSchemaType<DefaultOptions> = { const schema: JSONSchemaType<DefaultOptions> = {
@ -14,23 +15,27 @@ const schema: JSONSchemaType<DefaultOptions> = {
properties: { properties: {
endpoint: { endpoint: {
type: "string", type: "string",
nullable: true nullable: true,
}, },
security: { security: {
type: "object", type: "object",
properties: { properties: {
jwtSecret: { jwtSecret: {
type: "string" type: "string",
}
},
required: ["jwtSecret"]
}, },
}, },
required: ["security"] required: ["jwtSecret"],
} },
},
required: ["security"],
};
const ajv = new Ajv(); const ajv = new Ajv();
const validator = ajv.compile(schema); const validator = ajv.compile(schema);
const configPath = getConfigPathForFile("fosscord", "gateway", ".json"); const configPath = getConfigPathForFile("fosscord", "gateway", ".json");
export const gatewayConfig = new Config<DefaultOptions>({path: configPath, schemaValidator: validator, schema: schema}) export const gatewayConfig = new Config<DefaultOptions>({
path: configPath,
schemaValidator: validator,
schema: schema,
});