@pubby/sdk
Version:
Pubby Development Kit
73 lines (68 loc) • 3.05 kB
JavaScript
;
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;