@sotatech/nest-taskflow
Version:
A task flow management library for NestJS with Redis Pub/Sub integration.
32 lines (31 loc) • 1.4 kB
TypeScript
import { OnModuleDestroy } from '@nestjs/common';
import { RedisService } from '@liaoliaots/nestjs-redis';
import { AddTaskOptions, TaskFlowModuleOptions, TaskFlowRecipients, TaskMetadata } from './interfaces';
import { StrategyRegistry } from './strategies';
export declare class TaskFlowService implements OnModuleDestroy {
private readonly moduleOptions;
private readonly redisService;
private readonly strategyRegistry;
private readonly logger;
private readonly redisClient;
constructor(moduleOptions: TaskFlowModuleOptions, redisService: RedisService, strategyRegistry: StrategyRegistry);
addTask<T = any>(queueName: string, data: T, options: AddTaskOptions): Promise<TaskMetadata<T>>;
verify(taskId: string, method: string, otp: string): Promise<TaskMetadata>;
resendOtp(taskId: string, method: string): Promise<void>;
private isValidOtpRequest;
private generateAndSendOtp;
private cacheOtp;
updateRecipient(taskId: string, newRecipient: TaskFlowRecipients): Promise<void>;
private persistUpdatedRecipient;
private resendOtpsForAllMethods;
private createTaskMetadata;
private saveTaskMetadata;
private executeStrategies;
private addToQueue;
private updateTaskStatus;
private removeFromQueue;
private cleanupOtpKeys;
private generateTaskId;
private getTaskMetadata;
onModuleDestroy(): void;
}