UNPKG

@pubby/sdk

Version:
69 lines (66 loc) 2.88 kB
import { __extends, __spread } from 'tslib'; import '../../lib/streams/operators/index.js'; import { PubbyModule } from '../../module.js'; import '../../websocket/incoming/index.js'; import '../../websocket/outgoing/index.js'; import { RoomModule } from '../room/index.js'; import { PubbyMessage } from './message.js'; import { ChatMessageResponse } from '../../websocket/incoming/chat-message.event.js'; import { filter } from '../../lib/streams/operators/filter.js'; import { ChatMessageRemoveRequest } from '../../websocket/outgoing/chat-message-remove.event.js'; import { ChatMessageRequest } from '../../websocket/outgoing/chat-message.event.js'; var ChatModule = /** @class */ (function (_super) { __extends(ChatModule, _super); function ChatModule(pubby) { var _this = _super.call(this, pubby) || this; // Importa módulo de sala pubby.use(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(ChatMessageResponse); this.onMessage$ = this.onUpdate$.pipe(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) { return new PubbyMessage(message, this); }; ChatModule.prototype.remove = function (messageId) { return this.pubby.ws.addAsync(new ChatMessageRemoveRequest(messageId)); }; ChatModule.prototype.send = function (messageOrText) { var _this = this; return new Promise(function (resolve) { var text; var replyId; if (messageOrText instanceof PubbyMessage) { text = messageOrText.text; replyId = messageOrText.replyId; } else { text = messageOrText; } _this.pubby.ws .addAsync(new 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, __spread([event], listeners)); }; return ChatModule; }(PubbyModule)); export { ChatModule };