3.0.2 • Published 2 years ago

@types/lambda-rate-limiter v3.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Installation

npm install --save @types/lambda-rate-limiter

Summary

This package contains type definitions for lambda-rate-limiter (https://github.com/blackflux/lambda-rate-limiter).

Details

Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lambda-rate-limiter.

index.d.ts

// Type definitions for lambda-rate-limiter 3.0
// Project: https://github.com/blackflux/lambda-rate-limiter
// Definitions by: BendingBender <https://github.com/bendingbender>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped

export = rateLimiterFactory;

/**
 * Initializes the rate limiter.
 *
 * @example
 * import limiterFactory = require('lambda-rate-limiter');
 *
 * const limiter = limiterFactory({
 *   interval: 60000,
 *   uniqueTokenPerInterval: 500,
 * });
 *
 * limiter
 *   .check(10, 'USER_TOKEN') // define maximum of 10 requests per interval
 *   .catch(() => {
 *     // rate limit exceeded: 429
 *   })
 *   .then(() => {
 *     // ok
 *   });
 */
declare function rateLimiterFactory(options?: rateLimiterFactory.Options): rateLimiterFactory.RateLimiter;

declare namespace rateLimiterFactory {
    interface Options {
        /**
         * Rate limit interval in ms, starts on first request.
         *
         * @default 60000
         */
        interval?: number | undefined;
        /**
         * Max unique tokens per interval. Excess causes earliest seen to drop, per instantiation.
         *
         * @default 500
         */
        uniqueTokenPerInterval?: number | undefined;
    }

    interface RateLimiter {
        /**
         * Check whether rate limit was reached.
         *
         * @param limit Max requests per interval.
         * @param token Any token value. Could be the user ip or login.
         */
        check(limit: number, token: string): Promise<number>;
    }
}

Additional Details

  • Last updated: Wed, 03 Nov 2021 21:31:30 GMT
  • Dependencies: none
  • Global values: none

Credits

These definitions were written by BendingBender.