@mark01/express-utils
Version:
npm package that contains utilities for express.js
18 lines (17 loc) • 543 B
JavaScript
import expressSlowDown from 'express-slow-down';
import { RedisStore } from 'rate-limit-redis';
export const slowDown = (redis, delayAfter) => {
return expressSlowDown({
store: new RedisStore({
prefix: 'sd-common:',
sendCommand: (...args) => redis.call(...args),
}),
delayAfter,
windowMs: 15 * 60 * 1000,
delayMs: (used, req) => {
const delayAfter = req.slowDown.limit;
return (used - delayAfter) * 200;
},
});
};
export default slowDown;