UNPKG

data-transport

Version:
39 lines 4.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.merge = void 0; var tslib_1 = require("tslib"); var constant_1 = require("./constant"); var createTransport_1 = require("./createTransport"); /** * Merge multiple transports into one transport */ var merge = function (first, seconds) { var _args = []; for (var _i = 2; _i < arguments.length; _i++) { _args[_i - 2] = arguments[_i]; } var args = tslib_1.__spreadArray([first, seconds], tslib_1.__read(_args), false); if (typeof first === 'undefined' || typeof seconds === 'undefined') { throw new Error("Only more than one transports can be merged."); } return (0, createTransport_1.createTransport)('Base', { listener: function (callback) { var handler = function (data) { callback(data); }; var disposers = args.map(function (transport) { return transport[constant_1.listenerKey](handler); }); return function () { disposers.forEach(function (dispose) { return dispose && dispose(); }); }; }, sender: function (message) { args.forEach(function (transport) { transport[constant_1.senderKey](message); }); }, }); }; exports.merge = merge; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFvRDtBQUNwRCxxREFBb0Q7QUFJcEQ7O0dBRUc7QUFDSSxJQUFNLEtBQUssR0FBRyxVQUNuQixLQUFnQixFQUNoQixPQUFrQjtJQUNsQixlQUFxQjtTQUFyQixVQUFxQixFQUFyQixxQkFBcUIsRUFBckIsSUFBcUI7UUFBckIsOEJBQXFCOztJQUVyQixJQUFNLElBQUksR0FBRyx1QkFBQyxLQUFLLEVBQUUsT0FBTyxrQkFBSyxLQUFLLFNBQWdCLENBQUM7SUFDdkQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDbkUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxPQUFPLElBQUEsaUNBQWUsRUFBQyxNQUFNLEVBQUU7UUFDN0IsUUFBUSxFQUFFLFVBQUMsUUFBUTtZQUNqQixJQUFNLE9BQU8sR0FBRyxVQUFDLElBQXFCO2dCQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDO1lBQ0YsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFDLFNBQVM7Z0JBQ25DLE9BQUEsU0FBUyxDQUFDLHNCQUFXLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFBL0IsQ0FBK0IsQ0FDaEMsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sSUFBSSxPQUFPLEVBQUUsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLEVBQUUsVUFBQyxPQUFPO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFDLFNBQVM7Z0JBQ3JCLFNBQVMsQ0FBQyxvQkFBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBM0JXLFFBQUEsS0FBSyxTQTJCaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsaXN0ZW5lcktleSwgc2VuZGVyS2V5IH0gZnJvbSAnLi9jb25zdGFudCc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc3BvcnQgfSBmcm9tICcuL2NyZWF0ZVRyYW5zcG9ydCc7XG5pbXBvcnQgdHlwZSB7IExpc3RlbmVyT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0JztcblxuLyoqXG4gKiBNZXJnZSBtdWx0aXBsZSB0cmFuc3BvcnRzIGludG8gb25lIHRyYW5zcG9ydFxuICovXG5leHBvcnQgY29uc3QgbWVyZ2UgPSAoXG4gIGZpcnN0OiBUcmFuc3BvcnQsXG4gIHNlY29uZHM6IFRyYW5zcG9ydCxcbiAgLi4uX2FyZ3M6IFRyYW5zcG9ydFtdXG4pID0+IHtcbiAgY29uc3QgYXJncyA9IFtmaXJzdCwgc2Vjb25kcywgLi4uX2FyZ3NdIGFzIFRyYW5zcG9ydFtdO1xuICBpZiAodHlwZW9mIGZpcnN0ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygc2Vjb25kcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgbW9yZSB0aGFuIG9uZSB0cmFuc3BvcnRzIGNhbiBiZSBtZXJnZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVRyYW5zcG9ydCgnQmFzZScsIHtcbiAgICBsaXN0ZW5lcjogKGNhbGxiYWNrKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gKGRhdGE6IExpc3RlbmVyT3B0aW9ucykgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBkaXNwb3NlcnMgPSBhcmdzLm1hcCgodHJhbnNwb3J0KSA9PlxuICAgICAgICB0cmFuc3BvcnRbbGlzdGVuZXJLZXldKGhhbmRsZXIpXG4gICAgICApO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZGlzcG9zZXJzLmZvckVhY2goKGRpc3Bvc2UpID0+IGRpc3Bvc2UgJiYgZGlzcG9zZSgpKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBzZW5kZXI6IChtZXNzYWdlKSA9PiB7XG4gICAgICBhcmdzLmZvckVhY2goKHRyYW5zcG9ydCkgPT4ge1xuICAgICAgICB0cmFuc3BvcnRbc2VuZGVyS2V5XShtZXNzYWdlKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufTtcbiJdfQ==