@rsksmart/express-did-auth
Version:
Authentication with Verifiable Credentials for Express.js
27 lines • 981 B
JavaScript
;
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