Build server prototype (integration with GitHub / NuGet / etc)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
import { Settings } from "./settings-types";
|
|
|
|
|
|
|
|
export type TaskProcessorCallback = (err: string) => void;
|
|
|
|
|
|
|
|
export interface ITaskProcessorCore {
|
|
|
|
readonly onError: (message: string | Error, prefix?: string) => void;
|
|
|
|
readonly onWarn: (message: string, prefix?: string) => void;
|
|
|
|
readonly onInfo: (message: string, prefix?: string) => void;
|
|
|
|
readonly settings: Settings;
|
|
|
|
readonly context?: any;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ITaskProcessor extends ITaskProcessorCore {
|
|
|
|
readonly process: () => void;
|
|
|
|
readonly processTask: (task: ITaskInfo, innerCallback: TaskProcessorCallback) => void;
|
|
|
|
readonly done: () => void;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ITaskInfo {
|
|
|
|
name?: string;
|
|
|
|
type: string;
|
|
|
|
params: any;
|
|
|
|
}
|
|
|
|
|
|
|
|
export type Task = (params: any, processor: ITaskProcessor) => () => void;
|
|
|
|
|
|
|
|
export interface ITasks {
|
|
|
|
readonly [taskName: string]: Task;
|
|
|
|
}
|