@guildedts/ws
Advanced tools
Comparing version 0.3.3 to 0.4.0
# @guildedts/ws | ||
## 0.4.0 | ||
### Minor Changes | ||
- # Features | ||
- Add `User-Agent` to headers when connnecting to WebSocket | ||
- Add `raw` to `WSManagerEvents` | ||
# Fixes | ||
- Use `s` in message payloads for `lastMessageId` | ||
## 0.3.3 | ||
@@ -4,0 +17,0 @@ |
@@ -10,2 +10,3 @@ "use strict"; | ||
const guilded_api_typings_1 = require("guilded-api-typings"); | ||
const { version } = require('../package.json'); | ||
/** The Websocket manager for the Guilded API. */ | ||
@@ -67,3 +68,4 @@ class WebsocketManager extends events_1.default { | ||
Authorization: `Bearer ${this.token}`, | ||
...(this.lastMessageId ? { 'guilded-last-message-id': this.lastMessageId } : {}), | ||
'User-Agent': `@guildedts/ws@${version} Node.JS@${process.versions.node}`, | ||
'guilded-last-message-id': this.lastMessageId ?? '', | ||
}, | ||
@@ -73,4 +75,5 @@ }); | ||
this.socket.on('message', (raw) => { | ||
const { op, t, d } = JSON.parse(raw.toString()); | ||
this.onSocketMessage(op, t, d); | ||
const data = JSON.parse(raw.toString()); | ||
this.emit('raw', data); | ||
this.onSocketMessage(data); | ||
}); | ||
@@ -102,6 +105,8 @@ this.socket.on('ping', this.onSocketPing.bind(this)); | ||
/** @ignore */ | ||
onSocketMessage(op, event, data) { | ||
onSocketMessage({ op, t, d, s }) { | ||
if (s) | ||
this.lastMessageId = s; | ||
switch (op) { | ||
case guilded_api_typings_1.WSOpCodes.Event: | ||
this.emit('event', event, data); | ||
this.emit('event', t, d); | ||
break; | ||
@@ -111,5 +116,7 @@ case guilded_api_typings_1.WSOpCodes.Ready: | ||
this.readyAt = new Date(); | ||
this.lastMessageId = data.lastMessageId; | ||
this.emit('ready', data.user); | ||
this.emit('ready', d.user); | ||
break; | ||
case guilded_api_typings_1.WSOpCodes.Resume: | ||
delete this.lastMessageId; | ||
break; | ||
} | ||
@@ -116,0 +123,0 @@ } |
{ | ||
"name": "@guildedts/ws", | ||
"version": "0.3.3", | ||
"version": "0.4.0", | ||
"description": "The Websocket API manager for Guilded.TS.", | ||
@@ -40,3 +40,3 @@ "main": "lib/index.js", | ||
"devDependencies": { | ||
"guilded-api-typings": "^0.5.3", | ||
"guilded-api-typings": "^0.5.4", | ||
"rimraf": "^3.0.2", | ||
@@ -43,0 +43,0 @@ "typescript": "^4.6.3" |
/// <reference types="node" /> | ||
import Websocket from 'ws'; | ||
import EventEmitter from 'events'; | ||
import { APIClientUser, WSEvents } from 'guilded-api-typings'; | ||
import { APIClientUser, WSEvents, WSMessagePayload } from 'guilded-api-typings'; | ||
/** The Websocket manager for the Guilded API. */ | ||
@@ -85,2 +85,4 @@ export declare class WebsocketManager extends EventEmitter { | ||
disconnect: [ws: WebsocketManager]; | ||
/** Emitted when a message is received. */ | ||
raw: [data: WSMessagePayload]; | ||
/** Emitted when data is received from the Websocket API. */ | ||
@@ -87,0 +89,0 @@ event: { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
20893
242