const internals = { peers: {}, createAudioElement(source) { const audioElement = document.createElement("audio"); audioElement.setAttribute("class", "junction-call-audio"); audioElement.autoplay = "autoplay"; // WE WILL NOT LOSE TADA SUPPORT if (typeof source === "string") { audioElement.src = source; } else { audioElement.srcObject = source; } document.querySelector("body").appendChild(audioElement); return audioElement; }, }; export default { add(id, source) { internals.peers[id] && this.remove(id); internals.peers[id] = internals.createAudioElement(source); }, remove(id) { internals.peers[id] && internals.peers[id].remove(); delete internals.peers[id]; }, count() { return Object.keys(internals.peers).length; }, reset() { internals.peers = {}; document .querySelectorAll(".junction-call-audio") .forEach((audioElement) => audioElement.remove()); }, };