From 3427672659615cb43403f14cfd7909951744b034 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Sun, 25 Apr 2021 21:18:21 +0200 Subject: :sparkles: make erlpack optional --- src/events/Connection.ts | 9 ++++++++- src/events/Message.ts | 5 ++++- src/util/Send.ts | 7 ++++--- 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'src') 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; diff --git a/src/events/Message.ts b/src/events/Message.ts index 2d461e1d..37328b07 100644 --- a/src/events/Message.ts +++ b/src/events/Message.ts @@ -1,5 +1,8 @@ import WebSocket, { Data } from "../util/WebSocket"; -import erlpack from "erlpack"; +var erlpack: any; +try { + erlpack = require("erlpack"); +} catch (error) {} import OPCodeHandlers from "../opcodes"; import { Payload, CLOSECODES } from "../util/Constants"; import { instanceOf, Tuple } from "lambert-server"; diff --git a/src/util/Send.ts b/src/util/Send.ts index b691b525..09e947a5 100644 --- a/src/util/Send.ts +++ b/src/util/Send.ts @@ -1,7 +1,8 @@ -import erlpack from "erlpack"; -import { promisify } from "util"; +var erlpack: any; +try { + erlpack = require("erlpack"); +} catch (error) {} import { Payload } from "../util/Constants"; -import { deflateSync } from "zlib"; import WebSocket from "./WebSocket"; -- cgit 1.5.1