UNPKG

declarations

Version:

[![npm version](https://badge.fury.io/js/declarations.svg)](https://www.npmjs.com/package/declarations)

118 lines (108 loc) 4.01 kB
// Type definitions for undertaker 0.12.0 // Project: https://github.com/phated/undertaker // Definitions by: Qubo <https://github.com/tkqubo> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare module "undertaker" { export interface UndertakerStatic { new(registry?: Registry): Undertaker; } export interface Undertaker { task: TaskMethod; /** * Takes a variable amount of strings (taskName) and/or functions (fn) * and returns a function of the composed tasks or functions. * Any taskNames are retrieved from the registry using the get method. * * When the returned function is executed, the tasks or functions will be executed in series, * each waiting for the prior to finish. If an error occurs, execution will stop. * @param task */ series(...tasks: (string|Task)[]): Task; /** * Takes a variable amount of strings (taskName) and/or functions (fn) * and returns a function of the composed tasks or functions. * Any taskNames are retrieved from the registry using the get method. * * When the returned function is executed, the tasks or functions will be executed in parallel, * all being executed at the same time. If an error occurs, all execution will complete. * @param tasks */ parallel(...tasks: (string|Task)[]): Task; /** * Returns the current registry object. */ registry(): Registry; /** * The tasks from the current registry will be transferred to it * and the current registry will be replaced with the new registry. * @param registry */ registry(registry: Registry): void; /** * Optionally takes an object (options) and returns an object representing the tree of registered tasks. * @param options */ tree(options?: { deep?: boolean }): Node[]|string[]; /** * Takes a string or function (task) and returns a timestamp of the last time the task was run successfully. * The time will be the time the task started. Returns undefined if the task has not been run. * @param task * @param timeResolution */ lastRun(task: string, timeResolution?: number): number; } export interface Task { (cb?: Function): any; } export interface TaskMethod { /** * Returns the registered function. * @param taskName */ (taskName: string): Task; /** * Register the task by the taskName. * @param taskName * @param fn */ (taskName: string, fn: Task): void; /** * Register the task by the name property of the function. * @param fn */ (fn: Task): void; /** * Register the task by the displayName property of the function. * @param fn */ (fn: Task & { displayName: string }): void; } export interface Registry { /** * receives the undertaker instance to set pre-defined tasks using the task(taskName, fn) method. * @param taker */ init(taker: Undertaker): void; /** * returns the task with that name or undefined if no task is registered with that name. * @param taskName */ get(taskName: string): Task; /** * add task to the registry. If set modifies a task, it should return the new task. * @param taskName * @param fn */ set(taskName: string, fn: Task): void; /** * returns an object listing all tasks in the registry. */ tasks(): { [taskName: string]: Task }; } export interface Node { label: string; type: string; nodes: Node[]; } export default UndertakerStatic; }