UNPKG

@pubby/sdk

Version:
73 lines (68 loc) 3.05 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); require('../../lib/streams/operators/index.js'); var module$1 = require('../../module.js'); require('../../websocket/incoming/index.js'); require('../../websocket/outgoing/index.js'); var index = require('../room/index.js'); var message = require('./message.js'); var chatMessage_event = require('../../websocket/incoming/chat-message.event.js'); var filter = require('../../lib/streams/operators/filter.js'); var chatMessageRemove_event = require('../../websocket/outgoing/chat-message-remove.event.js'); var chatMessage_event$1 = require('../../websocket/outgoing/chat-message.event.js'); var ChatModule = /** @class */ (function (_super) { tslib.__extends(ChatModule, _super); function ChatModule(pubby) { var _this = _super.call(this, pubby) || this; // Importa módulo de sala pubby.use(index.RoomModule); // Exporta o módulo de chat pubby.chat = _this; return _this; } ChatModule.prototype.init = function () { var _this = this; this.onUpdate$ = this.pubby.ws.listen(chatMessage_event.ChatMessageResponse); this.onMessage$ = this.onUpdate$.pipe(filter.filter(function (_a) { var message = _a.message; return message.fromId && message.fromId !== _this.pubby.auth.user.id; })); // Message Event this.onUpdate$.createEvent("update", this, function (data) { return _this.createMessage(data.message); }); this.onMessage$.createEvent("message", this, function (data) { return _this.createMessage(data.message); }); }; ChatModule.prototype.createMessage = function (message$1) { return new message.PubbyMessage(message$1, this); }; ChatModule.prototype.remove = function (messageId) { return this.pubby.ws.addAsync(new chatMessageRemove_event.ChatMessageRemoveRequest(messageId)); }; ChatModule.prototype.send = function (messageOrText) { var _this = this; return new Promise(function (resolve) { var text; var replyId; if (messageOrText instanceof message.PubbyMessage) { text = messageOrText.text; replyId = messageOrText.replyId; } else { text = messageOrText; } _this.pubby.ws .addAsync(new chatMessage_event$1.ChatMessageRequest(text, replyId)) .then(function (msg) { return _this.createMessage(msg); }) .then(resolve); }); }; ChatModule.prototype.on = function (event) { var listeners = []; for (var _i = 1; _i < arguments.length; _i++) { listeners[_i - 1] = arguments[_i]; } return _super.prototype.on.apply(this, tslib.__spread([event], listeners)); }; return ChatModule; }(module$1.PubbyModule)); exports.ChatModule = ChatModule;