1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const utils_1 = require("@neo-one/utils");
|
4 | const events_1 = require("events");
|
5 | exports.AbortError = utils_1.makeErrorWithCode('ABORT', () => 'Operation Aborted.');
|
6 | class 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 | }
|
29 | exports.AbortSignal = AbortSignal;
|
30 | class 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 | }
|
52 | exports.CombinedAbortSignal = CombinedAbortSignal;
|
53 | class 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 | }
|
73 | exports.AbortController = AbortController;
|
74 |
|
75 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFib3J0Q29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBDQUFtRDtBQUNuRCxtQ0FBc0M7QUFFekIsUUFBQSxVQUFVLEdBQUcseUJBQWlCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFakYsTUFBYSxXQUFZLFNBQVEscUJBQVk7SUFHM0M7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxrQkFBVSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzdCLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQTdCRCxrQ0E2QkM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLFdBQVc7SUFHbEQsWUFBbUIsT0FBbUM7UUFDcEQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsOENBQThDO1lBQzlDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLDhCQUE4QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3QixPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQTNCRCxrREEyQkM7QUFFRCxNQUFhLGVBQWU7SUFDMUIsMENBQTBDO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBbUIsRUFBRSxHQUFHLE9BQXNCO1FBQ3pFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFJRDtRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sS0FBSztRQUNWLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3QixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQXpCRCwwQ0F5QkMiLCJmaWxlIjoibmVvLW9uZS1zZXJ2ZXItcGx1Z2luL3NyYy9BYm9ydENvbnRyb2xsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYWtlRXJyb3JXaXRoQ29kZSB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCBjb25zdCBBYm9ydEVycm9yID0gbWFrZUVycm9yV2l0aENvZGUoJ0FCT1JUJywgKCkgPT4gJ09wZXJhdGlvbiBBYm9ydGVkLicpO1xuXG5leHBvcnQgY2xhc3MgQWJvcnRTaWduYWwgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBwcm90ZWN0ZWQgbXV0YWJsZUFib3J0ZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5tdXRhYmxlQWJvcnRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBhYm9ydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11dGFibGVBYm9ydGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBhYm9ydGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5tdXRhYmxlQWJvcnRlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGNoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFib3J0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBBYm9ydEVycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAnW29iamVjdCBBYm9ydFNpZ25hbF0nO1xuICB9XG5cbiAgcHVibGljIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0Fib3J0U2lnbmFsJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tYmluZWRBYm9ydFNpZ25hbCBleHRlbmRzIEFib3J0U2lnbmFsIHtcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25hbHM6IFJlYWRvbmx5QXJyYXk8QWJvcnRTaWduYWw+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzaWduYWxzOiBSZWFkb25seUFycmF5PEFib3J0U2lnbmFsPikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zaWduYWxzID0gc2lnbmFscztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWJvcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhYmxlQWJvcnRlZCB8fCB0aGlzLnNpZ25hbHMuc29tZSgoc2lnbmFsKSA9PiBzaWduYWwuYWJvcnRlZCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGFib3J0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm11dGFibGVBYm9ydGVkID0gdmFsdWU7XG4gICAgdGhpcy5zaWduYWxzLmZvckVhY2goKHNpZ25hbCkgPT4ge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLW9iamVjdC1tdXRhdGlvblxuICAgICAgc2lnbmFsLmFib3J0ZWQgPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gJ1tvYmplY3QgQ29tYmluZWRBYm9ydFNpZ25hbF0nO1xuICB9XG5cbiAgcHVibGljIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0NvbWJpbmVkQWJvcnRTaWduYWwnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBYm9ydENvbnRyb2xsZXIge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgcmVhZG9ubHktYXJyYXlcbiAgcHVibGljIHN0YXRpYyBjb21iaW5lU2lnbmFscyhzaWduYWw6IEFib3J0U2lnbmFsLCAuLi5zaWduYWxzOiBBYm9ydFNpZ25hbFtdKTogQWJvcnRTaWduYWwge1xuICAgIHJldHVybiBuZXcgQ29tYmluZWRBYm9ydFNpZ25hbChbc2lnbmFsXS5jb25jYXQoc2lnbmFscykpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2lnbmFsID0gbmV3IEFib3J0U2lnbmFsKCk7XG4gIH1cblxuICBwdWJsaWMgYWJvcnQoKSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLW9iamVjdC1tdXRhdGlvblxuICAgIHRoaXMuc2lnbmFsLmFib3J0ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2lnbmFsLmVtaXQoJ2Fib3J0Jyk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuICdbb2JqZWN0IEFib3J0Q29udHJvbGxlcl0nO1xuICB9XG5cbiAgcHVibGljIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0Fib3J0Q29udHJvbGxlcic7XG4gIH1cbn1cbiJdfQ==
|