data-transport
Version:
A simple and responsive transport
26 lines • 3.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageTransport = void 0;
var tslib_1 = require("tslib");
var transport_1 = require("../transport");
var MessageTransport = /** @class */ (function (_super) {
tslib_1.__extends(MessageTransport, _super);
function MessageTransport(_options) {
var _a = _options.targetOrigin, targetOrigin = _a === void 0 ? '*' : _a, _b = _options.listener, listener = _b === void 0 ? function (callback) {
var handler = function (_a) {
var data = _a.data;
return callback(data);
};
window.addEventListener('message', handler);
return function () {
window.removeEventListener('message', handler);
};
} : _b, _c = _options.sender, sender = _c === void 0 ? function (message) {
window.postMessage(message, targetOrigin);
} : _c, options = tslib_1.__rest(_options, ["targetOrigin", "listener", "sender"]);
return _super.call(this, tslib_1.__assign(tslib_1.__assign({}, options), { listener: listener, sender: sender })) || this;
}
return MessageTransport;
}(transport_1.Transport));
exports.MessageTransport = MessageTransport;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZVRyYW5zcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnRzL21lc3NhZ2VUcmFuc3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUtBLDBDQUF5QztBQVV6QztJQUVVLDRDQUFZO0lBQ3BCLDBCQUFZLFFBQWlDO1FBRXpDLElBQUEsS0FhRSxRQUFRLGFBYlEsRUFBbEIsWUFBWSxtQkFBRyxHQUFHLEtBQUEsRUFDbEIsS0FZRSxRQUFRLFNBTFQsRUFQRCxRQUFRLG1CQUFHLFVBQUMsUUFBUTtZQUNsQixJQUFNLE9BQU8sR0FBRyxVQUFDLEVBQXVDO29CQUFyQyxJQUFJLFVBQUE7Z0JBQ3JCLE9BQUEsUUFBUSxDQUFDLElBQUksQ0FBQztZQUFkLENBQWMsQ0FBQztZQUNqQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLE9BQU87Z0JBQ0wsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUM7UUFDSixDQUFDLEtBQUEsRUFDRCxLQUlFLFFBQVEsT0FGVCxFQUZELE1BQU0sbUJBQUcsVUFBQyxPQUFPO1lBQ2YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxLQUFBLEVBQ0UsT0FBTyxrQkFDUixRQUFRLEVBZE4sc0NBY0wsQ0FEVyxDQUNDO1FBQ2IsT0FBQSxNQUFLLGtEQUNBLE9BQU8sS0FDVixRQUFRLFVBQUEsRUFDUixNQUFNLFFBQUEsSUFDTixTQUFDO0lBQ0wsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQXpCRCxDQUVVLHFCQUFTLEdBdUJsQjtBQUVRLDRDQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQmFzZUludGVyYWN0aW9uLFxuICBMaXN0ZW5lck9wdGlvbnMsXG4gIFRyYW5zcG9ydE9wdGlvbnMsXG59IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc3BvcnQgfSBmcm9tICcuLi90cmFuc3BvcnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VUcmFuc3BvcnRPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxUcmFuc3BvcnRPcHRpb25zPiB7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoYXQgdGhlIG9yaWdpbiBvZiB0YXJnZXRXaW5kb3cgbXVzdCBiZSBmb3IgdGhlIGV2ZW50IHRvIGJlIGRpc3BhdGNoZWQsXG4gICAqIGJ5IGRlZmF1bHQsIGl0J3MgdGhlIGxpdGVyYWwgc3RyaW5nIFwiKlwiIChpbmRpY2F0aW5nIG5vIHByZWZlcmVuY2UpLlxuICAgKi9cbiAgdGFyZ2V0T3JpZ2luPzogc3RyaW5nO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBNZXNzYWdlVHJhbnNwb3J0PFxuICBUIGV4dGVuZHMgQmFzZUludGVyYWN0aW9uID0gYW55XG4+IGV4dGVuZHMgVHJhbnNwb3J0PFQ+IHtcbiAgY29uc3RydWN0b3IoX29wdGlvbnM6IE1lc3NhZ2VUcmFuc3BvcnRPcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGFyZ2V0T3JpZ2luID0gJyonLFxuICAgICAgbGlzdGVuZXIgPSAoY2FsbGJhY2spID0+IHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9ICh7IGRhdGEgfTogTWVzc2FnZUV2ZW50PExpc3RlbmVyT3B0aW9ucz4pID0+XG4gICAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlcik7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBoYW5kbGVyKTtcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBzZW5kZXIgPSAobWVzc2FnZSkgPT4ge1xuICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UobWVzc2FnZSwgdGFyZ2V0T3JpZ2luKTtcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSA9IF9vcHRpb25zO1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBsaXN0ZW5lcixcbiAgICAgIHNlbmRlcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgeyBNZXNzYWdlVHJhbnNwb3J0IH07XG4iXX0=