koa-util-limit
Version:
koa的一个限流器
35 lines • 959 B
TypeScript
export namespace Statement {
export type Driver = 'redis' | 'memory'
export interface IMemoryMap {
time: number
data: Array<number | Date>
}
export type IMap = Map<string, IMemoryMap>
export interface IError {
code: number
msg: string
[key: string]: any
}
export type IRoster = (ctx: any) => boolean | undefined
export interface ILimit {
//100 calls at most in 60 * 1000ms
max: number
duration: number
//memory or redis
driver?: Driver
//namespace
namespace?: string
//error response
error?: IError
//blacklist
black?: IRoster
//whitelist
white?: IRoster
//If it is redis, it can be ignored
db?: IMap | any
}
export interface Config extends ILimit {
//id unique identification
id: (ctx: any) => string
}
}