@adonisjs/limiter
Version:
Rate limiting package for AdonisJS framework
39 lines (36 loc) • 1.03 kB
JavaScript
import {
RateLimiterBridge,
debug_default
} from "./chunk-RWNA5JOS.js";
// src/stores/memory.ts
import string from "@adonisjs/core/helpers/string";
import { RateLimiterMemory } from "rate-limiter-flexible";
var LimiterMemoryStore = class extends RateLimiterBridge {
#config;
get name() {
return "memory";
}
constructor(config) {
debug_default("creating memory limiter store %O", config);
const resolvedConfig = {
keyPrefix: config.keyPrefix,
execEvenly: config.execEvenly,
points: config.requests,
duration: string.seconds.parse(config.duration),
blockDuration: config.blockDuration ? string.seconds.parse(config.blockDuration) : void 0
};
super(new RateLimiterMemory(resolvedConfig));
this.#config = resolvedConfig;
}
/**
* Clears the existing memory store to reset
* rate limits
*/
async clear() {
debug_default("clearing memory store");
this.rateLimiter = new RateLimiterMemory(this.#config);
}
};
export {
LimiterMemoryStore
};