UNPKG

@russ-b/nestjs-common-tools

Version:
23 lines (22 loc) 1.43 kB
import { EntityManager, Repository } from 'typeorm'; import { OutboxEvent } from '../entities'; import { OutboxResolvedModuleOptions } from '../types'; export declare class OutboxService { private readonly outboxRepository; private readonly options; constructor(outboxRepository: Repository<OutboxEvent>, options: OutboxResolvedModuleOptions); getOperationalPolicy(): OutboxResolvedModuleOptions['operationalPolicy']; createEvent(eventType: string, payload: Record<string, any>, manager?: EntityManager): Promise<OutboxEvent>; claimById(eventId: string): Promise<OutboxEvent | null>; claimPendingEventsByTypes(eventTypes: string[], limit?: number): Promise<OutboxEvent[]>; claimPendingEvents(eventType: string, limit?: number): Promise<OutboxEvent[]>; markAsProcessing(eventId: string): Promise<void>; markAsProcessed(eventId: string, expectedProcessingStartedAt?: Date | null): Promise<boolean>; incrementRetry(eventId: string, error: string, maxRetries?: number, expectedProcessingStartedAt?: Date | null): Promise<boolean>; markAsFailed(eventId: string, error: string, expectedProcessingStartedAt?: Date | null): Promise<boolean>; deleteProcessed(olderThanHours?: number): Promise<number>; resetStaleProcessingEvents(staleMinutes?: number): Promise<number>; private findEventForProcessingUpdate; private updateEvent; private addProcessingOwnershipCondition; }