UNPKG

@absmartly/javascript-sdk

Version:

A/B Smartly Javascript SDK

79 lines (78 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbortController = exports.AbortSignal = void 0; class AbortSignal { constructor() { this.aborted = false; this._events = {}; } addEventListener(type, listener) { let listeners = this._events[type]; if (!listeners) { listeners = []; this._events[type] = listeners; } listeners.push(listener); } removeEventListener(type, listener) { const listeners = this._events[type]; if (listeners) { const index = listeners.findIndex(x => x === listener); if (index !== -1) { listeners.splice(index, 1); if (listeners.length === 0) { delete this._events[type]; } } } } dispatchEvent(evt) { this[`on${evt.type}`] && this[`on${evt.type}`](evt); const listeners = this._events[evt.type]; if (listeners) { for (const listener of listeners) { listener.call(null, evt); } } } toString() { return "[object AbortSignal]"; } } exports.AbortSignal = AbortSignal; class AbortController { constructor() { this.signal = new AbortSignal(); } abort() { let evt; try { evt = new Event("abort"); } catch (e) { evt = { type: "abort", bubbles: false, cancelable: false }; } this.signal.aborted = true; this.signal.dispatchEvent(evt); } toString() { return "[object AbortController]"; } } exports.AbortController = AbortController; if (typeof Symbol !== "undefined" && Symbol.toStringTag !== undefined) { Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, { configurable: true, value: "AbortSignal" }); Object.defineProperty(AbortController.prototype, Symbol.toStringTag, { configurable: true, value: "AbortController" }); } exports.default = AbortController;