From fbd1e99f32e9eda2d1202e18e34bc5e956dfe865 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Mon, 18 Jan 2021 11:58:30 +0000 Subject: [PATCH] Add a disconnect on websocket. --- package.json | 2 +- src/Client.ts | 5 +++++ src/websocket/client.ts | 10 +++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 5db0a807..f1371809 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "revolt.js", - "version": "3.0.0-beta.10", + "version": "3.0.0-beta.11", "main": "dist/index.js", "repository": "https://gitlab.insrt.uk/revolt/revolt.js", "author": "Paul Makles ", diff --git a/src/Client.ts b/src/Client.ts index 22e9710d..c6ac310e 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -125,6 +125,11 @@ export class Client extends EventEmitter { /** * Utility functions. */ + async logout() { + this.websocket.disconnect(); + await Axios.get('/auth/logout'); + } + async register(apiURL: string, data: Auth.CreateRequest): Promise { return (await Axios.post('/auth/create', data, { baseURL: apiURL })).data; } diff --git a/src/websocket/client.ts b/src/websocket/client.ts index 9116be8d..38f35330 100644 --- a/src/websocket/client.ts +++ b/src/websocket/client.ts @@ -16,6 +16,12 @@ export class WebSocketClient { this.client = client; } + disconnect() { + if (typeof this.ws !== 'undefined' && this.ws.readyState === WebSocket.OPEN) { + this.ws.close(); + } + } + connect(disallowReconnect?: boolean): Promise { this.client.emit('connecting'); @@ -28,9 +34,7 @@ export class WebSocketClient { } }; - if (typeof this.ws !== 'undefined' && this.ws.readyState === WebSocket.OPEN) { - this.ws.close(); - } + this.disconnect(); if (typeof this.client.configuration === 'undefined') { throw new Error("Attempted to open WebSocket without syncing configuration from server.");