const internals = { emitter(name, data, socket) { socket.emit(name, data); console.debug(`[${name}] ${JSON.stringify(data)}`); }, }; export const types = { /* Listened */ CONNECTION: "connection", JOIN: "join", DISCONNECTING: "disconnecting", RELAY_ICE_CANDIDATE: "relayICECandidate", RELAY_OFFER: "relayOffer", RELAY_ANSWER: "relayAnswer", /* Emitted */ ADD_PEER: "addPeer", REMOVE_PEER: "removePeer", OFFER_RECEIVED: "offerReceived", ANSWER_RECEIVED: "answerReceived", ICE_CANDIDATE_RECEIVED: "ICECandidateReceived", }; export function addPeer(peerId, shouldCreateOffer) { return internals.emitter.bind(null, types.ADD_PEER, { peerId, shouldCreateOffer, }); } export function removePeer(peerId) { return internals.emitter.bind(null, types.REMOVE_PEER, { peerId, }); } export function ICECandidateReceived(peerId, candidate) { return internals.emitter.bind(null, types.ICE_CANDIDATE_RECEIVED, { peerId, candidate, }); } export function offerReceived(peerId, offer) { return internals.emitter.bind(null, types.OFFER_RECEIVED, { peerId, offer, }); } export function answerReceived(peerId, answer) { return internals.emitter.bind(null, types.ANSWER_RECEIVED, { peerId, answer, }); }