@node-elion/utils
Version:
Super scalable enterprise Node.js server library
27 lines • 950 B
JavaScript
;
/* eslint-disable max-classes-per-file */
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbortPromise = void 0;
class AbortPromise {
constructor(executor, abortController) {
const abort = abortController || new AbortController();
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-shadow
class AbortPromise extends Promise {
constructor(func) {
super((resolve, reject) => func(resolve, reject, abort.signal));
}
// eslint-disable-next-line class-methods-use-this
abort() {
abort.abort();
}
// eslint-disable-next-line class-methods-use-this
get abortController() {
return abort;
}
}
return new AbortPromise(executor);
}
}
exports.AbortPromise = AbortPromise;
//# sourceMappingURL=abortPromise.js.map