UNPKG

@node-idempotency/core

Version:

A Race-Condition free Node.js library that ensures idempotency for requests, preventing unintended duplicate operations.

38 lines 1.24 kB
export interface IdempotencyOptions { idempotencyKey?: string; keyMaxLength?: number; cacheKeyPrefix?: string; cacheTTLMS?: number; enforceIdempotency?: boolean; skipRequest?: (req: IdempotencyParamsWithDefaults) => boolean | Promise<boolean>; } export interface IdempotencyParams { headers: Record<string, unknown>; path: string; body?: Record<string, unknown>; method?: string; options?: IdempotencyOptions; } export interface IdempotencyParamsWithDefaults extends IdempotencyParams { options: Required<Omit<IdempotencyOptions, "skipRequest">> & { skipRequest?: IdempotencyOptions["skipRequest"]; }; } export declare enum RequestStatusEnum { IN_PROGRESS = "IN_PROGRESS", COMPLETE = "COMPLETE" } export declare enum HttpHeaderKeysEnum { IDEMPOTENCY_KEY = "Idempotency-Key" } export interface StoragePayload<BodyType = unknown, ErrorType = unknown> { status: RequestStatusEnum; fingerPrint?: string; response?: IdempotencyResponse<BodyType, ErrorType>; } export interface IdempotencyResponse<BodyType = unknown, ErrorType = unknown> { body?: BodyType; additional?: Record<string, unknown>; error?: ErrorType; } //# sourceMappingURL=types.d.ts.map