UNPKG

nestjs-temporal-core

Version:

Complete NestJS integration for Temporal.io with auto-discovery, declarative scheduling, enhanced monitoring, and enterprise-ready features

92 lines (91 loc) 4.78 kB
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common'; import { TemporalOptions, WorkflowStartOptions, ServiceHealth, WorkerStatus, ActivityMethodInfo, MetadataInfo, TemporalServiceInitResult, WorkflowExecutionResult, WorkflowSignalResult, WorkflowQueryResult, WorkflowTerminationResult, WorkflowCancellationResult, ActivityExecutionResult, OverallHealthStatus, ServiceStatistics, WorkerDefinition, MultipleWorkersInfo, CreateWorkerResult, Worker } from '../interfaces'; import { TemporalClientService } from './temporal-client.service'; import { TemporalWorkerManagerService } from './temporal-worker.service'; import { TemporalScheduleService } from './temporal-schedule.service'; import { TemporalDiscoveryService } from './temporal-discovery.service'; import { TemporalMetadataAccessor } from './temporal-metadata.service'; export declare class TemporalService implements OnModuleInit, OnModuleDestroy { private readonly options; private readonly clientService; private readonly workerService; private readonly scheduleService; private readonly discoveryService; private readonly metadataAccessor; private readonly logger; private isInitialized; private shutdownPromise; constructor(options: TemporalOptions, clientService: TemporalClientService, workerService: TemporalWorkerManagerService, scheduleService: TemporalScheduleService, discoveryService: TemporalDiscoveryService, metadataAccessor: TemporalMetadataAccessor); onModuleInit(): Promise<TemporalServiceInitResult>; onModuleDestroy(): Promise<void>; private waitForServicesInitialization; private performShutdown; startWorkflow<T = unknown>(workflowType: string, args?: unknown[], options?: WorkflowStartOptions): Promise<WorkflowExecutionResult<T>>; signalWorkflow(workflowId: string, signalName: string, args?: unknown[]): Promise<WorkflowSignalResult>; queryWorkflow<T = unknown>(workflowId: string, queryName: string, args?: unknown[]): Promise<WorkflowQueryResult<T>>; getWorkflowHandle<T = unknown>(workflowId: string, runId?: string): Promise<T>; terminateWorkflow(workflowId: string, reason?: string): Promise<WorkflowTerminationResult>; cancelWorkflow(workflowId: string): Promise<WorkflowCancellationResult>; startWorker(): Promise<void>; stopWorker(): Promise<void>; isWorkerRunning(): boolean; hasWorker(): boolean; getWorkerStatus(): WorkerStatus | null; getWorkerManager(): TemporalWorkerManagerService; getWorker(taskQueue: string): Worker | null; getAllWorkers(): MultipleWorkersInfo | null; getWorkerStatusByTaskQueue(taskQueue: string): WorkerStatus | null; startWorkerByTaskQueue(taskQueue: string): Promise<void>; stopWorkerByTaskQueue(taskQueue: string): Promise<void>; registerWorker(workerDef: WorkerDefinition): Promise<CreateWorkerResult>; executeActivity<T = unknown>(name: string, ...args: unknown[]): Promise<ActivityExecutionResult<T>>; getActivity(name: string): Function | undefined; getAllActivities(): Record<string, Function>; hasActivity(name: string): boolean; getActivityNames(): string[]; isActivity(target: Function): boolean; isActivityMethod(target: object, methodName: string): boolean; getActivityMetadata(target: Function): MetadataInfo | null; extractActivityMethods(target: Function): ActivityMethodInfo[]; getOverallHealth(): Promise<OverallHealthStatus>; getWorkerHealth(): Promise<{ status: 'healthy' | 'unhealthy' | 'degraded' | 'not_available'; details?: WorkerStatus; }>; getHealth(): { status: 'healthy' | 'unhealthy' | 'degraded'; services: { client: ServiceHealth; worker: ServiceHealth; schedule: ServiceHealth; activity: ServiceHealth; discovery: ServiceHealth; }; isInitialized: boolean; namespace: string; summary: { totalActivities: number; totalSchedules: number; workerRunning: boolean; clientConnected: boolean; }; }; getStats(): ServiceStatistics; private logServiceStatus; private ensureInitialized; private enhanceWorkflowOptions; private getClientHealth; private getWorkerHealthStatus; private getScheduleHealth; private getActivityHealth; private getDiscoveryHealth; private getActivityCount; private getScheduleCount; get client(): TemporalClientService; get worker(): TemporalWorkerManagerService; get schedule(): TemporalScheduleService; get activity(): TemporalDiscoveryService; get discovery(): TemporalDiscoveryService; get metadata(): TemporalMetadataAccessor; private extractErrorMessage; }