@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
TypeScript
/**
* @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;
}