PadMessageHandler: Use a Map for sessioninfos

Maps are a bit more flexible, have clearer semantics, and have a
convenient `size` property.
This commit is contained in:
Richard Hansen 2021-04-13 00:49:06 -04:00
parent 14d4aadfe4
commit eeead46437
2 changed files with 28 additions and 37 deletions

View file

@ -810,15 +810,12 @@ exports.createDiffHTML = async (padID, startRev, endRev) => {
exports.getStats = async () => {
const sessionInfos = padMessageHandler.sessioninfos;
const sessionKeys = Object.keys(sessionInfos);
const activePads = new Set(Object.entries(sessionInfos).map((k) => k[1].padId));
const map = function* (it, fn) { for (const i of it) yield fn(i); };
const activePads = new Set(map(sessionInfos.values(), ({padId}) => padId));
const {padIDs} = await padManager.listAllPads();
return {
totalPads: padIDs.length,
totalSessions: sessionKeys.length,
totalSessions: sessionInfos.size,
totalActivePads: activePads.size,
};
};