mirror of
https://github.com/fosrl/pangolin.git
synced 2025-07-25 21:25:06 +02:00
17 lines
587 B
TypeScript
17 lines
587 B
TypeScript
|
import { MemoryStore, Store } from "express-rate-limit";
|
||
|
import config from "./config";
|
||
|
import redisManager from "@server/db/redis";
|
||
|
import { RedisStore } from "rate-limit-redis";
|
||
|
|
||
|
export function createStore(): Store {
|
||
|
let rateLimitStore: Store = new MemoryStore();
|
||
|
if (config.getRawConfig().flags?.enable_redis) {
|
||
|
const client = redisManager.client!;
|
||
|
rateLimitStore = new RedisStore({
|
||
|
sendCommand: async (command: string, ...args: string[]) =>
|
||
|
(await client.call(command, args)) as any
|
||
|
});
|
||
|
}
|
||
|
return rateLimitStore;
|
||
|
}
|