teams-web-send
Version:
Post messages to Microsoft Teams directly from the browser!
70 lines (59 loc) • 1.92 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function isIE() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE ');
var trident = ua.indexOf('Trident');
var edge = ua.indexOf('Edge');
return msie > 0 || trident > 0 || edge > 0;
}
function prepareMessage(message) {
return message.substring(0, message.lastIndexOf('}')).concat(',"trash": "');
}
function bootstrap(host) {
var targetHost = host || document.body;
var isIEBrowser = isIE();
var sendForm = document.createElement('form');
sendForm.style.display = 'none';
sendForm.className = 'mstws-send-form';
sendForm.method = 'POST';
sendForm.enctype = 'text/plain';
sendForm.target = 'mstws-send-frame';
var sendInput = document.createElement('input');
sendInput.type = 'text';
sendInput.value = '"}';
var sendFrame = document.createElement('iframe');
sendFrame.tabIndex = -1;
sendFrame.name = 'mstws-send-frame';
var resolveResult;
sendFrame.addEventListener('load', function () {
if (!resolveResult) {
return;
}
resolveResult(); // cleanup references
resolveResult = null;
});
sendForm.appendChild(sendInput);
sendForm.appendChild(sendFrame);
targetHost.appendChild(sendForm);
return function (webhookUrl, message) {
return new Promise(function (resolve, reject) {
try {
sendForm.action = webhookUrl;
var postData = prepareMessage(message);
if (isIEBrowser) {
postData = postData.replace(/'/g, "\\'").replace(/"/g, "'").replace(/\s\s+/g, '');
sendInput.value = "'}";
}
sendInput.name = postData;
sendForm.submit();
} catch (e) {
console.error(e);
reject(new Error('Incorrectly formatted message.'));
}
resolveResult = resolve;
});
};
}
exports.bootstrap = bootstrap;
//# sourceMappingURL=tws.cjs.development.js.map