urllib
Advanced tools
Comparing version 3.19.3 to 3.20.0
@@ -6,2 +6,3 @@ /// <reference types="node" /> | ||
import { LookupFunction } from 'node:net'; | ||
import { Dispatcher } from 'undici'; | ||
import { CheckAddressFunction } from './HttpAgent.js'; | ||
@@ -38,2 +39,6 @@ import { RequestURL, RequestOptions, RequestMeta } from './Request.js'; | ||
socketPath?: string | null; | ||
/** | ||
* connect timeout, default is 10000ms | ||
*/ | ||
timeout?: number; | ||
}; | ||
@@ -53,4 +58,6 @@ }; | ||
constructor(clientOptions?: ClientOptions); | ||
getDispatcher(): Dispatcher; | ||
setDispatcher(dispatcher: Dispatcher): void; | ||
request<T = any>(url: RequestURL, options?: RequestOptions): Promise<HttpClientResponse<T>>; | ||
curl<T = any>(url: RequestURL, options?: RequestOptions): Promise<HttpClientResponse<T>>; | ||
} |
@@ -76,3 +76,3 @@ "use strict"; | ||
} | ||
exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.19.3'); | ||
exports.HEADER_USER_AGENT = (0, default_user_agent_1.default)('node-urllib', '3.20.0'); | ||
function getFileName(stream) { | ||
@@ -98,3 +98,3 @@ const filePath = stream.path; | ||
this.#defaultArgs = clientOptions?.defaultArgs; | ||
if (clientOptions?.lookup || clientOptions?.checkAddress || clientOptions?.connect) { | ||
if (clientOptions?.lookup || clientOptions?.checkAddress) { | ||
this.#dispatcher = new HttpAgent_js_1.HttpAgent({ | ||
@@ -106,4 +106,15 @@ lookup: clientOptions.lookup, | ||
} | ||
else if (clientOptions?.connect) { | ||
this.#dispatcher = new undici_1.Agent({ | ||
connect: clientOptions.connect, | ||
}); | ||
} | ||
(0, diagnosticsChannel_js_1.initDiagnosticsChannel)(); | ||
} | ||
getDispatcher() { | ||
return this.#dispatcher ?? (0, undici_1.getGlobalDispatcher)(); | ||
} | ||
setDispatcher(dispatcher) { | ||
this.#dispatcher = dispatcher; | ||
} | ||
async request(url, options) { | ||
@@ -110,0 +121,0 @@ return await this.#requestInternal(url, options); |
@@ -28,3 +28,3 @@ "use strict"; | ||
exports.request = request; | ||
// export curl method is keep compatible with urlib.curl() | ||
// export curl method is keep compatible with urllib.curl() | ||
// ```ts | ||
@@ -31,0 +31,0 @@ // import * as urllib from 'urllib'; |
@@ -1,1 +0,3 @@ | ||
{"type":"commonjs"} | ||
{ | ||
"type": "commonjs" | ||
} |
@@ -8,8 +8,8 @@ "use strict"; | ||
const JSONCtlCharsMap = { | ||
'"': '\\"', | ||
'\\': '\\\\', | ||
'\b': '\\b', | ||
'\f': '\\f', | ||
'\n': '\\n', | ||
'\r': '\\r', | ||
'"': '\\"', // \u0022 | ||
'\\': '\\\\', // \u005c | ||
'\b': '\\b', // \u0008 | ||
'\f': '\\f', // \u000c | ||
'\n': '\\n', // \u000a | ||
'\r': '\\r', // \u000d | ||
'\t': '\\t', // \u0009 | ||
@@ -16,0 +16,0 @@ }; |
@@ -6,2 +6,3 @@ /// <reference types="node" resolution-mode="require"/> | ||
import { LookupFunction } from 'node:net'; | ||
import { Dispatcher } from 'undici'; | ||
import { CheckAddressFunction } from './HttpAgent.js'; | ||
@@ -38,2 +39,6 @@ import { RequestURL, RequestOptions, RequestMeta } from './Request.js'; | ||
socketPath?: string | null; | ||
/** | ||
* connect timeout, default is 10000ms | ||
*/ | ||
timeout?: number; | ||
}; | ||
@@ -53,4 +58,6 @@ }; | ||
constructor(clientOptions?: ClientOptions); | ||
getDispatcher(): Dispatcher; | ||
setDispatcher(dispatcher: Dispatcher): void; | ||
request<T = any>(url: RequestURL, options?: RequestOptions): Promise<HttpClientResponse<T>>; | ||
curl<T = any>(url: RequestURL, options?: RequestOptions): Promise<HttpClientResponse<T>>; | ||
} |
@@ -13,3 +13,3 @@ import diagnosticsChannel from 'node:diagnostics_channel'; | ||
import { performance } from 'node:perf_hooks'; | ||
import { FormData as FormDataNative, request as undiciRequest, } from 'undici'; | ||
import { FormData as FormDataNative, request as undiciRequest, Agent, getGlobalDispatcher, } from 'undici'; | ||
import { FormData as FormDataNode } from 'formdata-node'; | ||
@@ -71,3 +71,3 @@ import { FormDataEncoder } from 'form-data-encoder'; | ||
} | ||
export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.19.3'); | ||
export const HEADER_USER_AGENT = createUserAgent('node-urllib', '3.20.0'); | ||
function getFileName(stream) { | ||
@@ -93,3 +93,3 @@ const filePath = stream.path; | ||
this.#defaultArgs = clientOptions?.defaultArgs; | ||
if (clientOptions?.lookup || clientOptions?.checkAddress || clientOptions?.connect) { | ||
if (clientOptions?.lookup || clientOptions?.checkAddress) { | ||
this.#dispatcher = new HttpAgent({ | ||
@@ -101,4 +101,15 @@ lookup: clientOptions.lookup, | ||
} | ||
else if (clientOptions?.connect) { | ||
this.#dispatcher = new Agent({ | ||
connect: clientOptions.connect, | ||
}); | ||
} | ||
initDiagnosticsChannel(); | ||
} | ||
getDispatcher() { | ||
return this.#dispatcher ?? getGlobalDispatcher(); | ||
} | ||
setDispatcher(dispatcher) { | ||
this.#dispatcher = dispatcher; | ||
} | ||
async request(url, options) { | ||
@@ -105,0 +116,0 @@ return await this.#requestInternal(url, options); |
@@ -21,3 +21,3 @@ import LRU from 'ylru'; | ||
} | ||
// export curl method is keep compatible with urlib.curl() | ||
// export curl method is keep compatible with urllib.curl() | ||
// ```ts | ||
@@ -24,0 +24,0 @@ // import * as urllib from 'urllib'; |
@@ -1,1 +0,3 @@ | ||
{"type":"module"} | ||
{ | ||
"type": "module" | ||
} |
@@ -5,8 +5,8 @@ import { randomBytes, createHash } from 'node:crypto'; | ||
const JSONCtlCharsMap = { | ||
'"': '\\"', | ||
'\\': '\\\\', | ||
'\b': '\\b', | ||
'\f': '\\f', | ||
'\n': '\\n', | ||
'\r': '\\r', | ||
'"': '\\"', // \u0022 | ||
'\\': '\\\\', // \u005c | ||
'\b': '\\b', // \u0008 | ||
'\f': '\\f', // \u000c | ||
'\n': '\\n', // \u000a | ||
'\r': '\\r', // \u000d | ||
'\t': '\\t', // \u0009 | ||
@@ -13,0 +13,0 @@ }; |
{ | ||
"name": "urllib", | ||
"version": "3.19.3", | ||
"version": "3.20.0", | ||
"publishConfig": { | ||
@@ -21,26 +21,2 @@ "tag": "latest" | ||
"homepage": "https://github.com/node-modules/urllib", | ||
"type": "module", | ||
"tshy": { | ||
"exports": { | ||
".": "./src/index.ts", | ||
"./package.json": "./package.json" | ||
} | ||
}, | ||
"exports": { | ||
".": { | ||
"import": { | ||
"types": "./dist/esm/index.d.ts", | ||
"default": "./dist/esm/index.js" | ||
}, | ||
"require": { | ||
"types": "./dist/commonjs/index.d.ts", | ||
"default": "./dist/commonjs/index.js" | ||
} | ||
}, | ||
"./package.json": "./package.json" | ||
}, | ||
"files": [ | ||
"dist", | ||
"src" | ||
], | ||
"repository": { | ||
@@ -66,2 +42,3 @@ "type": "git", | ||
"cov": "vitest run --coverage", | ||
"preci": "node scripts/pre_test.js", | ||
"ci": "npm run lint && npm run cov && node scripts/build_test.js", | ||
@@ -96,3 +73,3 @@ "contributor": "git-contributor", | ||
"@types/tar-stream": "^2.2.2", | ||
"@vitest/coverage-v8": "^0.32.0", | ||
"@vitest/coverage-v8": "beta", | ||
"busboy": "^1.6.0", | ||
@@ -107,6 +84,6 @@ "cross-env": "^7.0.3", | ||
"tar-stream": "^2.2.0", | ||
"tshy": "^1.0.0-3", | ||
"tshy": "^1.0.0", | ||
"tshy-after": "^1.0.0", | ||
"typescript": "^5.0.4", | ||
"vitest": "^0.32.0" | ||
"vitest": "beta" | ||
}, | ||
@@ -117,3 +94,28 @@ "engines": { | ||
"license": "MIT", | ||
"types": "./dist/commonjs/index.d.ts" | ||
"type": "module", | ||
"tshy": { | ||
"exports": { | ||
".": "./src/index.ts", | ||
"./package.json": "./package.json" | ||
} | ||
}, | ||
"exports": { | ||
".": { | ||
"import": { | ||
"types": "./dist/esm/index.d.ts", | ||
"default": "./dist/esm/index.js" | ||
}, | ||
"require": { | ||
"types": "./dist/commonjs/index.d.ts", | ||
"default": "./dist/commonjs/index.js" | ||
} | ||
}, | ||
"./package.json": "./package.json" | ||
}, | ||
"files": [ | ||
"dist", | ||
"src" | ||
], | ||
"types": "./dist/commonjs/index.d.ts", | ||
"main": "./dist/commonjs/index.js" | ||
} |
@@ -293,10 +293,11 @@ # urllib | ||
| :---: | :---: | :---: | :---: | :---: | :---: | | ||
|[<img src="https://avatars.githubusercontent.com/u/543405?v=4" width="100px;"/><br/><sub><b>ibigbug</b></sub>](https://github.com/ibigbug)<br/>|[<img src="https://avatars.githubusercontent.com/u/14790466?v=4" width="100px;"/><br/><sub><b>greenkeeperio-bot</b></sub>](https://github.com/greenkeeperio-bot)<br/>|[<img src="https://avatars.githubusercontent.com/u/227713?v=4" width="100px;"/><br/><sub><b>atian25</b></sub>](https://github.com/atian25)<br/>|[<img src="https://avatars.githubusercontent.com/u/6897780?v=4" width="100px;"/><br/><sub><b>killagu</b></sub>](https://github.com/killagu)<br/>|[<img src="https://avatars.githubusercontent.com/u/5381764?v=4" width="100px;"/><br/><sub><b>paambaati</b></sub>](https://github.com/paambaati)<br/>|[<img src="https://avatars.githubusercontent.com/u/1433247?v=4" width="100px;"/><br/><sub><b>denghongcai</b></sub>](https://github.com/denghongcai)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/4635838?v=4" width="100px;"/><br/><sub><b>gemwuu</b></sub>](https://github.com/gemwuu)<br/>|[<img src="https://avatars.githubusercontent.com/u/2842176?v=4" width="100px;"/><br/><sub><b>XadillaX</b></sub>](https://github.com/XadillaX)<br/>|[<img src="https://avatars.githubusercontent.com/u/1147375?v=4" width="100px;"/><br/><sub><b>alsotang</b></sub>](https://github.com/alsotang)<br/>|[<img src="https://avatars.githubusercontent.com/u/546535?v=4" width="100px;"/><br/><sub><b>leoner</b></sub>](https://github.com/leoner)<br/>|[<img src="https://avatars.githubusercontent.com/u/19908330?v=4" width="100px;"/><br/><sub><b>hyj1991</b></sub>](https://github.com/hyj1991)<br/>|[<img src="https://avatars.githubusercontent.com/u/1747852?v=4" width="100px;"/><br/><sub><b>isayme</b></sub>](https://github.com/isayme)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/252317?v=4" width="100px;"/><br/><sub><b>cyjake</b></sub>](https://github.com/cyjake)<br/>|[<img src="https://avatars.githubusercontent.com/u/5856440?v=4" width="100px;"/><br/><sub><b>whxaxes</b></sub>](https://github.com/whxaxes)<br/>|[<img src="https://avatars.githubusercontent.com/u/309219?v=4" width="100px;"/><br/><sub><b>chadxz</b></sub>](https://github.com/chadxz)<br/>|[<img src="https://avatars.githubusercontent.com/u/2055702?v=4" width="100px;"/><br/><sub><b>adapt0</b></sub>](https://github.com/adapt0)<br/>|[<img src="https://avatars.githubusercontent.com/u/5139554?v=4" width="100px;"/><br/><sub><b>danielwpz</b></sub>](https://github.com/danielwpz)<br/>|[<img src="https://avatars.githubusercontent.com/u/5127897?v=4" width="100px;"/><br/><sub><b>danielsss</b></sub>](https://github.com/danielsss)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/3367820?v=4" width="100px;"/><br/><sub><b>Jeff-Tian</b></sub>](https://github.com/Jeff-Tian)<br/>|[<img src="https://avatars.githubusercontent.com/u/17075261?v=4" width="100px;"/><br/><sub><b>nick-ng</b></sub>](https://github.com/nick-ng)<br/>|[<img src="https://avatars.githubusercontent.com/u/1706595?v=4" width="100px;"/><br/><sub><b>rishavsharan</b></sub>](https://github.com/rishavsharan)<br/>|[<img src="https://avatars.githubusercontent.com/u/1886161?v=4" width="100px;"/><br/><sub><b>willizm</b></sub>](https://github.com/willizm)<br/>|[<img src="https://avatars.githubusercontent.com/u/7227589?v=4" width="100px;"/><br/><sub><b>davidkhala</b></sub>](https://github.com/davidkhala)<br/>|[<img src="https://avatars.githubusercontent.com/u/535479?v=4" width="100px;"/><br/><sub><b>aleafs</b></sub>](https://github.com/aleafs)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/3689968?v=4" width="100px;"/><br/><sub><b>Amunu</b></sub>](https://github.com/Amunu)<br/>|[<img src="https://avatars.githubusercontent.com/in/9426?v=4" width="100px;"/><br/><sub><b>azure-pipelines[bot]</b></sub>](https://github.com/apps/azure-pipelines)<br/>|[<img src="https://avatars.githubusercontent.com/u/108602490?v=4" width="100px;"/><br/><sub><b>capsice</b></sub>](https://github.com/capsice)<br/>|[<img src="https://avatars.githubusercontent.com/u/1281323?v=4" width="100px;"/><br/><sub><b>changzhiwin</b></sub>](https://github.com/changzhiwin)<br/>|[<img src="https://avatars.githubusercontent.com/u/929503?v=4" width="100px;"/><br/><sub><b>yuzhigang33</b></sub>](https://github.com/yuzhigang33)<br/>|[<img src="https://avatars.githubusercontent.com/u/5574625?v=4" width="100px;"/><br/><sub><b>elrrrrrrr</b></sub>](https://github.com/elrrrrrrr)<br/>| | ||
[<img src="https://avatars.githubusercontent.com/u/981128?v=4" width="100px;"/><br/><sub><b>fishbar</b></sub>](https://github.com/fishbar)<br/>|[<img src="https://avatars.githubusercontent.com/u/1207064?v=4" width="100px;"/><br/><sub><b>gxcsoccer</b></sub>](https://github.com/gxcsoccer)<br/>|[<img src="https://avatars.githubusercontent.com/u/17476119?v=4" width="100px;"/><br/><sub><b>mars-coder</b></sub>](https://github.com/mars-coder)<br/>|[<img src="https://avatars.githubusercontent.com/u/929179?v=4" width="100px;"/><br/><sub><b>rockdai</b></sub>](https://github.com/rockdai)<br/>|[<img src="https://avatars.githubusercontent.com/u/2196373?v=4" width="100px;"/><br/><sub><b>dickeylth</b></sub>](https://github.com/dickeylth)<br/>|[<img src="https://avatars.githubusercontent.com/u/13050025?v=4" width="100px;"/><br/><sub><b>aladdin-add</b></sub>](https://github.com/aladdin-add)<br/> | ||
|[<img src="https://avatars.githubusercontent.com/u/543405?v=4" width="100px;"/><br/><sub><b>ibigbug</b></sub>](https://github.com/ibigbug)<br/>|[<img src="https://avatars.githubusercontent.com/u/14790466?v=4" width="100px;"/><br/><sub><b>greenkeeperio-bot</b></sub>](https://github.com/greenkeeperio-bot)<br/>|[<img src="https://avatars.githubusercontent.com/u/227713?v=4" width="100px;"/><br/><sub><b>atian25</b></sub>](https://github.com/atian25)<br/>|[<img src="https://avatars.githubusercontent.com/u/6897780?v=4" width="100px;"/><br/><sub><b>killagu</b></sub>](https://github.com/killagu)<br/>|[<img src="https://avatars.githubusercontent.com/u/5381764?v=4" width="100px;"/><br/><sub><b>paambaati</b></sub>](https://github.com/paambaati)<br/>|[<img src="https://avatars.githubusercontent.com/u/199635?v=4" width="100px;"/><br/><sub><b>tremby</b></sub>](https://github.com/tremby)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/1433247?v=4" width="100px;"/><br/><sub><b>denghongcai</b></sub>](https://github.com/denghongcai)<br/>|[<img src="https://avatars.githubusercontent.com/u/4635838?v=4" width="100px;"/><br/><sub><b>gemwuu</b></sub>](https://github.com/gemwuu)<br/>|[<img src="https://avatars.githubusercontent.com/u/2842176?v=4" width="100px;"/><br/><sub><b>XadillaX</b></sub>](https://github.com/XadillaX)<br/>|[<img src="https://avatars.githubusercontent.com/u/1147375?v=4" width="100px;"/><br/><sub><b>alsotang</b></sub>](https://github.com/alsotang)<br/>|[<img src="https://avatars.githubusercontent.com/u/546535?v=4" width="100px;"/><br/><sub><b>leoner</b></sub>](https://github.com/leoner)<br/>|[<img src="https://avatars.githubusercontent.com/u/19908330?v=4" width="100px;"/><br/><sub><b>hyj1991</b></sub>](https://github.com/hyj1991)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/1747852?v=4" width="100px;"/><br/><sub><b>isayme</b></sub>](https://github.com/isayme)<br/>|[<img src="https://avatars.githubusercontent.com/u/252317?v=4" width="100px;"/><br/><sub><b>cyjake</b></sub>](https://github.com/cyjake)<br/>|[<img src="https://avatars.githubusercontent.com/u/5856440?v=4" width="100px;"/><br/><sub><b>whxaxes</b></sub>](https://github.com/whxaxes)<br/>|[<img src="https://avatars.githubusercontent.com/u/309219?v=4" width="100px;"/><br/><sub><b>chadxz</b></sub>](https://github.com/chadxz)<br/>|[<img src="https://avatars.githubusercontent.com/u/2055702?v=4" width="100px;"/><br/><sub><b>adapt0</b></sub>](https://github.com/adapt0)<br/>|[<img src="https://avatars.githubusercontent.com/u/5139554?v=4" width="100px;"/><br/><sub><b>danielwpz</b></sub>](https://github.com/danielwpz)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/5127897?v=4" width="100px;"/><br/><sub><b>danielsss</b></sub>](https://github.com/danielsss)<br/>|[<img src="https://avatars.githubusercontent.com/u/3367820?v=4" width="100px;"/><br/><sub><b>Jeff-Tian</b></sub>](https://github.com/Jeff-Tian)<br/>|[<img src="https://avatars.githubusercontent.com/u/17075261?v=4" width="100px;"/><br/><sub><b>nick-ng</b></sub>](https://github.com/nick-ng)<br/>|[<img src="https://avatars.githubusercontent.com/u/1706595?v=4" width="100px;"/><br/><sub><b>rishavsharan</b></sub>](https://github.com/rishavsharan)<br/>|[<img src="https://avatars.githubusercontent.com/u/1886161?v=4" width="100px;"/><br/><sub><b>willizm</b></sub>](https://github.com/willizm)<br/>|[<img src="https://avatars.githubusercontent.com/u/7227589?v=4" width="100px;"/><br/><sub><b>davidkhala</b></sub>](https://github.com/davidkhala)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/535479?v=4" width="100px;"/><br/><sub><b>aleafs</b></sub>](https://github.com/aleafs)<br/>|[<img src="https://avatars.githubusercontent.com/u/3689968?v=4" width="100px;"/><br/><sub><b>Amunu</b></sub>](https://github.com/Amunu)<br/>|[<img src="https://avatars.githubusercontent.com/in/9426?v=4" width="100px;"/><br/><sub><b>azure-pipelines[bot]</b></sub>](https://github.com/apps/azure-pipelines)<br/>|[<img src="https://avatars.githubusercontent.com/u/108602490?v=4" width="100px;"/><br/><sub><b>capsice</b></sub>](https://github.com/capsice)<br/>|[<img src="https://avatars.githubusercontent.com/u/1281323?v=4" width="100px;"/><br/><sub><b>changzhiwin</b></sub>](https://github.com/changzhiwin)<br/>|[<img src="https://avatars.githubusercontent.com/u/929503?v=4" width="100px;"/><br/><sub><b>yuzhigang33</b></sub>](https://github.com/yuzhigang33)<br/>| | ||
|[<img src="https://avatars.githubusercontent.com/u/5574625?v=4" width="100px;"/><br/><sub><b>elrrrrrrr</b></sub>](https://github.com/elrrrrrrr)<br/>|[<img src="https://avatars.githubusercontent.com/u/981128?v=4" width="100px;"/><br/><sub><b>fishbar</b></sub>](https://github.com/fishbar)<br/>|[<img src="https://avatars.githubusercontent.com/u/1207064?v=4" width="100px;"/><br/><sub><b>gxcsoccer</b></sub>](https://github.com/gxcsoccer)<br/>|[<img src="https://avatars.githubusercontent.com/u/17476119?v=4" width="100px;"/><br/><sub><b>mars-coder</b></sub>](https://github.com/mars-coder)<br/>|[<img src="https://avatars.githubusercontent.com/u/929179?v=4" width="100px;"/><br/><sub><b>rockdai</b></sub>](https://github.com/rockdai)<br/>|[<img src="https://avatars.githubusercontent.com/u/2196373?v=4" width="100px;"/><br/><sub><b>dickeylth</b></sub>](https://github.com/dickeylth)<br/>| | ||
[<img src="https://avatars.githubusercontent.com/u/13050025?v=4" width="100px;"/><br/><sub><b>aladdin-add</b></sub>](https://github.com/aladdin-add)<br/> | ||
This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Sat Sep 16 2023 01:02:26 GMT+0800`. | ||
This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Mon Dec 04 2023 00:13:39 GMT+0800`. | ||
@@ -303,0 +304,0 @@ <!-- GITCONTRIBUTOR_END --> |
@@ -23,2 +23,4 @@ import diagnosticsChannel from 'node:diagnostics_channel'; | ||
Dispatcher, | ||
Agent, | ||
getGlobalDispatcher, | ||
} from 'undici'; | ||
@@ -90,3 +92,2 @@ import { FormData as FormDataNode } from 'formdata-node'; | ||
rejectUnauthorized?: boolean; | ||
/** | ||
@@ -96,2 +97,6 @@ * socketPath string | null (optional) - Default: null - An IPC endpoint, either Unix domain socket or Windows named pipe | ||
socketPath?: string | null; | ||
/** | ||
* connect timeout, default is 10000ms | ||
*/ | ||
timeout?: number; | ||
}, | ||
@@ -174,3 +179,3 @@ }; | ||
this.#defaultArgs = clientOptions?.defaultArgs; | ||
if (clientOptions?.lookup || clientOptions?.checkAddress || clientOptions?.connect) { | ||
if (clientOptions?.lookup || clientOptions?.checkAddress) { | ||
this.#dispatcher = new HttpAgent({ | ||
@@ -181,2 +186,6 @@ lookup: clientOptions.lookup, | ||
}); | ||
} else if (clientOptions?.connect) { | ||
this.#dispatcher = new Agent({ | ||
connect: clientOptions.connect, | ||
}); | ||
} | ||
@@ -186,2 +195,10 @@ initDiagnosticsChannel(); | ||
getDispatcher() { | ||
return this.#dispatcher ?? getGlobalDispatcher(); | ||
} | ||
setDispatcher(dispatcher: Dispatcher) { | ||
this.#dispatcher = dispatcher; | ||
} | ||
async request<T = any>(url: RequestURL, options?: RequestOptions) { | ||
@@ -188,0 +205,0 @@ return await this.#requestInternal<T>(url, options); |
@@ -7,2 +7,3 @@ import LRU from 'ylru'; | ||
const domainSocketHttpclients = new LRU(50); | ||
export async function request<T = any>(url: RequestURL, options?: RequestOptions) { | ||
@@ -26,3 +27,3 @@ if (options?.socketPath) { | ||
// export curl method is keep compatible with urlib.curl() | ||
// export curl method is keep compatible with urllib.curl() | ||
// ```ts | ||
@@ -58,3 +59,2 @@ // import * as urllib from 'urllib'; | ||
export default { | ||
@@ -61,0 +61,0 @@ request, |
197095
4193
308