@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
TypeScript
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