Comparing version 1.2.0 to 1.2.1
@@ -14,5 +14,4 @@ import { Listr } from '../listr'; | ||
} | ||
export interface ManagerOptions<Ctx = ListrContext> { | ||
export interface ManagerOptions<Ctx = ListrContext> extends ListrOptions<Ctx> { | ||
showRunTime?: boolean; | ||
listr: ListrOptions<Ctx>; | ||
} |
@@ -6,13 +6,11 @@ import { ListrContext, ListrOptions, ListrTask } from './interfaces/listr.interface'; | ||
private options?; | ||
private listrOptions?; | ||
private tasks; | ||
constructor(options?: ManagerOptions, listrOptions?: ListrOptions<InjectCtx>); | ||
private showRunTime; | ||
constructor(options?: ManagerOptions); | ||
add<Ctx = InjectCtx>(tasks: ListrTask<Ctx>[]): void; | ||
injectOptions<Ctx = InjectCtx>(options?: ManagerOptions, ListrOptions?: ListrOptions<Ctx>): void; | ||
runAll<Ctx>(options?: ListrOptions<Ctx> & { | ||
showRunTime?: boolean; | ||
}): Promise<Ctx>; | ||
injectOptions<Ctx = InjectCtx>(options?: ManagerOptions<Ctx>): void; | ||
runAll<Ctx>(options?: ManagerOptions): Promise<Ctx>; | ||
newListr<Ctx = InjectCtx>(tasks: ListrTask<Ctx>[], options?: ListrOptions<Ctx>): Listr<Ctx>; | ||
run<Ctx = InjectCtx>(tasks: ListrTask<Ctx>[], options?: ListrOptions<Ctx>): Promise<Ctx>; | ||
run<Ctx = InjectCtx>(tasks: ListrTask<Ctx>[], options?: ManagerOptions): Promise<Ctx>; | ||
getRuntime(pipetime: number): string; | ||
} |
@@ -5,6 +5,6 @@ "use strict"; | ||
class Manager { | ||
constructor(options, listrOptions) { | ||
constructor(options) { | ||
this.options = options; | ||
this.listrOptions = listrOptions; | ||
this.tasks = []; | ||
this.injectOptions(options); | ||
} | ||
@@ -14,32 +14,34 @@ add(tasks) { | ||
} | ||
injectOptions(options, ListrOptions) { | ||
if (options) { | ||
this.options = options; | ||
} | ||
if (this.listrOptions) { | ||
this.listrOptions = ListrOptions; | ||
} | ||
injectOptions(options) { | ||
options = Object.assign({ showRunTime: true }, options); | ||
const { showRunTime, ...listrOptions } = options; | ||
this.showRunTime = showRunTime; | ||
this.options = listrOptions; | ||
} | ||
async runAll(options) { | ||
const ctx = await this.run(this.tasks, options); | ||
this.tasks = []; | ||
return ctx; | ||
} | ||
newListr(tasks, options) { | ||
return new listr_1.Listr(tasks, options); | ||
} | ||
run(tasks, options) { | ||
const pipetime = Date.now(); | ||
options = Object.assign({ showRuntime: true }, options); | ||
options = Object.assign({ showRunTime: this.showRunTime }, options); | ||
const { showRunTime, ...listrOptions } = options; | ||
const allOptions = Object.assign(this.options || {}, listrOptions); | ||
return new listr_1.Listr([{ | ||
enabled: () => this.tasks.length > 0, | ||
return this.newListr([ | ||
{ | ||
enabled: () => tasks.length > 0, | ||
task: () => { | ||
return new listr_1.Listr(this.tasks, listrOptions); | ||
return new listr_1.Listr(tasks, listrOptions); | ||
} | ||
}, | ||
{ | ||
enabled: () => showRunTime && (this.tasks.length > 0), | ||
task: (ctx, task) => { task.title = `Parallel tasks are finished in ${this.getRuntime(pipetime)}.`; } | ||
}], allOptions).run(); | ||
enabled: () => showRunTime && (tasks.length > 0), | ||
task: (ctx, task) => { task.title = `Tasks are finished in ${this.getRuntime(pipetime)}.`; } | ||
} | ||
], allOptions).run(); | ||
} | ||
newListr(tasks, options) { | ||
return new listr_1.Listr(tasks, options); | ||
} | ||
run(tasks, options) { | ||
return this.newListr(tasks, options).run(); | ||
} | ||
getRuntime(pipetime) { | ||
@@ -46,0 +48,0 @@ return `${Math.round(Date.now() - pipetime) / 1000}s`; |
{ | ||
"name": "listr2", | ||
"version": "1.2.0", | ||
"version": "1.2.1", | ||
"description": "Terminal task list reborn!", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
73429
1097