UNPKG

send-channel-message

Version:

Simple function that allow to pass messages to separate script in different browsing context and get back result data as a Promise.

41 lines (31 loc) 972 B
"use strict"; exports.__esModule = true; exports.default = void 0; var checkInputsIsInvalid = function checkInputsIsInvalid(message, target) { if (!(target && typeof target.postMessage === 'function')) { return new Error('Error! Invalid target.'); } if (!message) { return new Error('Error! Invalid message.'); } return null; }; var sendChannelMessage = function sendChannelMessage(message, target) { var origin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '*'; return new Promise(function (resolve, reject) { var error = checkInputsIsInvalid(message, target); if (error) { reject(error); } var _ref = new MessageChannel(), port1 = _ref.port1, port2 = _ref.port2; port1.onmessage = function (evt) { port1.close(); resolve(evt.data); }; target.postMessage(message, origin, [port2]); }); }; var _default = sendChannelMessage; exports.default = _default;