urllib 4.6.12 → 4.7.0
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/dist/commonjs/HttpClient.js +1 -1
- package/dist/commonjs/fetch.d.ts +7 -2
- package/dist/commonjs/fetch.js +33 -17
- package/dist/esm/HttpClient.js +1 -1
- package/dist/esm/fetch.d.ts +7 -2
- package/dist/esm/fetch.js +33 -17
- package/dist/package.json +1 -1
- package/package.json +3 -3
- package/src/fetch.ts +39 -17
@@ -36,7 +36,7 @@ function noop() {
|
|
36
36
|
// noop
|
37
37
|
}
|
38
38
|
const debug = (0, node_util_1.debuglog)('urllib:HttpClient');
|
39
|
-
exports.VERSION = '4.
|
39
|
+
exports.VERSION = '4.7.0';
|
40
40
|
// 'node-urllib/4.0.0 Node.js/18.19.0 (darwin; x64)'
|
41
41
|
exports.HEADER_USER_AGENT = `node-urllib/${exports.VERSION} Node.js/${process.version.substring(1)} (${process.platform}; ${process.arch})`;
|
42
42
|
function getFileName(stream) {
|
package/dist/commonjs/fetch.d.ts
CHANGED
@@ -15,10 +15,15 @@ export type FetchResponseDiagnosticsMessage = {
|
|
15
15
|
};
|
16
16
|
export declare class FetchFactory {
|
17
17
|
#private;
|
18
|
-
|
19
|
-
|
18
|
+
setClientOptions(clientOptions: ClientOptions): void;
|
19
|
+
getDispatcher(): Dispatcher;
|
20
|
+
setDispatcher(dispatcher: Agent): void;
|
21
|
+
getDispatcherPoolStats(): Record<string, PoolStat>;
|
20
22
|
static setClientOptions(clientOptions: ClientOptions): void;
|
21
23
|
static getDispatcherPoolStats(): Record<string, PoolStat>;
|
24
|
+
fetch(input: RequestInfo, init?: UrllibRequestInit): Promise<Response>;
|
25
|
+
static getDispatcher(): Dispatcher;
|
26
|
+
static setDispatcher(dispatcher: Agent): void;
|
22
27
|
static fetch(input: RequestInfo, init?: UrllibRequestInit): Promise<Response>;
|
23
28
|
}
|
24
29
|
export declare const fetch: typeof FetchFactory.fetch;
|
package/dist/commonjs/fetch.js
CHANGED
@@ -21,17 +21,12 @@ const symbols_js_2 = __importDefault(require("./symbols.js"));
|
|
21
21
|
const BaseAgent_js_1 = require("./BaseAgent.js");
|
22
22
|
const debug = (0, node_util_1.debuglog)('urllib/fetch');
|
23
23
|
class FetchFactory {
|
24
|
-
|
25
|
-
|
26
|
-
static
|
27
|
-
|
28
|
-
}
|
29
|
-
static setDispatcher(dispatcher) {
|
30
|
-
FetchFactory.#dispatcher = dispatcher;
|
31
|
-
}
|
32
|
-
static setClientOptions(clientOptions) {
|
24
|
+
#dispatcher;
|
25
|
+
#opaqueLocalStorage = new node_async_hooks_1.AsyncLocalStorage();
|
26
|
+
static #instance = new FetchFactory();
|
27
|
+
setClientOptions(clientOptions) {
|
33
28
|
let dispatcherOption = {
|
34
|
-
opaqueLocalStorage:
|
29
|
+
opaqueLocalStorage: this.#opaqueLocalStorage,
|
35
30
|
};
|
36
31
|
let dispatcherClazz = BaseAgent_js_1.BaseAgent;
|
37
32
|
if (clientOptions?.lookup || clientOptions?.checkAddress) {
|
@@ -60,11 +55,17 @@ class FetchFactory {
|
|
60
55
|
};
|
61
56
|
dispatcherClazz = BaseAgent_js_1.BaseAgent;
|
62
57
|
}
|
63
|
-
|
58
|
+
this.#dispatcher = new dispatcherClazz(dispatcherOption);
|
64
59
|
(0, diagnosticsChannel_js_1.initDiagnosticsChannel)();
|
65
60
|
}
|
66
|
-
|
67
|
-
|
61
|
+
getDispatcher() {
|
62
|
+
return this.#dispatcher ?? (0, undici_1.getGlobalDispatcher)();
|
63
|
+
}
|
64
|
+
setDispatcher(dispatcher) {
|
65
|
+
this.#dispatcher = dispatcher;
|
66
|
+
}
|
67
|
+
getDispatcherPoolStats() {
|
68
|
+
const agent = this.getDispatcher();
|
68
69
|
// origin => Pool Instance
|
69
70
|
const clients = Reflect.get(agent, symbols_js_1.default.kClients);
|
70
71
|
const poolStatsMap = {};
|
@@ -88,10 +89,16 @@ class FetchFactory {
|
|
88
89
|
}
|
89
90
|
return poolStatsMap;
|
90
91
|
}
|
91
|
-
static
|
92
|
+
static setClientOptions(clientOptions) {
|
93
|
+
FetchFactory.#instance.setClientOptions(clientOptions);
|
94
|
+
}
|
95
|
+
static getDispatcherPoolStats() {
|
96
|
+
return FetchFactory.#instance.getDispatcherPoolStats();
|
97
|
+
}
|
98
|
+
async fetch(input, init) {
|
92
99
|
const requestStartTime = performance.now();
|
93
100
|
init = init ?? {};
|
94
|
-
init.dispatcher = init.dispatcher ??
|
101
|
+
init.dispatcher = init.dispatcher ?? this.#dispatcher;
|
95
102
|
const request = new undici_1.Request(input, init);
|
96
103
|
const requestId = (0, utils_js_1.globalId)('HttpClientRequest');
|
97
104
|
// https://developer.chrome.com/docs/devtools/network/reference/?utm_source=devtools#timing-explanation
|
@@ -174,7 +181,7 @@ class FetchFactory {
|
|
174
181
|
socketErrorRetries: 0,
|
175
182
|
};
|
176
183
|
try {
|
177
|
-
await
|
184
|
+
await this.#opaqueLocalStorage.run(internalOpaque, async () => {
|
178
185
|
res = await (0, undici_1.fetch)(request);
|
179
186
|
});
|
180
187
|
}
|
@@ -215,7 +222,16 @@ class FetchFactory {
|
|
215
222
|
});
|
216
223
|
return res;
|
217
224
|
}
|
225
|
+
static getDispatcher() {
|
226
|
+
return FetchFactory.#instance.getDispatcher();
|
227
|
+
}
|
228
|
+
static setDispatcher(dispatcher) {
|
229
|
+
FetchFactory.#instance.setDispatcher(dispatcher);
|
230
|
+
}
|
231
|
+
static async fetch(input, init) {
|
232
|
+
return FetchFactory.#instance.fetch(input, init);
|
233
|
+
}
|
218
234
|
}
|
219
235
|
exports.FetchFactory = FetchFactory;
|
220
236
|
exports.fetch = FetchFactory.fetch;
|
221
|
-
//# sourceMappingURL=data:application/json;base64,
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdURBQXFEO0FBQ3JELHlDQUFxQztBQUNyQyxtQ0FVZ0I7QUFDaEIsNkRBQTZEO0FBQzdELGFBQWE7QUFDYiw0RUFBdUQ7QUFDdkQsNkRBQTZEO0FBQzdELGFBQWE7QUFDYixrRUFBb0U7QUFDcEUsbURBT3lCO0FBQ3pCLGlEQUd3QjtBQUN4QixtRUFBaUU7QUFDakUseUNBQXdGO0FBQ3hGLDhEQUFtQztBQVNuQyxpREFBNkQ7QUFFN0QsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLGNBQWMsQ0FBQyxDQUFDO0FBa0J2QyxNQUFhLFlBQVk7SUFDdkIsV0FBVyxDQUFpQztJQUM1QyxtQkFBbUIsR0FBRyxJQUFJLG9DQUFpQixFQUFlLENBQUM7SUFFM0QsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXRDLGdCQUFnQixDQUFDLGFBQTRCO1FBQzNDLElBQUksZ0JBQWdCLEdBQXFCO1lBQ3ZDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDN0MsQ0FBQztRQUNGLElBQUksZUFBZSxHQUFpRCx3QkFBUyxDQUFDO1FBQzlFLElBQUksYUFBYSxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDekQsZ0JBQWdCLEdBQUc7Z0JBQ2pCLEdBQUcsZ0JBQWdCO2dCQUNuQixNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07Z0JBQzVCLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWTtnQkFDeEMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPO2dCQUM5QixPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU87YUFDWCxDQUFDO1lBQ3RCLGVBQWUsR0FBRyx3QkFBb0UsQ0FBQztRQUN6RixDQUFDO2FBQU0sSUFBSSxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7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
|
package/dist/esm/HttpClient.js
CHANGED
@@ -30,7 +30,7 @@ function noop() {
|
|
30
30
|
// noop
|
31
31
|
}
|
32
32
|
const debug = debuglog('urllib:HttpClient');
|
33
|
-
export const VERSION = '4.
|
33
|
+
export const VERSION = '4.7.0';
|
34
34
|
// 'node-urllib/4.0.0 Node.js/18.19.0 (darwin; x64)'
|
35
35
|
export const HEADER_USER_AGENT = `node-urllib/${VERSION} Node.js/${process.version.substring(1)} (${process.platform}; ${process.arch})`;
|
36
36
|
function getFileName(stream) {
|
package/dist/esm/fetch.d.ts
CHANGED
@@ -15,10 +15,15 @@ export type FetchResponseDiagnosticsMessage = {
|
|
15
15
|
};
|
16
16
|
export declare class FetchFactory {
|
17
17
|
#private;
|
18
|
-
|
19
|
-
|
18
|
+
setClientOptions(clientOptions: ClientOptions): void;
|
19
|
+
getDispatcher(): Dispatcher;
|
20
|
+
setDispatcher(dispatcher: Agent): void;
|
21
|
+
getDispatcherPoolStats(): Record<string, PoolStat>;
|
20
22
|
static setClientOptions(clientOptions: ClientOptions): void;
|
21
23
|
static getDispatcherPoolStats(): Record<string, PoolStat>;
|
24
|
+
fetch(input: RequestInfo, init?: UrllibRequestInit): Promise<Response>;
|
25
|
+
static getDispatcher(): Dispatcher;
|
26
|
+
static setDispatcher(dispatcher: Agent): void;
|
22
27
|
static fetch(input: RequestInfo, init?: UrllibRequestInit): Promise<Response>;
|
23
28
|
}
|
24
29
|
export declare const fetch: typeof FetchFactory.fetch;
|
package/dist/esm/fetch.js
CHANGED
@@ -15,17 +15,12 @@ import symbols from './symbols.js';
|
|
15
15
|
import { BaseAgent } from './BaseAgent.js';
|
16
16
|
const debug = debuglog('urllib/fetch');
|
17
17
|
export class FetchFactory {
|
18
|
-
|
19
|
-
|
20
|
-
static
|
21
|
-
|
22
|
-
}
|
23
|
-
static setDispatcher(dispatcher) {
|
24
|
-
FetchFactory.#dispatcher = dispatcher;
|
25
|
-
}
|
26
|
-
static setClientOptions(clientOptions) {
|
18
|
+
#dispatcher;
|
19
|
+
#opaqueLocalStorage = new AsyncLocalStorage();
|
20
|
+
static #instance = new FetchFactory();
|
21
|
+
setClientOptions(clientOptions) {
|
27
22
|
let dispatcherOption = {
|
28
|
-
opaqueLocalStorage:
|
23
|
+
opaqueLocalStorage: this.#opaqueLocalStorage,
|
29
24
|
};
|
30
25
|
let dispatcherClazz = BaseAgent;
|
31
26
|
if (clientOptions?.lookup || clientOptions?.checkAddress) {
|
@@ -54,11 +49,17 @@ export class FetchFactory {
|
|
54
49
|
};
|
55
50
|
dispatcherClazz = BaseAgent;
|
56
51
|
}
|
57
|
-
|
52
|
+
this.#dispatcher = new dispatcherClazz(dispatcherOption);
|
58
53
|
initDiagnosticsChannel();
|
59
54
|
}
|
60
|
-
|
61
|
-
|
55
|
+
getDispatcher() {
|
56
|
+
return this.#dispatcher ?? getGlobalDispatcher();
|
57
|
+
}
|
58
|
+
setDispatcher(dispatcher) {
|
59
|
+
this.#dispatcher = dispatcher;
|
60
|
+
}
|
61
|
+
getDispatcherPoolStats() {
|
62
|
+
const agent = this.getDispatcher();
|
62
63
|
// origin => Pool Instance
|
63
64
|
const clients = Reflect.get(agent, undiciSymbols.kClients);
|
64
65
|
const poolStatsMap = {};
|
@@ -82,10 +83,16 @@ export class FetchFactory {
|
|
82
83
|
}
|
83
84
|
return poolStatsMap;
|
84
85
|
}
|
85
|
-
static
|
86
|
+
static setClientOptions(clientOptions) {
|
87
|
+
FetchFactory.#instance.setClientOptions(clientOptions);
|
88
|
+
}
|
89
|
+
static getDispatcherPoolStats() {
|
90
|
+
return FetchFactory.#instance.getDispatcherPoolStats();
|
91
|
+
}
|
92
|
+
async fetch(input, init) {
|
86
93
|
const requestStartTime = performance.now();
|
87
94
|
init = init ?? {};
|
88
|
-
init.dispatcher = init.dispatcher ??
|
95
|
+
init.dispatcher = init.dispatcher ?? this.#dispatcher;
|
89
96
|
const request = new Request(input, init);
|
90
97
|
const requestId = globalId('HttpClientRequest');
|
91
98
|
// https://developer.chrome.com/docs/devtools/network/reference/?utm_source=devtools#timing-explanation
|
@@ -168,7 +175,7 @@ export class FetchFactory {
|
|
168
175
|
socketErrorRetries: 0,
|
169
176
|
};
|
170
177
|
try {
|
171
|
-
await
|
178
|
+
await this.#opaqueLocalStorage.run(internalOpaque, async () => {
|
172
179
|
res = await UndiciFetch(request);
|
173
180
|
});
|
174
181
|
}
|
@@ -209,6 +216,15 @@ export class FetchFactory {
|
|
209
216
|
});
|
210
217
|
return res;
|
211
218
|
}
|
219
|
+
static getDispatcher() {
|
220
|
+
return FetchFactory.#instance.getDispatcher();
|
221
|
+
}
|
222
|
+
static setDispatcher(dispatcher) {
|
223
|
+
FetchFactory.#instance.setDispatcher(dispatcher);
|
224
|
+
}
|
225
|
+
static async fetch(input, init) {
|
226
|
+
return FetchFactory.#instance.fetch(input, init);
|
227
|
+
}
|
212
228
|
}
|
213
229
|
export const fetch = FetchFactory.fetch;
|
214
|
-
//# sourceMappingURL=data:application/json;base64,
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsS0FBSyxJQUFJLFdBQVcsRUFHcEIsT0FBTyxFQUdQLG1CQUFtQixHQUdwQixNQUFNLFFBQVEsQ0FBQztBQUNoQiw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUNMLFFBQVEsR0FNVCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxTQUFTLEdBRVYsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEYsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBU25DLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBa0J2QyxNQUFNLE9BQU8sWUFBWTtJQUN2QixXQUFXLENBQWlDO0lBQzVDLG1CQUFtQixHQUFHLElBQUksaUJBQWlCLEVBQWUsQ0FBQztJQUUzRCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFdEMsZ0JBQWdCLENBQUMsYUFBNEI7UUFDM0MsSUFBSSxnQkFBZ0IsR0FBcUI7WUFDdkMsa0JBQWtCLEVB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
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "urllib",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.7.0",
|
4
4
|
"publishConfig": {
|
5
5
|
"tag": "latest"
|
6
6
|
},
|
@@ -54,8 +54,8 @@
|
|
54
54
|
"ylru": "^2.0.0"
|
55
55
|
},
|
56
56
|
"devDependencies": {
|
57
|
-
"@arethetypeswrong/cli": "^0.
|
58
|
-
"@eggjs/tsconfig": "^
|
57
|
+
"@arethetypeswrong/cli": "^0.18.0",
|
58
|
+
"@eggjs/tsconfig": "^2.0.0",
|
59
59
|
"@tsconfig/node18": "^18.2.1",
|
60
60
|
"@tsconfig/strictest": "^2.0.2",
|
61
61
|
"@types/busboy": "^1.5.0",
|
package/src/fetch.ts
CHANGED
@@ -61,20 +61,14 @@ export type FetchResponseDiagnosticsMessage = {
|
|
61
61
|
};
|
62
62
|
|
63
63
|
export class FetchFactory {
|
64
|
-
|
65
|
-
|
64
|
+
#dispatcher?: Dispatcher.ComposedDispatcher;
|
65
|
+
#opaqueLocalStorage = new AsyncLocalStorage<FetchOpaque>();
|
66
66
|
|
67
|
-
static
|
68
|
-
return FetchFactory.#dispatcher ?? getGlobalDispatcher();
|
69
|
-
}
|
67
|
+
static #instance = new FetchFactory();
|
70
68
|
|
71
|
-
|
72
|
-
FetchFactory.#dispatcher = dispatcher;
|
73
|
-
}
|
74
|
-
|
75
|
-
static setClientOptions(clientOptions: ClientOptions) {
|
69
|
+
setClientOptions(clientOptions: ClientOptions) {
|
76
70
|
let dispatcherOption: BaseAgentOptions = {
|
77
|
-
opaqueLocalStorage:
|
71
|
+
opaqueLocalStorage: this.#opaqueLocalStorage,
|
78
72
|
};
|
79
73
|
let dispatcherClazz: new (options: BaseAgentOptions) => BaseAgent = BaseAgent;
|
80
74
|
if (clientOptions?.lookup || clientOptions?.checkAddress) {
|
@@ -101,12 +95,20 @@ export class FetchFactory {
|
|
101
95
|
} as HttpAgentOptions;
|
102
96
|
dispatcherClazz = BaseAgent;
|
103
97
|
}
|
104
|
-
|
98
|
+
this.#dispatcher = new dispatcherClazz(dispatcherOption);
|
105
99
|
initDiagnosticsChannel();
|
106
100
|
}
|
107
101
|
|
108
|
-
|
109
|
-
|
102
|
+
getDispatcher() {
|
103
|
+
return this.#dispatcher ?? getGlobalDispatcher();
|
104
|
+
}
|
105
|
+
|
106
|
+
setDispatcher(dispatcher: Agent) {
|
107
|
+
this.#dispatcher = dispatcher;
|
108
|
+
}
|
109
|
+
|
110
|
+
getDispatcherPoolStats() {
|
111
|
+
const agent = this.getDispatcher();
|
110
112
|
// origin => Pool Instance
|
111
113
|
const clients: Map<string, WeakRef<Pool>> | undefined = Reflect.get(agent, undiciSymbols.kClients);
|
112
114
|
const poolStatsMap: Record<string, PoolStat> = {};
|
@@ -131,10 +133,18 @@ export class FetchFactory {
|
|
131
133
|
return poolStatsMap;
|
132
134
|
}
|
133
135
|
|
134
|
-
static
|
136
|
+
static setClientOptions(clientOptions: ClientOptions) {
|
137
|
+
FetchFactory.#instance.setClientOptions(clientOptions);
|
138
|
+
}
|
139
|
+
|
140
|
+
static getDispatcherPoolStats() {
|
141
|
+
return FetchFactory.#instance.getDispatcherPoolStats();
|
142
|
+
}
|
143
|
+
|
144
|
+
async fetch(input: RequestInfo, init?: UrllibRequestInit): Promise<Response> {
|
135
145
|
const requestStartTime = performance.now();
|
136
146
|
init = init ?? {};
|
137
|
-
init.dispatcher = init.dispatcher ??
|
147
|
+
init.dispatcher = init.dispatcher ?? this.#dispatcher;
|
138
148
|
const request = new Request(input, init);
|
139
149
|
const requestId = globalId('HttpClientRequest');
|
140
150
|
// https://developer.chrome.com/docs/devtools/network/reference/?utm_source=devtools#timing-explanation
|
@@ -219,7 +229,7 @@ export class FetchFactory {
|
|
219
229
|
socketErrorRetries: 0,
|
220
230
|
} as any as RawResponseWithMeta;
|
221
231
|
try {
|
222
|
-
await
|
232
|
+
await this.#opaqueLocalStorage.run(internalOpaque, async () => {
|
223
233
|
res = await UndiciFetch(request);
|
224
234
|
});
|
225
235
|
} catch (e: any) {
|
@@ -262,6 +272,18 @@ export class FetchFactory {
|
|
262
272
|
} as ResponseDiagnosticsMessage);
|
263
273
|
return res!;
|
264
274
|
}
|
275
|
+
|
276
|
+
static getDispatcher() {
|
277
|
+
return FetchFactory.#instance.getDispatcher();
|
278
|
+
}
|
279
|
+
|
280
|
+
static setDispatcher(dispatcher: Agent) {
|
281
|
+
FetchFactory.#instance.setDispatcher(dispatcher);
|
282
|
+
}
|
283
|
+
|
284
|
+
static async fetch(input: RequestInfo, init?: UrllibRequestInit): Promise<Response> {
|
285
|
+
return FetchFactory.#instance.fetch(input, init);
|
286
|
+
}
|
265
287
|
}
|
266
288
|
|
267
289
|
export const fetch = FetchFactory.fetch;
|