UNPKG

@bazilio-san/af-stream

Version:
51 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const TCPJSONSender_1 = require("./TCPJSONSender"); const WSSender_1 = require("./WSSender"); const CallbackSender_1 = require("./CallbackSender"); const ConsoleSender_1 = require("./ConsoleSender"); const EmitterSender_1 = require("./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_1.default(options); break; } case 'ws': { await checkAccessPointAvailability(options); sender = new WSSender_1.default(options); break; } case 'callback': { sender = new CallbackSender_1.default(options); break; } case 'emitter': { sender = new EmitterSender_1.default(options); break; } default: sender = new ConsoleSender_1.default(options); } sendersCache[streamId] = sender; return sender; }; exports.default = getSender; //# sourceMappingURL=get-sender.js.map