summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/.DS_Storebin0 -> 6148 bytes
-rw-r--r--src/assets/codes.ts31
-rw-r--r--src/assets/datastru.ts15
-rw-r--r--src/extras/Database.ts5
-rw-r--r--src/index.ts43
5 files changed, 94 insertions, 0 deletions
diff --git a/src/.DS_Store b/src/.DS_Store
new file mode 100644

index 00000000..b1f8af50 --- /dev/null +++ b/src/.DS_Store
Binary files differdiff --git a/src/assets/codes.ts b/src/assets/codes.ts new file mode 100644
index 00000000..5b9a5546 --- /dev/null +++ b/src/assets/codes.ts
@@ -0,0 +1,31 @@ +export enum OPCODES { + Dispatch, + Heartbeat, + Identify, + Presence_Update, + Voice_State_Update, + Resume, + Reconnect, + Request_Guild_Members, + Invalid_Session, + Hello, + Heartbeat_ACK, +} +export enum CLOSECODES { + Unknown_error = 4000, + Unknown_opcode, + Decode_error, + Not_authenticated, + Authentication_failed, + Already_authenticated, + Invalid_session, + Invalid_seq, + Rate_limited, + Session_timed_out, + Invalid_shard, + Sharding_required, + Invalid_API_version, + Invalid_intent, + Disallowed_intent, +} +export enum SEQUENCENUM {} diff --git a/src/assets/datastru.ts b/src/assets/datastru.ts new file mode 100644
index 00000000..038102ec --- /dev/null +++ b/src/assets/datastru.ts
@@ -0,0 +1,15 @@ +//* https://discord.com/developers/docs/topics/gateway + +import { OPCODES, SEQUENCENUM } from "./codes"; + +export interface message_prod { + op: OPCODES; + d: object; + s: SEQUENCENUM; + t: string; +} + +export interface message_dev { + req_type: "new_auth" | "check_auth"; + token?: string; +} diff --git a/src/extras/Database.ts b/src/extras/Database.ts new file mode 100644
index 00000000..9de00f9f --- /dev/null +++ b/src/extras/Database.ts
@@ -0,0 +1,5 @@ +import { MongoDatabase } from "lambert-db"; + +const db = new MongoDatabase(); + +export default db; diff --git a/src/index.ts b/src/index.ts new file mode 100644
index 00000000..45374721 --- /dev/null +++ b/src/index.ts
@@ -0,0 +1,43 @@ +import WebSocket from "ws"; +import DB from "./extras/Database"; +import { message_dev } from "./assets/datastru"; +import { v4 } from "uuid"; + +class Server { + db: any; + constructor() { + this.db = DB; + } + + async listen(): Promise<void> { + await this.db.init(); + const wss = new WebSocket.Server({ port: 8080 }); + + wss.on("connection", (ws) => { + ws.on("message", async (msg: any) => { + const message: message_dev = msg; + + if (message.req_type) { + switch (message.req_type) { + case "new_auth": + const token = v4(); + await this.db.data.auth.push({ token }); + return ws.send({ new_token: token }); + case "check_auth": + if (!message.token) { + return ws.send({ error: "token not providen" }); + } + return this.db.data.auth({ token: message.token }).get(); + } + } else { + ws.send({ error: "req_type not providen" }); + } + }); + + ws.send("connected"); + }); + } +} + +const s = new Server(); +s.listen();