@yveskaufmann/koa2-ratelimit
Version:
IP rate-limiting middleware for Koajs 2. Use to limit repeated requests to APIs and/or endpoints such as password reset.
30 lines • 1.3 kB
TypeScript
/// <reference types="koa" />
import { RateLimitOptions } from "./Options";
import { Time } from "./Time";
export declare const DEFAULT_OPTIONS: RateLimitOptions;
export declare class RateLimit {
private options;
private store;
constructor(options: RateLimitOptions);
static timeToMs(time: Time | number): number;
keyGenerator(ctx: import("koa").Context): Promise<string>;
weight(ctx: import("koa").Context): Promise<number>;
skip(ctx: import("koa").Context): Promise<boolean>;
getUserId(ctx: import("koa").Context): Promise<any>;
handler(ctx: import("koa").Context, next?: import("koa").Next): Promise<void>;
onLimitReached(ctx: import("koa").Context): Promise<void>;
get middleware(): (ctx: import("koa").Context, next: import("koa").Next) => Promise<any>;
private _rateLimit;
private _isWhitelisted;
getUserIdFromKey(key: string): string;
wait(ms: number): Promise<void>;
}
export declare function middleware(options?: RateLimitOptions): import("koa").Middleware;
export declare function defaultOptions(options?: RateLimitOptions): void;
declare const _default: {
RateLimit: typeof RateLimit;
middleware: typeof middleware;
defaultOptions: typeof defaultOptions;
};
export default _default;
//# sourceMappingURL=RateLimit.d.ts.map