flowed
Version:
A fast and reliable flow engine for orchestration and more uses in *Node.js*, *Deno* and the browser
39 lines (38 loc) • 1.01 kB
TypeScript
import { AnyValue, TransformTemplate } from '../types';
export interface FlowSpec {
tasks?: TaskSpecMap;
configs?: FlowConfigs;
options?: FlowOptions;
}
export declare class TaskSpecMap {
[code: string]: TaskSpec;
}
export interface TaskSpec {
requires?: string[];
provides?: string[];
defaultResult?: AnyValue;
resolver?: TaskResolverSpec;
}
export interface TaskResolverSpec {
name: string;
params?: TaskParamsMap;
results?: TaskResultsMap;
}
export interface TaskParamsMap {
[code: string]: string | ResolverParamInfoValue | ResolverParamInfoTransform;
}
export interface ResolverParamInfoValue {
value: AnyValue;
}
export interface ResolverParamInfoTransform {
transform: TransformTemplate;
}
export interface TaskResultsMap {
[code: string]: AnyValue;
}
export interface FlowOptions {
throwErrorOnUnsolvableResult?: boolean;
resolverAutomapParams?: boolean;
resolverAutomapResults?: boolean;
}
export type FlowConfigs = FlowOptions;