podchat-browser
Version:
Javascript SDK to use POD's Chat Service - Browser Only
146 lines (124 loc) • 4.47 kB
JavaScript
;
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;