@temporalio/common
Version:
Common library for code that's used across the Client, Worker, and/or Workflow
42 lines (41 loc) • 1.91 kB
TypeScript
/**
* 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 {};