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
TypeScript
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;
}