UNPKG

lambda-live-debugger

Version:

Debug Lambda functions locally like it is running in the cloud

22 lines (21 loc) 825 B
import { DefaultRateLimiter, RETRY_MODES } from "@smithy/util-retry"; import { StandardRetryStrategy } from "./StandardRetryStrategy"; export class AdaptiveRetryStrategy extends StandardRetryStrategy { rateLimiter; constructor(maxAttemptsProvider, options) { const { rateLimiter, ...superOptions } = options ?? {}; super(maxAttemptsProvider, superOptions); this.rateLimiter = rateLimiter ?? new DefaultRateLimiter(); this.mode = RETRY_MODES.ADAPTIVE; } async retry(next, args) { return super.retry(next, args, { beforeRequest: async () => { return this.rateLimiter.getSendToken(); }, afterRequest: (response) => { this.rateLimiter.updateClientSendingRate(response); }, }); } }