@paroicms/internal-server-lib
Version:
Common utilitaries for the paroicms server.
41 lines • 1.33 kB
JavaScript
export function createTracker() {
const byDatabases = new Map();
return {
trackAccess(database, collection, accessType) {
let byCollections = byDatabases.get(database);
if (!byCollections) {
byCollections = new Map();
byDatabases.set(database, byCollections);
}
let byAccessTypes = byCollections.get(collection);
if (!byAccessTypes) {
byAccessTypes = new Map();
byCollections.set(collection, byAccessTypes);
}
byAccessTypes.set(accessType, (byAccessTypes.get(accessType) ?? 0) + 1);
},
toReport() {
const report = {};
for (const [database, byCollections] of byDatabases) {
report[database] = {};
for (const [, byAccessTypes] of byCollections) {
for (const [accessType, count] of byAccessTypes) {
report[database][accessType] = count;
}
}
}
return report;
},
};
}
export function createNoTracker() {
return {
trackAccess() {
// nothing to do
},
toReport() {
return {};
},
};
}
//# sourceMappingURL=tracker.js.map