22 lines
560 B
TypeScript
22 lines
560 B
TypeScript
import * as plugins from './taskbuffer.plugins';
|
|
|
|
import { Task, ITaskFunction } from './taskbuffer.classes.task';
|
|
|
|
/**
|
|
* TaskOnce is run exactly once, no matter how often it is triggered
|
|
*/
|
|
export class TaskOnce extends Task {
|
|
hasTriggered: boolean = false;
|
|
constructor(optionsArg: { name?: string; taskFunction: ITaskFunction }) {
|
|
super({
|
|
name: optionsArg.name,
|
|
taskFunction: async () => {
|
|
if (!this.hasTriggered) {
|
|
this.hasTriggered = true;
|
|
await optionsArg.taskFunction();
|
|
}
|
|
},
|
|
});
|
|
}
|
|
}
|