summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/npm/node_modules/undici/lib/api/util.js
diff options
context:
space:
mode:
authorTekky <98614666+xtekky@users.noreply.github.com>2023-10-28 09:22:33 +0200
committerGitHub <noreply@github.com>2023-10-28 09:22:33 +0200
commit1a3b59838e21b98b5cfcafddf1737afb25129cfe (patch)
treeb9c645cbe897af198ea0551509f901a249af35f2 /g4f/Provider/npm/node_modules/undici/lib/api/util.js
parentMerge pull request #1176 from hlohaus/history (diff)
parentAdd arkose_token to OpenaiChat (diff)
downloadgpt4free-1a3b59838e21b98b5cfcafddf1737afb25129cfe.tar
gpt4free-1a3b59838e21b98b5cfcafddf1737afb25129cfe.tar.gz
gpt4free-1a3b59838e21b98b5cfcafddf1737afb25129cfe.tar.bz2
gpt4free-1a3b59838e21b98b5cfcafddf1737afb25129cfe.tar.lz
gpt4free-1a3b59838e21b98b5cfcafddf1737afb25129cfe.tar.xz
gpt4free-1a3b59838e21b98b5cfcafddf1737afb25129cfe.tar.zst
gpt4free-1a3b59838e21b98b5cfcafddf1737afb25129cfe.zip
Diffstat (limited to 'g4f/Provider/npm/node_modules/undici/lib/api/util.js')
-rw-r--r--g4f/Provider/npm/node_modules/undici/lib/api/util.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/g4f/Provider/npm/node_modules/undici/lib/api/util.js b/g4f/Provider/npm/node_modules/undici/lib/api/util.js
new file mode 100644
index 00000000..bffd7027
--- /dev/null
+++ b/g4f/Provider/npm/node_modules/undici/lib/api/util.js
@@ -0,0 +1,46 @@
+const assert = require('assert')
+const {
+ ResponseStatusCodeError
+} = require('../core/errors')
+const { toUSVString } = require('../core/util')
+
+async function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {
+ assert(body)
+
+ let chunks = []
+ let limit = 0
+
+ for await (const chunk of body) {
+ chunks.push(chunk)
+ limit += chunk.length
+ if (limit > 128 * 1024) {
+ chunks = null
+ break
+ }
+ }
+
+ if (statusCode === 204 || !contentType || !chunks) {
+ process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))
+ return
+ }
+
+ try {
+ if (contentType.startsWith('application/json')) {
+ const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))
+ process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))
+ return
+ }
+
+ if (contentType.startsWith('text/')) {
+ const payload = toUSVString(Buffer.concat(chunks))
+ process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))
+ return
+ }
+ } catch (err) {
+ // Process in a fallback if error
+ }
+
+ process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))
+}
+
+module.exports = { getResolveErrorBodyCallback }