@russ-b/nestjs-common-tools
Version:
NestJS utility tools
23 lines (22 loc) • 1.43 kB
TypeScript
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;
}