UNPKG

node-groupme

Version:

The only GroupMe API library that isn't a million years old.

61 lines 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const faye_1 = __importDefault(require("faye")); const handlers_1 = __importDefault(require("./handlers")); // Faye.logger = console; class WS { constructor(client) { this.init = async () => { return new Promise((resolve, reject) => { if (!this.client.user) return reject('Client user must be defined before init'); this.faye = new faye_1.default.Client('https://push.groupme.com/faye', { timeout: 30, retry: 5, }); this.faye.addExtension({ outgoing: (msg, callback) => { if (!msg.channel.match(/\/meta\/(?!subscribe)/)) msg.ext = { access_token: this.client.token }; callback(msg); }, incoming: (msg, callback) => { if (!msg.data?.type) return callback(msg); if (msg.data.type in handlers_1.default) handlers_1.default[msg.data.type](this.client, msg); else console.log(`Unknown websocket message type: ${msg.data.type}`, msg); callback(msg); }, }); this.faye.subscribe(`/user/${this.client.user.id}`).then(() => resolve()); // this.debug() }); }; this.client = client; } async subscribeToGroup(id) { return await this.faye.subscribe(`/group/${id}`); } async close() { return await this.faye.disconnect(); } debug() { this.faye.addExtension({ outgoing: (msg, callback) => { console.log('[SENT]', msg); callback(msg); }, incoming: (msg, callback) => { console.log('[RECD]', msg); callback(msg); }, }); } } exports.default = WS; //# sourceMappingURL=Websocket.js.map