Rate-limiting middleware for Telegraf
npm install telegraf-ratelimit


Rate-limiting middleware for Telegraf (Telegram bot framework).
``js`
$ npm install telegraf-ratelimit
js
const Telegraf = require('telegraf')
const rateLimit = require('telegraf-ratelimit')// Set limit to 1 message per 3 seconds
const limitConfig = {
window: 3000,
limit: 1,
onLimitExceeded: (ctx, next) => ctx.reply('Rate limit exceeded')
}
const telegraf = new Telegraf(process.env.BOT_TOKEN)
telegraf.use(rateLimit(limitConfig))
telegraf.on('text', (ctx) => ctx.reply('Hello!'))
telegraf.startPolling()
`API
$3
*
window: how long to keep records of requests in memory in ms (default: 1 second)
* limit: max number of messages during window (default: 1)
* keyGenerator: key generator function (context -> any)
* onLimitExceeded: rate-limit middlewareDefault implementation of
keyGenerator:`js
function keyGenerator(ctx) {
return ctx.from.id
}
``