UNPKG

nestjs-temporal-core

Version:

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

44 lines (43 loc) 2.67 kB
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common'; import { DiscoveryService } from '@nestjs/core'; import { Client } from '@temporalio/client'; import { TemporalOptions, ScheduleCreationOptions, ScheduleCreationResult, ScheduleUpsertResult, ScheduleRetrievalResult, SchedulePauseResult, ScheduleUnpauseResult, ScheduleTriggerResult, ScheduleDeletionResult, ScheduleUpdateResult, ScheduleDescribeResult, ScheduleListResult, ScheduleServiceStatus, ScheduleServiceHealth, ScheduleServiceStats, ScheduleDescription, ScheduleUpdateOptions, ListScheduleOptions, TemporalOverlapPolicy } from '../interfaces'; import { TemporalMetadataAccessor } from './temporal-metadata.service'; export declare class TemporalScheduleService implements OnModuleInit, OnModuleDestroy { private readonly options; private readonly client; private readonly discoveryService; private readonly metadataAccessor; private readonly logger; private scheduleClient?; private scheduleHandles; private isInitialized; constructor(options: TemporalOptions, client: Client | null, discoveryService: DiscoveryService, metadataAccessor: TemporalMetadataAccessor); private extractErrorMessage; private normalizeScheduleOptions; onModuleInit(): Promise<void>; onModuleDestroy(): Promise<void>; private initializeScheduleClient; private discoverAndRegisterSchedules; private registerScheduledWorkflow; private buildScheduleSpec; private buildWorkflowOptions; private parseInterval; private buildScheduleOptions; createSchedule(options: ScheduleCreationOptions): Promise<ScheduleCreationResult>; upsertSchedule(options: ScheduleCreationOptions): Promise<ScheduleUpsertResult>; getSchedule(scheduleId: string): Promise<ScheduleRetrievalResult>; private resolveScheduleHandle; pauseSchedule(scheduleId: string, note?: string): Promise<SchedulePauseResult>; unpauseSchedule(scheduleId: string, note?: string): Promise<ScheduleUnpauseResult>; triggerSchedule(scheduleId: string, overlapPolicy?: TemporalOverlapPolicy): Promise<ScheduleTriggerResult>; deleteSchedule(scheduleId: string): Promise<ScheduleDeletionResult>; updateSchedule(scheduleId: string, updateFn: (previous: ScheduleDescription) => ScheduleUpdateOptions): Promise<ScheduleUpdateResult>; describeSchedule(scheduleId: string): Promise<ScheduleDescribeResult>; listSchedules(options?: ListScheduleOptions): ScheduleListResult; isHealthy(): boolean; getScheduleStats(): ScheduleServiceStats; getStatus(): ScheduleServiceStatus; getHealth(): ScheduleServiceHealth; private ensureInitialized; }