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