Blame Raw
· · · 34 lines (1.0 KB)
0 contributors
1import { AbstractEventTarget } from './AbstractEventTarget.js';
2
3export class SlashCommandAbortController extends AbstractEventTarget {
4 /**@type {SlashCommandAbortSignal}*/ signal;
5
6
7 constructor() {
8 super();
9 this.signal = new SlashCommandAbortSignal();
10 }
11 abort(reason = 'No reason.', isQuiet = false) {
12 this.signal.isQuiet = isQuiet;
13 this.signal.aborted = true;
14 this.signal.reason = reason;
15 this.dispatchEvent(new Event('abort'));
16 }
17 pause(reason = 'No reason.') {
18 this.signal.paused = true;
19 this.signal.reason = reason;
20 this.dispatchEvent(new Event('pause'));
21 }
22 continue(reason = 'No reason.') {
23 this.signal.paused = false;
24 this.signal.reason = reason;
25 this.dispatchEvent(new Event('continue'));
26 }
27}
28
29export class SlashCommandAbortSignal {
30 /**@type {boolean}*/ isQuiet = false;
31 /**@type {boolean}*/ paused = false;
32 /**@type {boolean}*/ aborted = false;
33 /**@type {string}*/ reason = null;
34}