nestjs-temporal-core
Version:
Complete NestJS integration for Temporal.io with auto-discovery, declarative scheduling, enhanced monitoring, and enterprise-ready features
78 lines (77 loc) • 3.52 kB
TypeScript
import { OnModuleInit } from '@nestjs/common';
import { DiscoveryStats, ScheduledMethodInfo, ScheduleStats, StartWorkflowOptions, SystemStatus, WorkerStatus, TemporalOptions } from './interfaces';
import { TemporalClientService, TemporalScheduleService } from './client';
import { TemporalDiscoveryService, TemporalScheduleManagerService } from './discovery';
import { TemporalWorkerManagerService } from './worker';
export declare class TemporalService implements OnModuleInit {
private readonly clientService;
private readonly scheduleService;
private readonly discoveryService;
private readonly scheduleManager;
private readonly options;
private readonly workerManager?;
private readonly logger;
constructor(clientService: TemporalClientService, scheduleService: TemporalScheduleService, discoveryService: TemporalDiscoveryService, scheduleManager: TemporalScheduleManagerService, options: TemporalOptions, workerManager?: TemporalWorkerManagerService | undefined);
onModuleInit(): Promise<void>;
getClient(): TemporalClientService;
getScheduleService(): TemporalScheduleService;
getScheduleManager(): TemporalScheduleManagerService;
getDiscoveryService(): TemporalDiscoveryService;
getWorkerManager(): TemporalWorkerManagerService | undefined;
startWorkflow<T, A extends unknown[]>(workflowType: string, args: A, options: StartWorkflowOptions): Promise<{
result: Promise<T>;
workflowId: string;
firstExecutionRunId: string;
handle: unknown;
}>;
signalWorkflow(workflowId: string, signalName: string, args?: unknown[]): Promise<void>;
queryWorkflow<T>(workflowId: string, queryName: string, args?: unknown[]): Promise<T>;
terminateWorkflow(workflowId: string, reason?: string): Promise<void>;
cancelWorkflow(workflowId: string): Promise<void>;
triggerSchedule(scheduleId: string): Promise<void>;
pauseSchedule(scheduleId: string, note?: string): Promise<void>;
resumeSchedule(scheduleId: string, note?: string): Promise<void>;
deleteSchedule(scheduleId: string, force?: boolean): Promise<void>;
getManagedSchedules(): string[];
getScheduleInfo(scheduleId: string): ScheduledMethodInfo | undefined;
hasSchedule(scheduleId: string): boolean;
hasWorker(): boolean;
getWorkerStatus(): WorkerStatus | null;
restartWorker(): Promise<void>;
getWorkerHealth(): Promise<{
status: 'healthy' | 'unhealthy' | 'degraded' | 'not_available';
details?: unknown;
}>;
getDiscoveryStats(): DiscoveryStats;
getScheduleStats(): ScheduleStats;
getSystemStatus(): Promise<SystemStatus>;
getOverallHealth(): Promise<{
status: 'healthy' | 'degraded' | 'unhealthy';
components: {
client: {
status: string;
healthy: boolean;
};
worker: {
status: string;
available: boolean;
};
discovery: {
status: string;
scheduled: number;
};
schedules: {
status: string;
active: number;
errors: number;
};
};
}>;
getAvailableWorkflows(): string[];
getWorkflowInfo(_workflowName: string): unknown;
hasWorkflow(_workflowName: string): boolean;
private enhanceWorkflowOptions;
private validateWorkflowExists;
private validateScheduleExists;
private logInitializationSummary;
}