@neo-one/server-plugin
Version:
NEO•ONE Server plugin API.
73 lines (71 loc) • 7.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@neo-one/utils");
const events_1 = require("events");
exports.AbortError = utils_1.makeErrorWithCode('ABORT', () => 'Operation Aborted.');
class AbortSignal extends events_1.EventEmitter {
constructor() {
super();
this.mutableAborted = false;
}
get aborted() {
return this.mutableAborted;
}
set aborted(value) {
this.mutableAborted = value;
}
check() {
if (this.aborted) {
throw new exports.AbortError();
}
}
toString() {
return '[object AbortSignal]';
}
get [Symbol.toStringTag]() {
return 'AbortSignal';
}
}
exports.AbortSignal = AbortSignal;
class CombinedAbortSignal extends AbortSignal {
constructor(signals) {
super();
this.signals = signals;
}
get aborted() {
return this.mutableAborted || this.signals.some((signal) => signal.aborted);
}
set aborted(value) {
this.mutableAborted = value;
this.signals.forEach((signal) => {
signal.aborted = value;
});
}
toString() {
return '[object CombinedAbortSignal]';
}
get [Symbol.toStringTag]() {
return 'CombinedAbortSignal';
}
}
exports.CombinedAbortSignal = CombinedAbortSignal;
class AbortController {
static combineSignals(signal, ...signals) {
return new CombinedAbortSignal([signal].concat(signals));
}
constructor() {
this.signal = new AbortSignal();
}
abort() {
this.signal.aborted = true;
this.signal.emit('abort');
}
toString() {
return '[object AbortController]';
}
get [Symbol.toStringTag]() {
return 'AbortController';
}
}
exports.AbortController = AbortController;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFib3J0Q29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBDQUFtRDtBQUNuRCxtQ0FBc0M7QUFFekIsUUFBQSxVQUFVLEdBQUcseUJBQWlCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFakYsTUFBYSxXQUFZLFNBQVEscUJBQVk7SUFHM0M7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxrQkFBVSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzdCLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQTdCRCxrQ0E2QkM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLFdBQVc7SUFHbEQsWUFBbUIsT0FBK0I7UUFDaEQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFFOUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sOEJBQThCLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzdCLE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBM0JELGtEQTJCQztBQUVELE1BQWEsZUFBZTtJQUVuQixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQW1CLEVBQUUsR0FBRyxPQUFzQjtRQUN6RSxPQUFPLElBQUksbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBSUQ7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLEtBQUs7UUFFVixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM3QixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQXpCRCwwQ0F5QkMiLCJmaWxlIjoibmVvLW9uZS1zZXJ2ZXItcGx1Z2luL3NyYy9BYm9ydENvbnRyb2xsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYWtlRXJyb3JXaXRoQ29kZSB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCBjb25zdCBBYm9ydEVycm9yID0gbWFrZUVycm9yV2l0aENvZGUoJ0FCT1JUJywgKCkgPT4gJ09wZXJhdGlvbiBBYm9ydGVkLicpO1xuXG5leHBvcnQgY2xhc3MgQWJvcnRTaWduYWwgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBwcm90ZWN0ZWQgbXV0YWJsZUFib3J0ZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5tdXRhYmxlQWJvcnRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBhYm9ydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11dGFibGVBYm9ydGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBhYm9ydGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5tdXRhYmxlQWJvcnRlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGNoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFib3J0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBBYm9ydEVycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAnW29iamVjdCBBYm9ydFNpZ25hbF0nO1xuICB9XG5cbiAgcHVibGljIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0Fib3J0U2lnbmFsJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tYmluZWRBYm9ydFNpZ25hbCBleHRlbmRzIEFib3J0U2lnbmFsIHtcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25hbHM6IHJlYWRvbmx5IEFib3J0U2lnbmFsW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNpZ25hbHM6IHJlYWRvbmx5IEFib3J0U2lnbmFsW10pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2lnbmFscyA9IHNpZ25hbHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFib3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubXV0YWJsZUFib3J0ZWQgfHwgdGhpcy5zaWduYWxzLnNvbWUoKHNpZ25hbCkgPT4gc2lnbmFsLmFib3J0ZWQpO1xuICB9XG5cbiAgcHVibGljIHNldCBhYm9ydGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5tdXRhYmxlQWJvcnRlZCA9IHZhbHVlO1xuICAgIHRoaXMuc2lnbmFscy5mb3JFYWNoKChzaWduYWwpID0+IHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1vYmplY3QtbXV0YXRpb25cbiAgICAgIHNpZ25hbC5hYm9ydGVkID0gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuICdbb2JqZWN0IENvbWJpbmVkQWJvcnRTaWduYWxdJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdDb21iaW5lZEFib3J0U2lnbmFsJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWJvcnRDb250cm9sbGVyIHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIHJlYWRvbmx5LWFycmF5XG4gIHB1YmxpYyBzdGF0aWMgY29tYmluZVNpZ25hbHMoc2lnbmFsOiBBYm9ydFNpZ25hbCwgLi4uc2lnbmFsczogQWJvcnRTaWduYWxbXSk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gbmV3IENvbWJpbmVkQWJvcnRTaWduYWwoW3NpZ25hbF0uY29uY2F0KHNpZ25hbHMpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBzaWduYWw6IEFib3J0U2lnbmFsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNpZ25hbCA9IG5ldyBBYm9ydFNpZ25hbCgpO1xuICB9XG5cbiAgcHVibGljIGFib3J0KCkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1vYmplY3QtbXV0YXRpb25cbiAgICB0aGlzLnNpZ25hbC5hYm9ydGVkID0gdHJ1ZTtcbiAgICB0aGlzLnNpZ25hbC5lbWl0KCdhYm9ydCcpO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAnW29iamVjdCBBYm9ydENvbnRyb2xsZXJdJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdBYm9ydENvbnRyb2xsZXInO1xuICB9XG59XG4iXX0=