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

27 lines (26 loc) 1.36 kB
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; }