migrate
This commit is contained in:
34
public/scripts/slash-commands/SlashCommandAbortController.js
Normal file
34
public/scripts/slash-commands/SlashCommandAbortController.js
Normal file
@@ -0,0 +1,34 @@
|
||||
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;
|
||||
}
|
Reference in New Issue
Block a user