UNPKG

@neo-one/server-plugin

Version:

NEO•ONE Server plugin API.

73 lines (71 loc) 7.02 kB
"use strict"; 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=