UNPKG

masto

Version:

Mastodon API client for JavaScript, TypeScript, Node.js, browsers

31 lines (30 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebSocketSubscriptionCounterImpl = void 0; class WebSocketSubscriptionCounterImpl { counts = new Map(); count(stream, params) { const key = this.hash(stream, params); return this.counts.get(key) ?? 0; } increment(stream, params) { const key = this.hash(stream, params); if (!this.counts.has(key)) { this.counts.set(key, 0); } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.counts.set(key, this.counts.get(key) + 1); } decrement(stream, params) { const key = this.hash(stream, params); if (!this.counts.has(key)) { throw new Error("Cannot decrement non-existent count"); } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.counts.set(key, this.counts.get(key) - 1); } hash(stream, params) { return JSON.stringify({ stream, params }); } } exports.WebSocketSubscriptionCounterImpl = WebSocketSubscriptionCounterImpl;