cds-rate-limit
Version:
enabled rate limit pattern for CAP NodeJS Runtime
19 lines • 917 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.provisionRateLimiter = void 0;
const rate_limiter_flexible_1 = require("rate-limiter-flexible");
const limiters = new Map();
const provisionRateLimiter = (options) => {
if (!limiters.has(options.keyPrefix)) {
switch (options.impl) {
case "redis":
// fallback to in memory rate limiter when redis is not available
limiters.set(options.keyPrefix, new rate_limiter_flexible_1.RateLimiterRedis(Object.assign({}, options, { insuranceLimiter: new rate_limiter_flexible_1.RateLimiterMemory(options) })));
default:
limiters.set(options.keyPrefix, new rate_limiter_flexible_1.RateLimiterMemory(options));
}
}
return limiters.get(options.keyPrefix);
};
exports.provisionRateLimiter = provisionRateLimiter;
//# sourceMappingURL=limiters.js.map