@graphql-tools/executor-http
Advanced tools
Comparing version 1.1.10-alpha-63d80f9d08b5d8448f4bfb8b04aeff28b977dec8 to 1.1.10-alpha-6864032130ad1247b58daa4f4400d37cc8d3daad
# @graphql-tools/executor-http | ||
## 1.1.10-alpha-63d80f9d08b5d8448f4bfb8b04aeff28b977dec8 | ||
## 1.1.10-alpha-6864032130ad1247b58daa4f4400d37cc8d3daad | ||
@@ -11,2 +11,4 @@ ### Patch Changes | ||
- [#98](https://github.com/graphql-hive/gateway/pull/98) [`697308d`](https://github.com/graphql-hive/gateway/commit/697308df3b2dd96f28dc65a5f5361a911077e022) Thanks [@ardatan](https://github.com/ardatan)! - Bun support by using native Bun API whenever possible | ||
## 1.1.9 | ||
@@ -13,0 +15,0 @@ |
@@ -1,2 +0,2 @@ | ||
import { isAsyncIterable, isPromise, fakePromise, inspect, mapAsyncIterator, mergeIncrementalResult, memoize1, getOperationASTFromRequest, createGraphQLError } from '@graphql-tools/utils'; | ||
import { isAsyncIterable, isPromise, fakePromise, inspect, mapAsyncIterator, mergeIncrementalResult, memoize1, getOperationASTFromRequest, mapMaybePromise, createGraphQLError } from '@graphql-tools/utils'; | ||
import { File, FormData, TextDecoder, fetch } from '@whatwg-node/fetch'; | ||
@@ -91,7 +91,14 @@ import { ValueOrPromise } from 'value-or-promise'; | ||
} | ||
return ValueOrPromise.all( | ||
uploads.map( | ||
(upload, i) => new ValueOrPromise(() => handleUpload(upload, i)) | ||
) | ||
).then(() => form).resolve(); | ||
const jobs = []; | ||
for (const i in uploads) { | ||
const upload = uploads[i]; | ||
const job = handleUpload(upload, Number(i)); | ||
if (isPromise(job)) { | ||
jobs.push(job); | ||
} | ||
} | ||
if (jobs.length > 0) { | ||
return Promise.all(jobs).then(() => form); | ||
} | ||
return form; | ||
} | ||
@@ -127,5 +134,10 @@ function isBlob(obj) { | ||
reader.closed.then(stop).catch(stop); | ||
stop.finally(() => reader.cancel()); | ||
stop.then(() => reader.releaseLock()).catch((err) => { | ||
reader.cancel(err); | ||
}); | ||
let currChunk = ""; | ||
async function pump() { | ||
if (!body?.locked) { | ||
return stop(); | ||
} | ||
const { done, value: chunk } = await reader.read(); | ||
@@ -314,28 +326,29 @@ if (done) { | ||
upstreamErrorExtensions.request.body = body; | ||
return new ValueOrPromise( | ||
() => createFormDataFromVariables(body, { | ||
return mapMaybePromise( | ||
createFormDataFromVariables(body, { | ||
File: options?.File, | ||
FormData: options?.FormData | ||
}) | ||
).then((body2) => { | ||
if (typeof body2 === "string" && !headers["content-type"]) { | ||
upstreamErrorExtensions.request.body = body2; | ||
headers["content-type"] = "application/json"; | ||
}), | ||
(body2) => { | ||
if (typeof body2 === "string" && !headers["content-type"]) { | ||
upstreamErrorExtensions.request.body = body2; | ||
headers["content-type"] = "application/json"; | ||
} | ||
const fetchOptions = { | ||
method: "POST", | ||
body: body2, | ||
headers, | ||
signal | ||
}; | ||
if (options?.credentials != null) { | ||
fetchOptions.credentials = options.credentials; | ||
} | ||
return fetchFn( | ||
endpoint, | ||
fetchOptions, | ||
request.context, | ||
request.info | ||
); | ||
} | ||
const fetchOptions = { | ||
method: "POST", | ||
body: body2, | ||
headers, | ||
signal | ||
}; | ||
if (options?.credentials != null) { | ||
fetchOptions.credentials = options.credentials; | ||
} | ||
return fetchFn( | ||
endpoint, | ||
fetchOptions, | ||
request.context, | ||
request.info | ||
); | ||
}).resolve(); | ||
); | ||
} | ||
@@ -459,3 +472,3 @@ } | ||
} | ||
return new ValueOrPromise(() => baseExecutor(request)).then((res) => { | ||
return mapMaybePromise(baseExecutor(request), (res) => { | ||
result = res; | ||
@@ -466,3 +479,3 @@ if (result?.errors?.length) { | ||
return result; | ||
}).resolve(); | ||
}); | ||
} | ||
@@ -469,0 +482,0 @@ return retryAttempt(); |
{ | ||
"name": "@graphql-tools/executor-http", | ||
"version": "1.1.10-alpha-63d80f9d08b5d8448f4bfb8b04aeff28b977dec8", | ||
"version": "1.1.10-alpha-6864032130ad1247b58daa4f4400d37cc8d3daad", | ||
"type": "module", | ||
@@ -5,0 +5,0 @@ "description": "A set of utils for faster development of GraphQL tools", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
62823
1191