data-transport
Version:
A simple and responsive transport
23 lines • 3.87 kB
JavaScript
import { __assign, __extends, __rest } from "tslib";
import { Transport } from '../transport';
var MessageTransport = /** @class */ (function (_super) {
__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 = __rest(_options, ["targetOrigin", "listener", "sender"]);
return _super.call(this, __assign(__assign({}, options), { listener: listener, sender: sender })) || this;
}
return MessageTransport;
}(Transport));
export { MessageTransport };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZVRyYW5zcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnRzL21lc3NhZ2VUcmFuc3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUtBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVekM7SUFFVSxvQ0FBWTtJQUNwQiwwQkFBWSxRQUFpQztRQUV6QyxJQUFBLEtBYUUsUUFBUSxhQWJRLEVBQWxCLFlBQVksbUJBQUcsR0FBRyxLQUFBLEVBQ2xCLEtBWUUsUUFBUSxTQUxULEVBUEQsUUFBUSxtQkFBRyxVQUFDLFFBQVE7WUFDbEIsSUFBTSxPQUFPLEdBQUcsVUFBQyxFQUF1QztvQkFBckMsSUFBSSxVQUFBO2dCQUNyQixPQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFBZCxDQUFjLENBQUM7WUFDakIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM1QyxPQUFPO2dCQUNMLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxLQUFBLEVBQ0QsS0FJRSxRQUFRLE9BRlQsRUFGRCxNQUFNLG1CQUFHLFVBQUMsT0FBTztZQUNmLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzVDLENBQUMsS0FBQSxFQUNFLE9BQU8sVUFDUixRQUFRLEVBZE4sc0NBY0wsQ0FEVyxDQUNDO1FBQ2IsT0FBQSxNQUFLLGtDQUNBLE9BQU8sS0FDVixRQUFRLFVBQUEsRUFDUixNQUFNLFFBQUEsSUFDTixTQUFDO0lBQ0wsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQXpCRCxDQUVVLFNBQVMsR0F1QmxCO0FBRUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEJhc2VJbnRlcmFjdGlvbixcbiAgTGlzdGVuZXJPcHRpb25zLFxuICBUcmFuc3BvcnRPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVHJhbnNwb3J0IH0gZnJvbSAnLi4vdHJhbnNwb3J0JztcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlVHJhbnNwb3J0T3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8VHJhbnNwb3J0T3B0aW9ucz4ge1xuICAvKipcbiAgICogU3BlY2lmeSB3aGF0IHRoZSBvcmlnaW4gb2YgdGFyZ2V0V2luZG93IG11c3QgYmUgZm9yIHRoZSBldmVudCB0byBiZSBkaXNwYXRjaGVkLFxuICAgKiBieSBkZWZhdWx0LCBpdCdzIHRoZSBsaXRlcmFsIHN0cmluZyBcIipcIiAoaW5kaWNhdGluZyBubyBwcmVmZXJlbmNlKS5cbiAgICovXG4gIHRhcmdldE9yaWdpbj86IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgTWVzc2FnZVRyYW5zcG9ydDxcbiAgVCBleHRlbmRzIEJhc2VJbnRlcmFjdGlvbiA9IGFueVxuPiBleHRlbmRzIFRyYW5zcG9ydDxUPiB7XG4gIGNvbnN0cnVjdG9yKF9vcHRpb25zOiBNZXNzYWdlVHJhbnNwb3J0T3B0aW9ucykge1xuICAgIGNvbnN0IHtcbiAgICAgIHRhcmdldE9yaWdpbiA9ICcqJyxcbiAgICAgIGxpc3RlbmVyID0gKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoeyBkYXRhIH06IE1lc3NhZ2VFdmVudDxMaXN0ZW5lck9wdGlvbnM+KSA9PlxuICAgICAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGhhbmRsZXIpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlcik7XG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgc2VuZGVyID0gKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsIHRhcmdldE9yaWdpbik7XG4gICAgICB9LFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0gPSBfb3B0aW9ucztcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbGlzdGVuZXIsXG4gICAgICBzZW5kZXIsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgTWVzc2FnZVRyYW5zcG9ydCB9O1xuIl19