Spaces:
Running
Running
import { AbstractEventTarget } from './AbstractEventTarget.js'; | |
export class SlashCommandAbortController extends AbstractEventTarget { | |
/**@type {SlashCommandAbortSignal}*/ signal; | |
constructor() { | |
super(); | |
this.signal = new SlashCommandAbortSignal(); | |
} | |
abort(reason = 'No reason.', isQuiet = false) { | |
this.signal.isQuiet = isQuiet; | |
this.signal.aborted = true; | |
this.signal.reason = reason; | |
this.dispatchEvent(new Event('abort')); | |
} | |
pause(reason = 'No reason.') { | |
this.signal.paused = true; | |
this.signal.reason = reason; | |
this.dispatchEvent(new Event('pause')); | |
} | |
continue(reason = 'No reason.') { | |
this.signal.paused = false; | |
this.signal.reason = reason; | |
this.dispatchEvent(new Event('continue')); | |
} | |
} | |
export class SlashCommandAbortSignal { | |
/**@type {boolean}*/ isQuiet = false; | |
/**@type {boolean}*/ paused = false; | |
/**@type {boolean}*/ aborted = false; | |
/**@type {string}*/ reason = null; | |
} | |