@aws-sdk/xhr-http-handler 3.709.0 → 3.714.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist-cjs/index.js CHANGED
@@ -176,19 +176,28 @@ var _XhrHttpHandler = class _XhrHttpHandler extends import_events.EventEmitter {
176
176
  }),
177
177
  requestTimeout(requestTimeoutInMs)
178
178
  ];
179
+ let removeSignalEventListener = /* @__PURE__ */ __name(() => {
180
+ }, "removeSignalEventListener");
179
181
  if (abortSignal) {
180
182
  raceOfPromises.push(
181
183
  new Promise((resolve, reject) => {
182
- abortSignal.onabort = () => {
184
+ const onAbort = /* @__PURE__ */ __name(() => {
183
185
  xhr.abort();
184
186
  const abortError = new Error("Request aborted");
185
187
  abortError.name = "AbortError";
186
188
  reject(abortError);
187
- };
189
+ }, "onAbort");
190
+ if (typeof abortSignal.addEventListener === "function") {
191
+ const signal = abortSignal;
192
+ signal.addEventListener("abort", onAbort, { once: true });
193
+ removeSignalEventListener = /* @__PURE__ */ __name(() => signal.removeEventListener("abort", onAbort), "removeSignalEventListener");
194
+ } else {
195
+ abortSignal.onabort = onAbort;
196
+ }
188
197
  })
189
198
  );
190
199
  }
191
- return Promise.race(raceOfPromises);
200
+ return Promise.race(raceOfPromises).finally(removeSignalEventListener);
192
201
  }
193
202
  /**
194
203
  * Converts XHR response headers to a map.
@@ -133,17 +133,26 @@ export class XhrHttpHandler extends EventEmitter {
133
133
  }),
134
134
  requestTimeout(requestTimeoutInMs),
135
135
  ];
136
+ let removeSignalEventListener = () => { };
136
137
  if (abortSignal) {
137
138
  raceOfPromises.push(new Promise((resolve, reject) => {
138
- abortSignal.onabort = () => {
139
+ const onAbort = () => {
139
140
  xhr.abort();
140
141
  const abortError = new Error("Request aborted");
141
142
  abortError.name = "AbortError";
142
143
  reject(abortError);
143
144
  };
145
+ if (typeof abortSignal.addEventListener === "function") {
146
+ const signal = abortSignal;
147
+ signal.addEventListener("abort", onAbort, { once: true });
148
+ removeSignalEventListener = () => signal.removeEventListener("abort", onAbort);
149
+ }
150
+ else {
151
+ abortSignal.onabort = onAbort;
152
+ }
144
153
  }));
145
154
  }
146
- return Promise.race(raceOfPromises);
155
+ return Promise.race(raceOfPromises).finally(removeSignalEventListener);
147
156
  }
148
157
  responseHeaders(xhrHeaders) {
149
158
  if (!xhrHeaders) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/xhr-http-handler",
3
- "version": "3.709.0",
3
+ "version": "3.714.0",
4
4
  "description": "Provides a way to make requests using XMLHttpRequest",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
@@ -20,7 +20,7 @@
20
20
  "module": "./dist-es/index.js",
21
21
  "types": "./dist-types/index.d.ts",
22
22
  "dependencies": {
23
- "@aws-sdk/types": "3.709.0",
23
+ "@aws-sdk/types": "3.714.0",
24
24
  "@smithy/protocol-http": "^4.1.8",
25
25
  "@smithy/querystring-builder": "^3.0.11",
26
26
  "@smithy/types": "^3.7.2",