@arturwojnar/hermes-postgresql
Version:
Production-Ready TypeScript Outbox Pattern for PostgreSQL
24 lines • 893 B
JavaScript
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