| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | /** * @author Toru Nagashima <https://github.com/mysticatea> * See LICENSE file in root directory for full license. */'use strict';Object.defineProperty(exports, '__esModule', { value: true });var eventTargetShim = require('event-target-shim');/** * The signal class. * @see https://dom.spec.whatwg.org/#abortsignal */class AbortSignal extends eventTargetShim.EventTarget {    /**     * AbortSignal cannot be constructed directly.     */    constructor() {        super();        throw new TypeError("AbortSignal cannot be constructed directly");    }    /**     * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.     */    get aborted() {        const aborted = abortedFlags.get(this);        if (typeof aborted !== "boolean") {            throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? "null" : typeof this}`);        }        return aborted;    }}eventTargetShim.defineEventAttribute(AbortSignal.prototype, "abort");/** * Create an AbortSignal object. */function createAbortSignal() {    const signal = Object.create(AbortSignal.prototype);    eventTargetShim.EventTarget.call(signal);    abortedFlags.set(signal, false);    return signal;}/** * Abort a given signal. */function abortSignal(signal) {    if (abortedFlags.get(signal) !== false) {        return;    }    abortedFlags.set(signal, true);    signal.dispatchEvent({ type: "abort" });}/** * Aborted flag for each instances. */const abortedFlags = new WeakMap();// Properties should be enumerable.Object.defineProperties(AbortSignal.prototype, {    aborted: { enumerable: true },});// `toString()` should return `"[object AbortSignal]"`if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") {    Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {        configurable: true,        value: "AbortSignal",    });}/** * The AbortController. * @see https://dom.spec.whatwg.org/#abortcontroller */class AbortController {    /**     * Initialize this controller.     */    constructor() {        signals.set(this, createAbortSignal());    }    /**     * Returns the `AbortSignal` object associated with this object.     */    get signal() {        return getSignal(this);    }    /**     * Abort and signal to any observers that the associated activity is to be aborted.     */    abort() {        abortSignal(getSignal(this));    }}/** * Associated signals. */const signals = new WeakMap();/** * Get the associated signal of a given controller. */function getSignal(controller) {    const signal = signals.get(controller);    if (signal == null) {        throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? "null" : typeof controller}`);    }    return signal;}// Properties should be enumerable.Object.defineProperties(AbortController.prototype, {    signal: { enumerable: true },    abort: { enumerable: true },});if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") {    Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {        configurable: true,        value: "AbortController",    });}exports.AbortController = AbortController;exports.AbortSignal = AbortSignal;exports.default = AbortController;module.exports = AbortControllermodule.exports.AbortController = module.exports["default"] = AbortControllermodule.exports.AbortSignal = AbortSignal//# sourceMappingURL=abort-controller.js.map
 |