UNPKG

rate-limiter-custom

Version:

A fast, customizable, and efficient rate-limiting middleware for Express in TypeScript.

21 lines (20 loc) 818 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rateLimiter = rateLimiter; const slidingWindow_1 = require("./slidingWindow"); const fixedWindow_1 = require("./fixedWindow"); const leakyBucket_1 = require("./leakyBucket"); const tokenBucket_1 = require("./tokenBucket"); function rateLimiter(options) { const algorithm = options.algo || "sliding"; // Default to sliding window switch (algorithm) { case "fixed": return (0, fixedWindow_1.fixedWindowRateLimiter)(options); case "token": return (0, tokenBucket_1.tokenBucketRateLimiter)(options); case "leaky": return (0, leakyBucket_1.leakyBucketLimiter)(options); default: return (0, slidingWindow_1.slidingWindowRateLimiter)(options); } }