npm.io
0.64.0 • Published 2 weeks ago

@lidofinance/next-ip-rate-limit

Licence
MIT
Version
0.64.0
Deps
1
Size
33 kB
Vulns
0
Weekly
0

@lidofinance/next-ip-rate-limit

IP rate limit for next server api requests.

Installation

yarn add @lidofinance/next-ip-rate-limit.

Getting started

With Next.js API
import { ipRateLimit } from '@lidofinance/next-ip-rate-limit'
import { NextApiRequest, NextApiResponse } from 'next'

// env vars
const RATE_LIMIT = 60
const RATE_LIMIT_TIME_FRAME = 60 // 1 min

const someRequest = async (req, res) => {
  ipRateLimit({
    req,
    res,
    limit: RATE_LIMIT,
    timeFrame: RATE_LIMIT_TIME_FRAME,
  })

  await fetch()
}

export default someRequest
With @lidofinance/next-api-wrapper
import { wrapRequest, API } from '@lidofinance/next-api-wrapper'
import { ipRateLimit, rateLimitWrapper } from '@lidofinance/next-ip-rate-limit'

const someRequest: API = async (req, res) => await fetch()

export const rateLimit = rateLimitWrapper({ rateLimit: RATE_LIMIT, rateLimitTimeFrame: RATE_LIMIT_TIME_FRAME })

export default wrapRequest([rateLimit, someWrapper])(someRequest)