UNPKG

7.24 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const utils_1 = require("@neo-one/utils");
4const events_1 = require("events");
5exports.AbortError = utils_1.makeErrorWithCode('ABORT', () => 'Operation Aborted.');
6class AbortSignal extends events_1.EventEmitter {
7 constructor() {
8 super();
9 this.mutableAborted = false;
10 }
11 get aborted() {
12 return this.mutableAborted;
13 }
14 set aborted(value) {
15 this.mutableAborted = value;
16 }
17 check() {
18 if (this.aborted) {
19 throw new exports.AbortError();
20 }
21 }
22 toString() {
23 return '[object AbortSignal]';
24 }
25 get [Symbol.toStringTag]() {
26 return 'AbortSignal';
27 }
28}
29exports.AbortSignal = AbortSignal;
30class CombinedAbortSignal extends AbortSignal {
31 constructor(signals) {
32 super();
33 this.signals = signals;
34 }
35 get aborted() {
36 return this.mutableAborted || this.signals.some((signal) => signal.aborted);
37 }
38 set aborted(value) {
39 this.mutableAborted = value;
40 this.signals.forEach((signal) => {
41 // tslint:disable-next-line no-object-mutation
42 signal.aborted = value;
43 });
44 }
45 toString() {
46 return '[object CombinedAbortSignal]';
47 }
48 get [Symbol.toStringTag]() {
49 return 'CombinedAbortSignal';
50 }
51}
52exports.CombinedAbortSignal = CombinedAbortSignal;
53class AbortController {
54 // tslint:disable-next-line readonly-array
55 static combineSignals(signal, ...signals) {
56 return new CombinedAbortSignal([signal].concat(signals));
57 }
58 constructor() {
59 this.signal = new AbortSignal();
60 }
61 abort() {
62 // tslint:disable-next-line no-object-mutation
63 this.signal.aborted = true;
64 this.signal.emit('abort');
65 }
66 toString() {
67 return '[object AbortController]';
68 }
69 get [Symbol.toStringTag]() {
70 return 'AbortController';
71 }
72}
73exports.AbortController = AbortController;
74
75//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFib3J0Q29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBDQUFtRDtBQUNuRCxtQ0FBc0M7QUFFekIsUUFBQSxVQUFVLEdBQUcseUJBQWlCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFakYsTUFBYSxXQUFZLFNBQVEscUJBQVk7SUFHM0M7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxrQkFBVSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzdCLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQTdCRCxrQ0E2QkM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLFdBQVc7SUFHbEQsWUFBbUIsT0FBbUM7UUFDcEQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsOENBQThDO1lBQzlDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLDhCQUE4QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3QixPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQTNCRCxrREEyQkM7QUFFRCxNQUFhLGVBQWU7SUFDMUIsMENBQTBDO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBbUIsRUFBRSxHQUFHLE9BQXNCO1FBQ3pFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFJRDtRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sS0FBSztRQUNWLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3QixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQXpCRCwwQ0F5QkMiLCJmaWxlIjoibmVvLW9uZS1zZXJ2ZXItcGx1Z2luL3NyYy9BYm9ydENvbnRyb2xsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYWtlRXJyb3JXaXRoQ29kZSB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCBjb25zdCBBYm9ydEVycm9yID0gbWFrZUVycm9yV2l0aENvZGUoJ0FCT1JUJywgKCkgPT4gJ09wZXJhdGlvbiBBYm9ydGVkLicpO1xuXG5leHBvcnQgY2xhc3MgQWJvcnRTaWduYWwgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBwcm90ZWN0ZWQgbXV0YWJsZUFib3J0ZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5tdXRhYmxlQWJvcnRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBhYm9ydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11dGFibGVBYm9ydGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBhYm9ydGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5tdXRhYmxlQWJvcnRlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGNoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFib3J0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBBYm9ydEVycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAnW29iamVjdCBBYm9ydFNpZ25hbF0nO1xuICB9XG5cbiAgcHVibGljIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0Fib3J0U2lnbmFsJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tYmluZWRBYm9ydFNpZ25hbCBleHRlbmRzIEFib3J0U2lnbmFsIHtcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25hbHM6IFJlYWRvbmx5QXJyYXk8QWJvcnRTaWduYWw+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzaWduYWxzOiBSZWFkb25seUFycmF5PEFib3J0U2lnbmFsPikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zaWduYWxzID0gc2lnbmFscztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWJvcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhYmxlQWJvcnRlZCB8fCB0aGlzLnNpZ25hbHMuc29tZSgoc2lnbmFsKSA9PiBzaWduYWwuYWJvcnRlZCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGFib3J0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm11dGFibGVBYm9ydGVkID0gdmFsdWU7XG4gICAgdGhpcy5zaWduYWxzLmZvckVhY2goKHNpZ25hbCkgPT4ge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLW9iamVjdC1tdXRhdGlvblxuICAgICAgc2lnbmFsLmFib3J0ZWQgPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gJ1tvYmplY3QgQ29tYmluZWRBYm9ydFNpZ25hbF0nO1xuICB9XG5cbiAgcHVibGljIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0NvbWJpbmVkQWJvcnRTaWduYWwnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBYm9ydENvbnRyb2xsZXIge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgcmVhZG9ubHktYXJyYXlcbiAgcHVibGljIHN0YXRpYyBjb21iaW5lU2lnbmFscyhzaWduYWw6IEFib3J0U2lnbmFsLCAuLi5zaWduYWxzOiBBYm9ydFNpZ25hbFtdKTogQWJvcnRTaWduYWwge1xuICAgIHJldHVybiBuZXcgQ29tYmluZWRBYm9ydFNpZ25hbChbc2lnbmFsXS5jb25jYXQoc2lnbmFscykpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2lnbmFsID0gbmV3IEFib3J0U2lnbmFsKCk7XG4gIH1cblxuICBwdWJsaWMgYWJvcnQoKSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLW9iamVjdC1tdXRhdGlvblxuICAgIHRoaXMuc2lnbmFsLmFib3J0ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2lnbmFsLmVtaXQoJ2Fib3J0Jyk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuICdbb2JqZWN0IEFib3J0Q29udHJvbGxlcl0nO1xuICB9XG5cbiAgcHVibGljIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0Fib3J0Q29udHJvbGxlcic7XG4gIH1cbn1cbiJdfQ==