UNPKG

@daiso-tech/core

Version:

The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.

44 lines (43 loc) 1.85 kB
/** * @module RateLimiter */ import { type IEventBus } from "../../../../event-bus/contracts/_module.js"; import { type IExecutionContext } from "../../../../execution-context/contracts/_module.js"; import { type INamespace } from "../../../../namespace/contracts/_module.js"; import { type IRateLimiterAdapter, type RateLimiterEventMap } from "../../../../rate-limiter/contracts/_module.js"; import { RateLimiter, type ISerializedRateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-factory/rate-limiter.js"; import { type ISerdeTransformer } from "../../../../serde/contracts/_module.js"; import { type ErrorPolicy, type OneOrMore, type WaitUntil } from "../../../../utilities/_module.js"; /** * @internal */ export type RateLimiterSerdeTransformerSettings = { adapter: IRateLimiterAdapter; namespace: INamespace; errorPolicy: ErrorPolicy; onlyError: boolean; eventBus: IEventBus<RateLimiterEventMap>; serdeTransformerName: string; enableAsyncTracking: boolean; waitUntil: WaitUntil; executionContext: IExecutionContext; }; /** * @internal */ export declare class RateLimiterSerdeTransformer implements ISerdeTransformer<RateLimiter, ISerializedRateLimiter> { private readonly adapter; private readonly namespace; private readonly errorPolicy; private readonly eventBus; private readonly serdeTransformerName; private readonly enableAsyncTracking; private readonly onlyError; private readonly waitUntil; private readonly executionContext; constructor(settings: RateLimiterSerdeTransformerSettings); get name(): OneOrMore<string>; isApplicable(value: unknown): value is RateLimiter; deserialize(serializedValue: ISerializedRateLimiter): RateLimiter; serialize(deserializedValue: RateLimiter): ISerializedRateLimiter; }