UNPKG

teams-web-send

Version:

Post messages to Microsoft Teams directly from the browser!

70 lines (59 loc) 1.92 kB
'use strict'; 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