UNPKG

data-transport

Version:
35 lines 4.12 kB
import { __read, __spreadArray } from "tslib"; import { listenerKey, senderKey } from './constant'; import { createTransport } from './createTransport'; /** * Merge multiple transports into one transport */ export var merge = function (first, seconds) { var _args = []; for (var _i = 2; _i < arguments.length; _i++) { _args[_i - 2] = arguments[_i]; } var args = __spreadArray([first, seconds], __read(_args), false); if (typeof first === 'undefined' || typeof seconds === 'undefined') { throw new Error("Only more than one transports can be merged."); } return createTransport('Base', { listener: function (callback) { var handler = function (data) { callback(data); }; var disposers = args.map(function (transport) { return transport[listenerKey](handler); }); return function () { disposers.forEach(function (dispose) { return dispose && dispose(); }); }; }, sender: function (message) { args.forEach(function (transport) { transport[senderKey](message); }); }, }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUlwRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLEtBQUssR0FBRyxVQUNuQixLQUFnQixFQUNoQixPQUFrQjtJQUNsQixlQUFxQjtTQUFyQixVQUFxQixFQUFyQixxQkFBcUIsRUFBckIsSUFBcUI7UUFBckIsOEJBQXFCOztJQUVyQixJQUFNLElBQUksR0FBRyxlQUFDLEtBQUssRUFBRSxPQUFPLFVBQUssS0FBSyxTQUFnQixDQUFDO0lBQ3ZELElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ25FLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUMsTUFBTSxFQUFFO1FBQzdCLFFBQVEsRUFBRSxVQUFDLFFBQVE7WUFDakIsSUFBTSxPQUFPLEdBQUcsVUFBQyxJQUFxQjtnQkFDcEMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQztZQUNGLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQyxTQUFTO2dCQUNuQyxPQUFBLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFBL0IsQ0FBK0IsQ0FDaEMsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sSUFBSSxPQUFPLEVBQUUsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLEVBQUUsVUFBQyxPQUFPO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFDLFNBQVM7Z0JBQ3JCLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsaXN0ZW5lcktleSwgc2VuZGVyS2V5IH0gZnJvbSAnLi9jb25zdGFudCc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc3BvcnQgfSBmcm9tICcuL2NyZWF0ZVRyYW5zcG9ydCc7XG5pbXBvcnQgdHlwZSB7IExpc3RlbmVyT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0JztcblxuLyoqXG4gKiBNZXJnZSBtdWx0aXBsZSB0cmFuc3BvcnRzIGludG8gb25lIHRyYW5zcG9ydFxuICovXG5leHBvcnQgY29uc3QgbWVyZ2UgPSAoXG4gIGZpcnN0OiBUcmFuc3BvcnQsXG4gIHNlY29uZHM6IFRyYW5zcG9ydCxcbiAgLi4uX2FyZ3M6IFRyYW5zcG9ydFtdXG4pID0+IHtcbiAgY29uc3QgYXJncyA9IFtmaXJzdCwgc2Vjb25kcywgLi4uX2FyZ3NdIGFzIFRyYW5zcG9ydFtdO1xuICBpZiAodHlwZW9mIGZpcnN0ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygc2Vjb25kcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgbW9yZSB0aGFuIG9uZSB0cmFuc3BvcnRzIGNhbiBiZSBtZXJnZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVRyYW5zcG9ydCgnQmFzZScsIHtcbiAgICBsaXN0ZW5lcjogKGNhbGxiYWNrKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gKGRhdGE6IExpc3RlbmVyT3B0aW9ucykgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBkaXNwb3NlcnMgPSBhcmdzLm1hcCgodHJhbnNwb3J0KSA9PlxuICAgICAgICB0cmFuc3BvcnRbbGlzdGVuZXJLZXldKGhhbmRsZXIpXG4gICAgICApO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZGlzcG9zZXJzLmZvckVhY2goKGRpc3Bvc2UpID0+IGRpc3Bvc2UgJiYgZGlzcG9zZSgpKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBzZW5kZXI6IChtZXNzYWdlKSA9PiB7XG4gICAgICBhcmdzLmZvckVhY2goKHRyYW5zcG9ydCkgPT4ge1xuICAgICAgICB0cmFuc3BvcnRbc2VuZGVyS2V5XShtZXNzYWdlKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufTtcbiJdfQ==