express-rate-limiter-ts
Version:
A powerful, flexible and modern rate limiter middleware for Express.js written in TypeScript.
37 lines (36 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DummyStore = void 0;
// DummyStore: Does not actually limit, just shows how to implement the interface.
// Each function and important lines have comments.
class DummyStore {
// Increment function. Always returns as if limit is not exceeded.
async incr(key) {
// Always returns 0 requests and not exceeded.
return {
current: 0, // Current request count
remaining: 0, // Remaining requests (always 0 for dummy)
resetTime: new Date(Date.now() + 60000), // Pretend to reset after 1 minute
exceeded: false, // Limit is never exceeded
};
}
// Read counter function. Always returns 0.
async get(key) {
return { count: 0, resetTime: Date.now() + 60000 };
}
// Reset counter function. Does nothing for dummy.
async reset(key) { }
// Record statistics. Does nothing for dummy.
async recordStat(route) { }
// Returns statistics. Returns empty object for dummy.
async getStats() { return {}; }
// Ban function. Does nothing for dummy.
async ban(key, seconds, reason) { }
// Ban check. Always returns as not banned.
async isBanned(key) { return { banned: false }; }
// Returns banned keys. Returns empty object for dummy.
async getBanned() { return {}; }
// Unban function. Does nothing for dummy.
async unban(key) { }
}
exports.DummyStore = DummyStore;