flowed
Version:
A fast and reliable flow engine for orchestration and more uses in *Node.js*, *Deno* and the browser
71 lines (70 loc) • 2.08 kB
TypeScript
import { Debugger } from 'debug';
import { Task } from './engine';
import { ValueQueueManager } from './engine/value-queue-manager';
export declare enum FlowStateEnum {
Ready = "Ready",
Running = "Running",
Finished = "Finished",
Pausing = "Pausing",
Paused = "Paused",
Stopping = "Stopping",
Stopped = "Stopped"
}
export declare enum FlowTransitionEnum {
Start = "Start",
Finished = "Finished",
Reset = "Reset",
Pause = "Pause",
Paused = "Paused",
Resume = "Resume",
Stop = "Stop",
Stopped = "Stopped"
}
export type AnyValue = any;
export type TransformTemplate = AnyValue;
export type OptPromise<T> = T | Promise<T>;
export interface ValueMap {
[key: string]: AnyValue;
}
export type GenericValueMap = ValueMap;
export interface ITaskResolver {
exec(params: ValueMap, context?: ValueMap, task?: Task, debug?: Debugger, log?: LoggerFn): OptPromise<ValueMap>;
}
export declare class TaskResolver implements ITaskResolver {
exec(_params: ValueMap, _context?: ValueMap, _task?: Task, _debug?: Debugger, _log?: LoggerFn): OptPromise<ValueMap>;
}
export type TaskResolverFn = (params: ValueMap, context?: ValueMap, task?: Task, debug?: Debugger, log?: LoggerFn) => OptPromise<ValueMap>;
export type TaskResolverClass = typeof TaskResolver;
export type TaskResolverExecutor = TaskResolverClass | TaskResolverFn;
export declare class TaskResolverMap {
[key: string]: TaskResolverExecutor;
}
export interface TaskMap {
[code: string]: Task;
}
export interface TaskRunStatus {
solvedReqs: ValueQueueManager;
solvedResults: ValueMap;
}
export interface FlowedPlugin {
resolverLibrary: TaskResolverMap;
}
export interface FlowedLogger {
log(entry: FlowedLogEntry): void;
}
export interface FlowedLogEntry {
timestamp: Date;
level: string;
eventType: string;
message: string;
objectId?: string;
tags?: string[];
extra?: ValueMap;
}
export type LoggerFn = ({ n, m, mp, l, e }: {
n?: number;
m: string;
mp?: ValueMap;
l?: string;
e?: string;
}) => void;