UNPKG

podchat-browser

Version:

Javascript SDK to use POD's Chat Service - Browser Only

146 lines (124 loc) 4.47 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _callManager = _interopRequireDefault(require("./callManager")); var _callServerManager = _interopRequireDefault(require("./callServerManager")); var _callManager2 = _interopRequireDefault(require("./multitrack/callManager")); function CallsList(app) { var config = { list: {}, currentCallId: null }; var publicized = { addItem: function addItem(callId, callConfig) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var csm; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: csm = new _callServerManager["default"](app); csm.setServers(callConfig.kurentoAddress); if (!Object.values(config.list).filter(function (item) { return item != undefined; }).length) { _context.next = 11; break; } _context.prev = 3; _context.next = 6; return publicized.destroyAllCalls(); case 6: _context.next = 11; break; case 8: _context.prev = 8; _context.t0 = _context["catch"](3); console.error({ error: _context.t0 }); case 11: config.currentCallId = callId; if (csm.isJanus()) { config.list[callId] = new _callManager2["default"]({ app: app, callId: callId, callConfig: callConfig }); } else { config.list[callId] = new _callManager["default"]({ app: app, callId: callId, callConfig: callConfig }); } case 13: case "end": return _context.stop(); } } }, _callee, null, [[3, 8]]); }))(); }, removeItem: function removeItem(callId) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!config.list[callId]) { _context2.next = 4; break; } _context2.next = 3; return config.list[callId].destroy(); case 3: delete config.list[callId]; case 4: config.currentCallId = null; case 5: case "end": return _context2.stop(); } } }, _callee2); }))(); }, get: function get(id) { return config.list[id]; }, currentCallId: function currentCallId() { return config.currentCallId; }, routeCallMessage: function routeCallMessage(callId, message) { if (config.list[callId]) { config.list[callId].callMessageQueue.pushCallMessageToQueue(message); // config.list[callId].processCallMessage(message); } else app.sdkParams.consoleLogging && console.warn("[SDK] Skipping call message, call not exists. uniqueId: ", { message: message }); }, destroyAllCalls: function destroyAllCalls() { return new Promise(function (resolve) { var allPromises = []; for (var i in config.list) { console.log("destroyAllCalls()", i); app.call.endCall({ callId: i }); allPromises.push(publicized.removeItem(i)); } Promise.all(allPromises).then(function () { resolve(); }); }); } }; return publicized; } var _default = CallsList; exports["default"] = _default;