You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
920 B
JavaScript

"use strict";
const sendMessageEvent = require("../send-message-event");
const { validateArguments } = require("@validatem/core");
const required = require("@validatem/required");
const isNonEmptyString = require("@validatem/is-non-empty-string");
const isRoomID = require("../is-room-id");
const isSession = require("@modular-matrix/is-session");
module.exports = function sendMessage(_session, _options) {
let [ session, options ] = validateArguments(arguments, {
session: [ required, isSession ],
options: [ required, {
roomID: [ required, isRoomID ],
text: [ required, isNonEmptyString ],
html: [ isNonEmptyString ]
}]
});
return sendMessageEvent(session, {
roomID: options.roomID,
type: "m.room.message",
content: {
msgtype: "m.text",
body: options.text,
format: (options.html != null)
? "org.matrix.custom.html"
: undefined,
formatted_body: options.html
}
});
};