mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
24 lines
432 B
TypeScript
24 lines
432 B
TypeScript
export type TaskRunner<T> = (options: T) => Promise<void>;
|
|
|
|
export class Task<TOptions> {
|
|
name: string;
|
|
runner: (options: TOptions) => Promise<void>;
|
|
options: TOptions;
|
|
|
|
setName = name => {
|
|
this.name = name;
|
|
};
|
|
|
|
setRunner = (runner: TaskRunner<TOptions>) => {
|
|
this.runner = runner;
|
|
};
|
|
|
|
setOptions = options => {
|
|
this.options = options;
|
|
};
|
|
|
|
exec = () => {
|
|
return this.runner(this.options);
|
|
};
|
|
}
|