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