UNPKG

@vector-im/matrix-bot-sdk

Version:

TypeScript/JavaScript SDK for Matrix bots and appservices

51 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapRoomEvent = void 0; const MembershipEvent_1 = require("./MembershipEvent"); const RoomEvent_1 = require("./RoomEvent"); const MessageEvent_1 = require("./MessageEvent"); /** * Wraps a room event into a more suitable container. * @param {any} event The event object to wrap. * @returns {RoomEvent<any>} An instance of the most suitable container for the event. * @category Matrix events */ function wrapRoomEvent(event) { if (!event) return null; if (typeof (event['state_key']) === 'string') { if (event['type'] === 'm.room.member') { return new MembershipEvent_1.MembershipEvent(event); } else { return new RoomEvent_1.StateEvent(event); } } else if (event['type'] === 'm.room.message') { const content = event['content']; const msgtype = content ? content['msgtype'] : null; if (msgtype === "m.text" || msgtype === "m.notice" || msgtype === "m.emote") { return new MessageEvent_1.MessageEvent(event); } else if (msgtype === "m.audio") { return new MessageEvent_1.MessageEvent(event); } else if (msgtype === "m.video") { return new MessageEvent_1.MessageEvent(event); } else if (msgtype === "m.image") { return new MessageEvent_1.MessageEvent(event); } else if (msgtype === "m.location") { return new MessageEvent_1.MessageEvent(event); } else { return new MessageEvent_1.MessageEvent(event); } } else { return new RoomEvent_1.RoomEvent(event); } } exports.wrapRoomEvent = wrapRoomEvent; //# sourceMappingURL=converter.js.map