UNPKG

@rsksmart/express-did-auth

Version:

Authentication with Verifiable Credentials for Express.js

27 lines 981 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RequestCounter = void 0; const defaults_1 = require("../defaults"); const errors_1 = require("../errors"); class RequestCounter { constructor({ maxRequestsPerTimeSlot, timeSlot }) { this.accesses = []; this.maxRequests = maxRequestsPerTimeSlot || defaults_1.MAX_REQUESTS_PER_TIME_SLOT; this.timeSlot = timeSlot || defaults_1.REQUEST_COUNTER_TIME_SLOT; } count() { const now = Date.now(); if (!this.accesses) this.accesses = [now]; else if (this.accesses.length < this.maxRequests) this.accesses.push(now); else if (now - this.accesses[0] > this.timeSlot) { this.accesses.shift(); this.accesses.push(now); } else throw new Error(errors_1.MAX_REQUESTS_REACHED); } } exports.RequestCounter = RequestCounter; //# sourceMappingURL=request-counter.js.map