summary refs log tree commit diff
path: root/src/Server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/Server.ts')
-rw-r--r--src/Server.ts55
1 files changed, 0 insertions, 55 deletions
diff --git a/src/Server.ts b/src/Server.ts
deleted file mode 100644

index d4b3271c..00000000 --- a/src/Server.ts +++ /dev/null
@@ -1,55 +0,0 @@ -import "missing-native-js-functions"; -import dotenv from "dotenv"; -dotenv.config(); -import { Config, db, RabbitMQ } from "@fosscord/server-util"; -import { Server as WebSocketServer } from "ws"; -import { Connection } from "./events/Connection"; -import http from "http"; - -export class Server { - public ws: WebSocketServer; - public port: number; - public server: http.Server; - public production: boolean; - - constructor({ port, server, production }: { port: number; server?: http.Server; production?: boolean }) { - this.port = port; - this.production = production || false; - - if (server) this.server = server; - else - this.server = http.createServer(function (req, res) { - res.writeHead(200).end("Online"); - }); - - this.ws = new WebSocketServer({ - maxPayload: 4096, - server: this.server, - }); - this.ws.on("connection", Connection); - this.ws.on("error", console.error); - } - - async setupSchema() { - // TODO: adjust expireAfterSeconds -> lower - await Promise.all([db.collection("events").createIndex({ created_at: 1 }, { expireAfterSeconds: 60 })]); - } - - async start(): Promise<void> { - // @ts-ignore - await (db as Promise<Connection>); - await this.setupSchema(); - await Config.init(); - await RabbitMQ.init(); - console.log("[Database] connected"); - if (!this.server.listening) { - this.server.listen(this.port); - console.log(`[Gateway] online on 0.0.0.0:${this.port}`); - } - } - - async stop() { - await db.close(); - this.server.close(); - } -}