UNPKG

@arturwojnar/hermes-postgresql

Version:

Production-Ready TypeScript Outbox Pattern for PostgreSQL

17 lines (16 loc) 774 B
import { Duration } from '@arturwojnar/hermes'; import { Transaction } from '../subscribeToReplicationSlot/types.js'; type MessageToPublish<InsertResult> = { transaction: Transaction<InsertResult>; acknowledge: () => void; }; type PublishingQueueOptions<InsertResult> = { waitAfterFailedPublish?: Duration; onFailedPublish?: (tx: Transaction<InsertResult>) => Promise<void>; }; declare const createPublishingQueue: <InsertResult>(publish: (messageToPublish: MessageToPublish<InsertResult>) => Promise<void>, options?: PublishingQueueOptions<InsertResult>) => { queue: (messageToPublish: MessageToPublish<InsertResult>) => void; publishMessages: () => Promise<void>; size: () => number; }; export { createPublishingQueue, type MessageToPublish };