24 lines
563 B
TypeScript
24 lines
563 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()
|
|
}
|
|
}
|
|
})
|
|
}
|
|
} |