UNPKG

@arturwojnar/hermes-postgresql

Version:

Production-Ready TypeScript Outbox Pattern for PostgreSQL

24 lines 893 B
import { Duration, literalObject } from '@arturwojnar/hermes'; import { createAsyncOutboxConsumer, } from '../asyncOutbox/AsyncOutboxConsumer.js'; const useBasicAsyncOutboxConsumerPolicy = (checkInterval = Duration.ofSeconds(15)) => (hermes) => { const params = hermes.getCreationParams(); return createAsyncOutboxConsumer({ consumerName: params.consumerName, getSql: () => hermes.getDbConnection(), publish: (message) => params.publish(toHermesEnvelope(message)), checkInterval, }); }; const toHermesEnvelope = (message) => { if (Array.isArray(message)) { return message.map((message) => ({ ...message, lsn: `0/0`, })); } else { return literalObject({ ...message, lsn: `0/0` }); } }; export { useBasicAsyncOutboxConsumerPolicy }; //# sourceMappingURL=useBasicAsyncStoragePolicy.js.map