nestjs-temporal-core
    Preparing search index...

    Class WorkflowProxy<T>

    Concrete implementation of IWorkflowProxy<T>.

    Plain class — not @Injectable. Instances are created by WorkflowProxyFactory and registered as NestJS providers via createWorkflowProvider().

    Type Parameters

    Implements

    Index

    Constructors

    Methods

    • Get a typed handle to an existing workflow execution. result() on the handle returns Promise<WorkflowResultType<T>>.

      Parameters

      • workflowId: string
      • OptionalrunId: string

      Returns Promise<WorkflowHandle<T>>

      const handle = await this.orderProxy.getHandle('order-42');
      const result = await handle.result(); // typed as the workflow's return type
    • Query the workflow using a typed QueryDefinition created with defineQuery. TResult and TArgs are both inferred from the definition.

      Type Parameters

      • TResult
      • TArgs extends unknown[] = []

      Parameters

      Returns Promise<TResult>

      // in workflow file: export const statusQuery = defineQuery<OrderStatus>('getStatus');
      const status = await this.orderProxy.query('order-42', statusQuery); // typed: OrderStatus

      // query with args:
      // export const itemQuery = defineQuery<Item, [string]>('getItem');
      const item = await this.orderProxy.query('order-42', itemQuery, 'item-id');
    • Query by string name. Use when a QueryDefinition is unavailable. Caller must supply TResult explicitly (e.g. queryByName<OrderStatus>(...)).

      Type Parameters

      • TResult

      Parameters

      • workflowId: string
      • queryName: string
      • Optionalargs: readonly unknown[]

      Returns Promise<TResult>

      const status = await this.orderProxy.queryByName<OrderStatus>(
      'order-42',
      'getStatus',
      );
    • Send a typed signal using a SignalDefinition created with defineSignal. TypeScript infers TArgs from the definition — call site is fully type-checked.

      Type Parameters

      • TArgs extends unknown[]

      Parameters

      • workflowId: string
      • signalDef: SignalDefinition<TArgs>
      • ...args: TArgs

      Returns Promise<void>

      // in workflow file: export const approveSignal = defineSignal<[string]>('approve');
      await this.orderProxy.signal('order-42', approveSignal, 'manager-approval');
    • Send a signal by string name. Use when a SignalDefinition is unavailable. Args are readonly unknown[] — no implicit any.

      Parameters

      • workflowId: string
      • signalName: string
      • Optionalargs: readonly unknown[]

      Returns Promise<void>

      await this.orderProxy.signalByName('order-42', 'approve', ['manager-approval']);
      
    • Atomically start the workflow and send a signal. If the workflow is already running, only the signal is delivered (no duplicate start). Both signalArgs and workflowArgs are fully typed via the respective definitions.

      Type Parameters

      • TSignalArgs extends unknown[]

      Parameters

      Returns Promise<WorkflowHandleWithMetadata<T>>

      // export const addItemSignal = defineSignal<[CartItem]>('addItem');
      await this.cartProxy.signalWithStart(
      addItemSignal,
      [{ sku: 'SKU-123', qty: 2 }], // signalArgs — typed
      [userId], // workflowArgs — typed as Parameters<cartWorkflow>
      { workflowId: `cart-${userId}`, taskQueue: 'carts' },
      );