@neo-one/server-plugin
Version:
NEO•ONE Server plugin API.
46 lines (45 loc) • 1.74 kB
TypeScript
import { Observable } from 'rxjs';
import { TaskStatus } from './types';
export declare type TaskContext = any;
declare type SkipFn = (ctx: TaskContext) => string | boolean;
declare type EnabledFn = (ctx: TaskContext) => boolean;
declare type OnErrorFn = (error: Error, ctx: TaskContext) => void;
declare type OnDoneFn = (failed: boolean) => void;
export interface Task {
readonly skip?: SkipFn;
readonly enabled?: EnabledFn;
readonly task: (ctx: TaskContext) => Promise<void> | Promise<string> | Observable<string> | TaskList | void;
readonly title: string;
}
export interface TaskListOptions {
readonly tasks: readonly Task[];
readonly concurrent?: boolean;
readonly onError?: OnErrorFn;
readonly onComplete?: () => void;
readonly onDone?: OnDoneFn;
readonly initialContext?: TaskContext;
readonly freshContext?: boolean;
readonly collapse?: boolean;
}
export declare class TaskList {
mutableSuperOnError: (error: Error) => void;
readonly onError: OnErrorFn;
private readonly tasks;
private readonly concurrent;
private readonly onComplete;
private readonly onDone;
private readonly initialContext;
private readonly freshContext;
private readonly statusInternal$;
private mutableSubscription;
constructor({ tasks, concurrent, onError, onComplete, onDone, initialContext, freshContext, collapse, }: TaskListOptions);
readonly status$: Observable<readonly TaskStatus[]>;
toPromise(): Promise<void>;
abort(): Promise<void>;
abort$(): Observable<readonly TaskStatus[]>;
setSuperOnError(onError: (error: Error) => void): void;
run(ctxIn?: TaskContext): Promise<void>;
private runTasks;
private checkAll;
}
export {};