blob: afd6e54d591cd13a9cab46b3664b07c8f833ae8d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import { config } from "dotenv";
import { rateLimiter } from "hono-rate-limiter";
import { getConnInfo } from "@hono/node-server/conninfo";
config();
export const ratelimit = rateLimiter({
windowMs: Number(process.env.ANIWATCH_API_WINDOW_MS) || 30 * 60 * 1000,
limit: Number(process.env.ANIWATCH_API_MAX_REQS) || 6,
standardHeaders: "draft-7",
keyGenerator(c) {
const { remote } = getConnInfo(c);
const key =
`${String(remote.addressType)}_` +
`${String(remote.address)}:${String(remote.port)}`;
return key;
},
handler: (c) =>
c.json({ status: 429, message: "Too Many Requests 😵" }, { status: 429 }),
});
|