UNPKG

@bazilio-san/af-stream

Version:
49 lines 1.82 kB
import TCPJSONSender from './TCPJSONSender'; import WSSender from './WSSender'; import CallbackSender from './CallbackSender'; import ConsoleSender from './ConsoleSender'; import EmitterSender from './EmitterSender'; const sendersCache = {}; const accessPointTimeOutMillis = 10000; const checkAccessPointAvailability = async (options) => { var _a; const accessPoint = options.senderConfig.accessPoint; const exitOnError = options.exitOnError; if (!(await ((_a = accessPoint === null || accessPoint === void 0 ? void 0 : accessPoint.waitForHostPortUpdated) === null || _a === void 0 ? void 0 : _a.call(accessPoint, 10000)))) { exitOnError(`Access point "${accessPoint === null || accessPoint === void 0 ? void 0 : accessPoint.id}" update timed out ${accessPointTimeOutMillis} ms`); } }; const getSender = async (options) => { const { streamId } = options.streamConfig; let sender = sendersCache[streamId]; if (sender) { return sender; } const { senderConfig } = options; switch (senderConfig.type) { case 'tcp': { await checkAccessPointAvailability(options); sender = new TCPJSONSender(options); break; } case 'ws': { await checkAccessPointAvailability(options); sender = new WSSender(options); break; } case 'callback': { sender = new CallbackSender(options); break; } case 'emitter': { sender = new EmitterSender(options); break; } default: sender = new ConsoleSender(options); } sendersCache[streamId] = sender; return sender; }; export default getSender; //# sourceMappingURL=get-sender.js.map