in src/global_map.js [74:109]
export async function createGlobalPeersMap(participantsStartValue, signalName) {
// Currently the values can only be counters
// startValue should be a number
const map = {}
const createValueSignal = getCreateValueSignalFunction(participantsStartValue)
map.getName = () => signalName
map.keys = async () => {
const keys = []
const allParticipantsIds = await getAllParticipantsIds()
for (const participantId of allParticipantsIds) {
if (Object.prototype.hasOwnProperty.call(map, participantId)) {
keys.push(participantId)
}
}
return keys
}
map.get = async (participantId) => {
return map[participantId]
}
map.set = async (participantId, value) => {
if (Object.prototype.hasOwnProperty.call(map, participantId)) {
map[participantId].set(value)
} else {
map[participantId] = await createValueSignal(value, `${signalName}${participantId}`)
}
}
await addCurrentParticipants(map, participantsStartValue)
await addNewParticipants(map, participantsStartValue)
return map
}