diff --git a/use-tether/package.json b/use-tether/package.json index a688b80..fb380c2 100644 --- a/use-tether/package.json +++ b/use-tether/package.json @@ -1,6 +1,6 @@ { "name": "use-tether", - "version": "1.0.1", + "version": "1.0.2", "author": "Braydon (Rainnny) ", "description": "An API designed to provide real-time access to a user's Discord data.", "keywords": [ diff --git a/use-tether/src/hook/websocket.ts b/use-tether/src/hook/websocket.ts index 5307f3d..3718e41 100644 --- a/use-tether/src/hook/websocket.ts +++ b/use-tether/src/hook/websocket.ts @@ -19,7 +19,7 @@ export const useTetherWS = ( secure: true, } ): DiscordUser | undefined => { - const { endpoint, secure } = config; + const { endpoint, secure, debug } = config; const url: string = `ws${secure && "s"}://${endpoint}/gateway`; const [user, setUser] = useState(); @@ -35,19 +35,34 @@ export const useTetherWS = ( */ const connect = () => { console.log("[Tether] Connecting to the WebSocket server..."); + if (debug) { + console.debug("[Tether] Endpoint:", url); + } socket = new WebSocket(url); // Connect to the gateway // Track the user when the WS connects socket.addEventListener("open", () => { + if (debug) { + console.debug("[Tether] Sending listen to user packet..."); + } socket.send(JSON.stringify({ op: 0, snowflake: snowflake })); console.log("[Tether] WebSocket connection established!"); }); - socket.addEventListener("close", connect); // Reconnect on close + socket.addEventListener("close", () => { + if (debug) { + console.debug( + "[Tether] Connection to the WS server was lost, reconnecting..." + ); + } + connect(); + }); // Reconnect on close socket.addEventListener("message", (event) => { - const statusPacket: UserStatusPacket = JSON.parse( - event.data - ) as UserStatusPacket; + const json = JSON.parse(event.data); + if (debug) { + console.debug("[Tether] Received Packet:", json); + } + const statusPacket: UserStatusPacket = json as UserStatusPacket; if (statusPacket.op === 1) { setUser(statusPacket.user); } diff --git a/use-tether/src/index.ts b/use-tether/src/index.ts index 73bf79a..7af0cd9 100644 --- a/use-tether/src/index.ts +++ b/use-tether/src/index.ts @@ -5,7 +5,6 @@ export * from "@/hook/websocket"; export * from "@/types/config"; export * from "@/types/snowflake"; -export * from "@/types/user/discord-user"; export * from "@/types/user/user-flags"; export * from "@/types/user/avatar/avatar"; export * from "@/types/user/avatar/decoration-asset"; @@ -19,3 +18,4 @@ export * from "@/types/user/connected-account"; export * from "@/types/user/clan/clan-badge"; export * from "@/types/user/clan/clan"; export * from "@/types/user/nitro-subscription"; +export * from "@/types/user/discord-user"; diff --git a/use-tether/src/types/config.ts b/use-tether/src/types/config.ts index 2dd23f7..7f22c76 100644 --- a/use-tether/src/types/config.ts +++ b/use-tether/src/types/config.ts @@ -8,4 +8,9 @@ export type TetherConfig = { * Whether the connection should be secure. */ secure?: boolean; + + /** + * Whether to enable debugging. + */ + debug?: boolean; };