abort-controller.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __hasOwnProp = Object.prototype.hasOwnProperty;
  6. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  7. var __export = (target, all) => {
  8. for (var name in all)
  9. __defProp(target, name, { get: all[name], enumerable: true });
  10. };
  11. var __copyProps = (to, from, except, desc) => {
  12. if (from && typeof from === "object" || typeof from === "function") {
  13. for (let key of __getOwnPropNames(from))
  14. if (!__hasOwnProp.call(to, key) && key !== except)
  15. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  16. }
  17. return to;
  18. };
  19. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  20. // src/primitives/abort-controller.js
  21. var abort_controller_exports = {};
  22. __export(abort_controller_exports, {
  23. AbortController: () => AbortController,
  24. AbortSignal: () => AbortSignal,
  25. DOMException: () => DOMException
  26. });
  27. module.exports = __toCommonJS(abort_controller_exports);
  28. var import_events = require("./events");
  29. var kSignal = Symbol("kSignal");
  30. var kAborted = Symbol("kAborted");
  31. var kReason = Symbol("kReason");
  32. var kName = Symbol("kName");
  33. var kOnabort = Symbol("kOnabort");
  34. var DOMException = class extends Error {
  35. constructor(message, name) {
  36. super(message);
  37. this[kName] = name;
  38. }
  39. get name() {
  40. return this[kName];
  41. }
  42. };
  43. __name(DOMException, "DOMException");
  44. function createAbortSignal() {
  45. const signal = new import_events.EventTarget();
  46. Object.setPrototypeOf(signal, AbortSignal.prototype);
  47. signal[kAborted] = false;
  48. signal[kReason] = void 0;
  49. signal[kOnabort] = void 0;
  50. return signal;
  51. }
  52. __name(createAbortSignal, "createAbortSignal");
  53. function abortSignalAbort(signal, reason) {
  54. if (typeof reason === "undefined") {
  55. reason = new DOMException("The operation was aborted.", "AbortError");
  56. }
  57. if (signal.aborted) {
  58. return;
  59. }
  60. signal[kReason] = reason;
  61. signal[kAborted] = true;
  62. signal.dispatchEvent(new import_events.Event("abort"));
  63. }
  64. __name(abortSignalAbort, "abortSignalAbort");
  65. var AbortController = class {
  66. constructor() {
  67. this[kSignal] = createAbortSignal();
  68. }
  69. get signal() {
  70. return this[kSignal];
  71. }
  72. abort(reason) {
  73. abortSignalAbort(this.signal, reason);
  74. }
  75. };
  76. __name(AbortController, "AbortController");
  77. var AbortSignal = class extends import_events.EventTarget {
  78. constructor() {
  79. throw new TypeError("Illegal constructor.");
  80. }
  81. get aborted() {
  82. return this[kAborted];
  83. }
  84. get reason() {
  85. return this[kReason];
  86. }
  87. get onabort() {
  88. return this[kOnabort];
  89. }
  90. set onabort(value) {
  91. if (this[kOnabort]) {
  92. this.removeEventListener("abort", this[kOnabort]);
  93. }
  94. if (value) {
  95. this[kOnabort] = value;
  96. this.addEventListener("abort", this[kOnabort]);
  97. }
  98. }
  99. throwIfAborted() {
  100. if (this[kAborted]) {
  101. throw this[kReason];
  102. }
  103. }
  104. static abort(reason) {
  105. const signal = createAbortSignal();
  106. abortSignalAbort(signal, reason);
  107. return signal;
  108. }
  109. static timeout(milliseconds) {
  110. const signal = createAbortSignal();
  111. setTimeout(() => {
  112. abortSignalAbort(
  113. signal,
  114. new DOMException("The operation timed out.", "TimeoutError")
  115. );
  116. }, milliseconds);
  117. return signal;
  118. }
  119. };
  120. __name(AbortSignal, "AbortSignal");
  121. // Annotate the CommonJS export names for ESM import in node:
  122. 0 && (module.exports = {
  123. AbortController,
  124. AbortSignal,
  125. DOMException
  126. });