summary refs log tree commit diff
path: root/src/events/Connection.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-04-25 21:18:21 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-04-25 21:18:21 +0200
commit3427672659615cb43403f14cfd7909951744b034 (patch)
tree5223dcb1ade66df48543d5fca865f7f9d04dca18 /src/events/Connection.ts
parent:arrow_up: update server-util version (diff)
downloadserver-ts-3427672659615cb43403f14cfd7909951744b034.tar.xz
:sparkles: make erlpack optional
Diffstat (limited to 'src/events/Connection.ts')
-rw-r--r--src/events/Connection.ts9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/events/Connection.ts b/src/events/Connection.ts

index 96c7c441..473c992c 100644 --- a/src/events/Connection.ts +++ b/src/events/Connection.ts
@@ -6,6 +6,10 @@ import { setHeartbeat } from "../util/setHeartbeat"; import { Send } from "../util/Send"; import { CLOSECODES, OPCODES } from "../util/Constants"; import { createDeflate } from "zlib"; +var erlpack: any; +try { + erlpack = require("erlpack"); +} catch (error) {} // TODO: check rate limit // TODO: specify rate limit in config @@ -19,7 +23,10 @@ export async function Connection(this: Server, socket: WebSocket, request: Incom const { searchParams } = new URL(`http://localhost${request.url}`); // @ts-ignore socket.encoding = searchParams.get("encoding") || "json"; - if (!["json", "etf"].includes(socket.encoding)) return socket.close(CLOSECODES.Decode_error); + if (!["json", "etf"].includes(socket.encoding)) { + if (socket.encoding === "etf" && erlpack) throw new Error("Erlpack is not installed: 'npm i -D erlpack'"); + return socket.close(CLOSECODES.Decode_error); + } // @ts-ignore socket.version = Number(searchParams.get("version")) || 8;