UNPKG

@paroicms/internal-server-lib

Version:

Common utilitaries for the paroicms server.

41 lines 1.33 kB
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