UNPKG

@selfage/counter

Version:

A dead simple in-memory Counter class.

31 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Counter = void 0; class Counter { constructor() { this.actualMap = new Map(); } get(key) { let value = this.actualMap.get(key); if (value === undefined) { value = 0; } return value; } increment(key, step = 1) { let value = this.get(key) + step; this.actualMap.set(key, value); return value; } get size() { return this.actualMap.size; } entries() { return this.actualMap.entries(); } [Symbol.iterator]() { return this.entries(); } } exports.Counter = Counter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvdW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxPQUFPO0lBQXBCO1FBQ1MsY0FBUyxHQUFHLElBQUksR0FBRyxFQUFhLENBQUM7SUEyQjFDLENBQUM7SUF6QlEsR0FBRyxDQUFDLEdBQU07UUFDZixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFNLEVBQUUsT0FBZSxDQUFDO1FBQ3ZDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBNUJELDBCQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb3VudGVyPEs+IHtcclxuICBwdWJsaWMgYWN0dWFsTWFwID0gbmV3IE1hcDxLLCBudW1iZXI+KCk7XHJcblxyXG4gIHB1YmxpYyBnZXQoa2V5OiBLKTogbnVtYmVyIHtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMuYWN0dWFsTWFwLmdldChrZXkpO1xyXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdmFsdWUgPSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluY3JlbWVudChrZXk6IEssIHN0ZXA6IG51bWJlciA9IDEpOiBudW1iZXIge1xyXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXQoa2V5KSArIHN0ZXA7XHJcbiAgICB0aGlzLmFjdHVhbE1hcC5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgc2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0dWFsTWFwLnNpemU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW50cmllcygpOiBJdGVyYXRvcjxbSywgbnVtYmVyXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0dWFsTWFwLmVudHJpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYXRvcjxbSywgbnVtYmVyXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW50cmllcygpO1xyXG4gIH1cclxufVxyXG4iXX0=