diff options
Diffstat (limited to 'g4f/Provider/npm/node_modules/funcaptcha/src/http.ts')
-rw-r--r-- | g4f/Provider/npm/node_modules/funcaptcha/src/http.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/g4f/Provider/npm/node_modules/funcaptcha/src/http.ts b/g4f/Provider/npm/node_modules/funcaptcha/src/http.ts new file mode 100644 index 00000000..e0fa3acb --- /dev/null +++ b/g4f/Provider/npm/node_modules/funcaptcha/src/http.ts @@ -0,0 +1,28 @@ +import { request, ProxyAgent } from "undici"; +// @ts-ignore +import { RequestOptions } from "undici/types/dispatcher"; + +async function req(url: string, options: RequestOptions, proxy?: string) { + let auth = undefined; + if (proxy) { + let proxyUrl = new URL(proxy); + if(proxyUrl.username && proxyUrl.password) { + auth = Buffer.from(proxyUrl.username + ":" + proxyUrl.password).toString("base64") + } + } + let dispatcher = proxy ? new ProxyAgent({ + uri: proxy, + auth + }) : undefined; + + let req = await request(url, { + ...options, + dispatcher, + }); + return { + headers: req.headers, + body: Buffer.from(await req.body.arrayBuffer()), + }; +} + +export default req; |