UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

49 lines (48 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkAbortSignal = checkAbortSignal; exports.abortBreakPoint = abortBreakPoint; exports.makeAbortError = makeAbortError; exports.observeAbortSignal = observeAbortSignal; exports.isAbortException = isAbortException; const rxjs_1 = require("rxjs"); class AbortError extends Error { } function checkAbortSignal(signal) { if (!signal) { return; } if (!(signal instanceof AbortSignal)) { throw new TypeError('must pass an AbortSignal'); } if (signal.aborted) { throw makeAbortError(); } } function timeout(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function abortBreakPoint(signal) { await timeout(1); checkAbortSignal(signal); } function makeAbortError() { if (typeof DOMException !== 'undefined') { return new DOMException('aborted', 'AbortError'); } const e = new AbortError('aborted'); e.code = 'ERR_ABORTED'; return e; } function observeAbortSignal(signal) { if (!signal) { return new rxjs_1.Observable(); } return (0, rxjs_1.fromEvent)(signal, 'abort'); } function isAbortException(exception) { return (exception instanceof Error && (exception.name === 'AbortError' || exception.code === 'ERR_ABORTED' || !!/\b(aborted|aborterror)\b/i.test(exception.message))); }