UNPKG

@message-queue-toolkit/core

Version:

Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently

38 lines (37 loc) 2.09 kB
import type { MessageProcessingResult, MessageProcessingResultStatus } from '../types/MessageQueueTypes'; export type HandlerSpyParams = { bufferSize?: number; messageIdField?: string; messageTypeField?: string; }; export type SpyResultInput<MessagePayloadSchemas extends object> = { message: MessagePayloadSchemas | null; processingResult: MessageProcessingResult; }; export type SpyResultOutput<MessagePayloadSchemas extends object> = { message: MessagePayloadSchemas; processingResult: MessageProcessingResult; }; export declare function isHandlerSpy<T extends object>(value: unknown): value is HandlerSpy<T>; export type PublicHandlerSpy<MessagePayloadSchemas extends object> = Omit<HandlerSpy<MessagePayloadSchemas>, 'addProcessedMessage'>; type DeepPartial<T> = T extends Function ? T : T extends object ? { [P in keyof T]?: T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : DeepPartial<T[P]>; } : T; export declare class HandlerSpy<MessagePayloadSchemas extends object> { name: string; private readonly messageBuffer; private readonly messageIdField; private readonly messageTypeField; private readonly spyPromises; constructor(params?: HandlerSpyParams); private messageMatchesFilter; waitForMessageWithId<T extends MessagePayloadSchemas>(id: string, status?: MessageProcessingResultStatus): Promise<SpyResultOutput<T>>; checkForMessage<T extends MessagePayloadSchemas>(expectedFields: DeepPartial<T>, status?: MessageProcessingResultStatus): SpyResultOutput<T> | undefined; waitForMessage<T extends MessagePayloadSchemas>(expectedFields: DeepPartial<T>, status?: MessageProcessingResultStatus): Promise<SpyResultOutput<T>>; clear(): void; addProcessedMessage(processingResult: SpyResultInput<MessagePayloadSchemas>, messageId?: string): void; } export declare function resolveHandlerSpy<T extends object>(queueOptions: { handlerSpy?: HandlerSpy<object> | HandlerSpyParams | boolean; }): HandlerSpy<T> | undefined; export {};