nestjs-temporal-core
Version:
Complete NestJS integration for Temporal.io with auto-discovery, declarative scheduling, enhanced monitoring, and enterprise-ready features
32 lines (31 loc) • 2.99 kB
TypeScript
import type { Workflow, SignalDefinition, QueryDefinition } from '@temporalio/workflow';
import type { UpdateDefinition } from '@temporalio/common';
import { WorkflowHandle } from '@temporalio/client';
import { TemporalClientService } from '../services/temporal-client.service';
import { WorkflowHandleWithMetadata, WorkflowStartOptions, WorkflowProxyConfig } from '../interfaces';
export interface IWorkflowProxy<T extends Workflow> {
start(args: Parameters<T>, options?: WorkflowStartOptions): Promise<WorkflowHandleWithMetadata<T>>;
getHandle(workflowId: string, runId?: string): Promise<WorkflowHandle<T>>;
signal<TArgs extends unknown[]>(workflowId: string, signalDef: SignalDefinition<TArgs>, ...args: TArgs): Promise<void>;
signalByName(workflowId: string, signalName: string, args?: readonly unknown[]): Promise<void>;
query<TResult, TArgs extends unknown[] = []>(workflowId: string, queryDef: QueryDefinition<TResult, TArgs>, ...args: TArgs): Promise<TResult>;
queryByName<TResult>(workflowId: string, queryName: string, args?: readonly unknown[]): Promise<TResult>;
update<TResult, TArgs extends unknown[] = []>(workflowId: string, updateDef: UpdateDefinition<TResult, TArgs>, ...args: TArgs): Promise<TResult>;
updateByName<TResult>(workflowId: string, updateName: string, args?: readonly unknown[]): Promise<TResult>;
signalWithStart<TSignalArgs extends unknown[]>(signalDef: SignalDefinition<TSignalArgs>, signalArgs: TSignalArgs, workflowArgs: Parameters<T>, options?: WorkflowStartOptions): Promise<WorkflowHandleWithMetadata<T>>;
}
export declare class WorkflowProxy<T extends Workflow> implements IWorkflowProxy<T> {
private readonly clientService;
private readonly config;
constructor(clientService: TemporalClientService, config: WorkflowProxyConfig);
start(args: Parameters<T>, options?: WorkflowStartOptions): Promise<WorkflowHandleWithMetadata<T>>;
getHandle(workflowId: string, runId?: string): Promise<WorkflowHandle<T>>;
signal<TArgs extends unknown[]>(workflowId: string, signalDef: SignalDefinition<TArgs>, ...args: TArgs): Promise<void>;
signalByName(workflowId: string, signalName: string, args?: readonly unknown[]): Promise<void>;
query<TResult, TArgs extends unknown[] = []>(workflowId: string, queryDef: QueryDefinition<TResult, TArgs>, ...args: TArgs): Promise<TResult>;
queryByName<TResult>(workflowId: string, queryName: string, args?: readonly unknown[]): Promise<TResult>;
update<TResult, TArgs extends unknown[] = []>(workflowId: string, updateDef: UpdateDefinition<TResult, TArgs>, ...args: TArgs): Promise<TResult>;
updateByName<TResult>(workflowId: string, updateName: string, args?: readonly unknown[]): Promise<TResult>;
signalWithStart<TSignalArgs extends unknown[]>(signalDef: SignalDefinition<TSignalArgs>, signalArgs: TSignalArgs, workflowArgs: Parameters<T>, options?: WorkflowStartOptions): Promise<WorkflowHandleWithMetadata<T>>;
private mergeOptions;
}