UNPKG

@temporalio/common

Version:

Common library for code that's used across the Client, Worker, and/or Workflow

42 lines (41 loc) 1.91 kB
/** * Visits payloads for External Storage and applies payload transformations via * {@link ExternalStorageRunner}. * * @module */ import type { ConcurrencyLimit } from '../concurrency/limit'; import type { ExternalStorage, StorageDriverTargetInfo } from '../converter/extstore'; import type { ContextDeriver, VisitOptions } from './payload-visitor'; /** * The storage target in scope at a given payload site during a store walk. It starts at * {@link ExternalStorageStoreOptions.initialTarget} and {@link ExternalStorageStoreOptions.deriveContext} * may retarget it per message (e.g. a child-workflow command retargets its payloads at the child). */ type StoreTarget = StorageDriverTargetInfo | undefined; /** @internal @experimental */ export interface ExternalStorageStoreOptions { /** Storage target before any message is entered (the initial enclosing workflow / activity). */ initialTarget?: StorageDriverTargetInfo; /** Derives new storage target from the current message. */ deriveContext?: ContextDeriver<StoreTarget>; /** Bounds concurrent transform calls across payload sites. Omit for sequential. */ limit?: ConcurrencyLimit; /** Aborts the walk and every in-flight driver call. */ abortSignal?: AbortSignal; } /** * @internal * @experimental */ export declare function extstoreStoreOptions(externalStorage: ExternalStorage, { initialTarget, deriveContext, limit, abortSignal }?: ExternalStorageStoreOptions): VisitOptions<StoreTarget>; /** * The inbound External Storage pass for a worker/client boundary: resolve reference payloads when * {@link ExternalStorage} is configured, otherwise fail loudly (via {@link extstoreDetectReferencesOptions}) * because nothing can resolve them. * * @internal * @experimental */ export declare function extstoreInboundOptions(externalStorage: ExternalStorage | undefined): VisitOptions<void>; export {};