@lylajs/core
Version:
36 lines (35 loc) • 953 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LylaAbortSignal = exports.LylaAbortController = void 0;
class LylaAbortController {
constructor() {
this.signal = new LylaAbortSignal();
}
abort(reason) {
if (this.signal.aborted)
return;
this.signal.__abort(reason);
this.signal.__listeners;
}
}
exports.LylaAbortController = LylaAbortController;
class LylaAbortSignal {
constructor() {
this.aborted = false;
this.__listeners = new Set();
}
addEventListener(type, listener) {
this.__listeners.add(listener);
}
removeEventListener(type, listener) {
this.__listeners.delete(listener);
}
__abort(reason) {
this.aborted = true;
this.reason = reason;
this.__listeners.forEach((listener) => {
listener();
});
}
}
exports.LylaAbortSignal = LylaAbortSignal;