@graphql-tools/executor-http 1.2.2 → 1.2.3-alpha-eeb5a1d4d585f1315b38da3d023b25283b3ac051
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/CHANGELOG.md +6 -0
- package/dist/index.cjs +6 -23
- package/dist/index.js +6 -23
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @graphql-tools/executor-http
|
|
2
2
|
|
|
3
|
+
## 1.2.3-alpha-eeb5a1d4d585f1315b38da3d023b25283b3ac051
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#376](https://github.com/graphql-hive/gateway/pull/376) [`eeb5a1d`](https://github.com/graphql-hive/gateway/commit/eeb5a1d4d585f1315b38da3d023b25283b3ac051) Thanks [@ardatan](https://github.com/ardatan)! - No need to handle event listeners inside HTTP Executor thanks to the improvements with `@graphql-tools/utils`'s `registerAbortSignalListener` to avoid Node.js warnings when multiple event listeners registered to an `AbortSignal`
|
|
8
|
+
|
|
3
9
|
## 1.2.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -285,29 +285,12 @@ function prepareGETUrl({
|
|
|
285
285
|
return finalUrl;
|
|
286
286
|
}
|
|
287
287
|
|
|
288
|
-
function createSignalWrapper(signal) {
|
|
289
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
290
|
-
signal.onabort = (event) => {
|
|
291
|
-
for (const listener of listeners) {
|
|
292
|
-
listener(event);
|
|
293
|
-
}
|
|
294
|
-
};
|
|
295
|
-
return Object.assign(signal, {
|
|
296
|
-
addEventListener(_type, listener) {
|
|
297
|
-
listeners.add(listener);
|
|
298
|
-
},
|
|
299
|
-
removeEventListener(_type, listener) {
|
|
300
|
-
listeners.delete(listener);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
288
|
function buildHTTPExecutor(options) {
|
|
305
289
|
const printFn = options?.print ?? defaultPrintFn;
|
|
306
290
|
const disposeCtrl = new AbortController();
|
|
307
|
-
const sharedSignal = createSignalWrapper(disposeCtrl.signal);
|
|
308
291
|
const baseExecutor = (request, excludeQuery) => {
|
|
309
|
-
if (
|
|
310
|
-
return createResultForAbort(
|
|
292
|
+
if (disposeCtrl.signal.aborted) {
|
|
293
|
+
return createResultForAbort(disposeCtrl.signal.reason);
|
|
311
294
|
}
|
|
312
295
|
const fetchFn = request.extensions?.fetch ?? options?.fetch ?? fetch.fetch;
|
|
313
296
|
let method = request.extensions?.method || options?.method;
|
|
@@ -336,7 +319,7 @@ function buildHTTPExecutor(options) {
|
|
|
336
319
|
Object.assign(headers, headersFromExtensions);
|
|
337
320
|
request.extensions = restExtensions;
|
|
338
321
|
}
|
|
339
|
-
const signals = [
|
|
322
|
+
const signals = [disposeCtrl.signal];
|
|
340
323
|
const signalFromRequest = request.signal || request.info?.signal;
|
|
341
324
|
if (signalFromRequest) {
|
|
342
325
|
if (signalFromRequest.aborted) {
|
|
@@ -347,7 +330,7 @@ function buildHTTPExecutor(options) {
|
|
|
347
330
|
if (options?.timeout) {
|
|
348
331
|
signals.push(AbortSignal.timeout(options.timeout));
|
|
349
332
|
}
|
|
350
|
-
const signal = gatewayAbortSignalAny.abortSignalAny(signals);
|
|
333
|
+
const signal = signals.length > 1 ? gatewayAbortSignalAny.abortSignalAny(signals) : signals[0];
|
|
351
334
|
const upstreamErrorExtensions = {
|
|
352
335
|
request: {
|
|
353
336
|
method
|
|
@@ -557,8 +540,8 @@ function buildHTTPExecutor(options) {
|
|
|
557
540
|
let result;
|
|
558
541
|
let attempt = 0;
|
|
559
542
|
function retryAttempt() {
|
|
560
|
-
if (
|
|
561
|
-
return createResultForAbort(
|
|
543
|
+
if (disposeCtrl.signal.aborted) {
|
|
544
|
+
return createResultForAbort(disposeCtrl.signal.reason);
|
|
562
545
|
}
|
|
563
546
|
attempt++;
|
|
564
547
|
if (attempt > options.retry) {
|
package/dist/index.js
CHANGED
|
@@ -283,29 +283,12 @@ function prepareGETUrl({
|
|
|
283
283
|
return finalUrl;
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
-
function createSignalWrapper(signal) {
|
|
287
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
288
|
-
signal.onabort = (event) => {
|
|
289
|
-
for (const listener of listeners) {
|
|
290
|
-
listener(event);
|
|
291
|
-
}
|
|
292
|
-
};
|
|
293
|
-
return Object.assign(signal, {
|
|
294
|
-
addEventListener(_type, listener) {
|
|
295
|
-
listeners.add(listener);
|
|
296
|
-
},
|
|
297
|
-
removeEventListener(_type, listener) {
|
|
298
|
-
listeners.delete(listener);
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
286
|
function buildHTTPExecutor(options) {
|
|
303
287
|
const printFn = options?.print ?? defaultPrintFn;
|
|
304
288
|
const disposeCtrl = new AbortController();
|
|
305
|
-
const sharedSignal = createSignalWrapper(disposeCtrl.signal);
|
|
306
289
|
const baseExecutor = (request, excludeQuery) => {
|
|
307
|
-
if (
|
|
308
|
-
return createResultForAbort(
|
|
290
|
+
if (disposeCtrl.signal.aborted) {
|
|
291
|
+
return createResultForAbort(disposeCtrl.signal.reason);
|
|
309
292
|
}
|
|
310
293
|
const fetchFn = request.extensions?.fetch ?? options?.fetch ?? fetch;
|
|
311
294
|
let method = request.extensions?.method || options?.method;
|
|
@@ -334,7 +317,7 @@ function buildHTTPExecutor(options) {
|
|
|
334
317
|
Object.assign(headers, headersFromExtensions);
|
|
335
318
|
request.extensions = restExtensions;
|
|
336
319
|
}
|
|
337
|
-
const signals = [
|
|
320
|
+
const signals = [disposeCtrl.signal];
|
|
338
321
|
const signalFromRequest = request.signal || request.info?.signal;
|
|
339
322
|
if (signalFromRequest) {
|
|
340
323
|
if (signalFromRequest.aborted) {
|
|
@@ -345,7 +328,7 @@ function buildHTTPExecutor(options) {
|
|
|
345
328
|
if (options?.timeout) {
|
|
346
329
|
signals.push(AbortSignal.timeout(options.timeout));
|
|
347
330
|
}
|
|
348
|
-
const signal = abortSignalAny(signals);
|
|
331
|
+
const signal = signals.length > 1 ? abortSignalAny(signals) : signals[0];
|
|
349
332
|
const upstreamErrorExtensions = {
|
|
350
333
|
request: {
|
|
351
334
|
method
|
|
@@ -555,8 +538,8 @@ function buildHTTPExecutor(options) {
|
|
|
555
538
|
let result;
|
|
556
539
|
let attempt = 0;
|
|
557
540
|
function retryAttempt() {
|
|
558
|
-
if (
|
|
559
|
-
return createResultForAbort(
|
|
541
|
+
if (disposeCtrl.signal.aborted) {
|
|
542
|
+
return createResultForAbort(disposeCtrl.signal.reason);
|
|
560
543
|
}
|
|
561
544
|
attempt++;
|
|
562
545
|
if (attempt > options.retry) {
|
package/package.json
CHANGED