@servable/parse-server-engine
Version:
Servable Parse Server Engine
34 lines (30 loc) • 1.05 kB
JavaScript
import rateLimit from 'express-rate-limit'
import empty from "../empty.js"
export default ({ rateLimiting = {} }) => {
const { type, params = {} } = rateLimiting
const {
limit = 100000,
window = 100,
message = 'Too many requests from this IP, please try again after an hour',
standardHeaders = true,
legacyHeaders = true
} = params
switch (type) {
case 'fixedByIp': {
return rateLimit({
//https://stackoverflow.com/questions/64188573/express-rate-limit-blocking-requests-from-all-users
windowMs: window, // 1 hour
max: limit, // Limit each IP to 5 create account requests per `window` (here, per hour)
message,
standardHeaders, // Return rate limit info in the `RateLimit-*` headers
legacyHeaders, // Disable the `X-RateLimit-*` headers,
validate: {
xForwardedForHeader: false //https://express-rate-limit.mintlify.app/reference/error-codes#err-erl-unexpected-x-forwarded-for
}
})
}
default: {
return empty
}
}
}