diff options
Diffstat (limited to 'src/gateway/opcodes/instanceOf.ts')
-rw-r--r-- | src/gateway/opcodes/instanceOf.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gateway/opcodes/instanceOf.ts b/src/gateway/opcodes/instanceOf.ts new file mode 100644 index 00000000..95d74963 --- /dev/null +++ b/src/gateway/opcodes/instanceOf.ts @@ -0,0 +1,18 @@ +import { WebSocket } from "@fosscord/gateway"; +import { instanceOf } from "@fosscord/util"; +import { CLOSECODES } from "../util/Constants"; + +export function check(this: WebSocket, schema: any, data: any) { + try { + const error = instanceOf(schema, data, { path: "body" }); + if (error !== true) { + throw error; + } + return true; + } catch (error) { + console.error(error); + // invalid payload + this.close(CLOSECODES.Decode_error); + throw error; + } +} |