@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
27 lines (26 loc) • 1.36 kB
TypeScript
import type { PublisherBaseEventType } from '../events/baseEventSchemas';
import type { CommonEventDefinition } from '../events/eventTypes';
import type { PublisherMessageMetadataType } from './baseMessageSchemas';
export type IdGenerator = () => string;
export type TimestampGenerator = () => string;
export type MetadataFillerOptions = {
serviceId: string;
idGenerator?: IdGenerator;
timestampGenerator?: TimestampGenerator;
defaultVersion?: string;
};
export type MetadataFiller<T extends PublisherBaseEventType = PublisherBaseEventType, D = CommonEventDefinition, M = PublisherMessageMetadataType> = {
produceMetadata(currentMessage: T, eventDefinition: D, precedingMessageMetadata?: M): M;
produceId(): string;
produceTimestamp(): string;
produceCurrentServiceId(): string;
};
export declare class CommonMetadataFiller implements MetadataFiller {
private readonly serviceId;
readonly produceId: IdGenerator;
readonly produceTimestamp: TimestampGenerator;
private readonly defaultVersion;
constructor(options: MetadataFillerOptions);
produceCurrentServiceId(): string;
produceMetadata(_currentMessage: PublisherBaseEventType, eventDefinition: Pick<CommonEventDefinition, 'schemaVersion'>, precedingMessageMetadata?: Omit<PublisherMessageMetadataType, 'producedBy'>): PublisherMessageMetadataType;
}