@cloudpss/fetch 0.5.0 → 0.5.1
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/impl-node.d.ts +5 -8
- package/dist/impl-node.js +11 -14
- package/dist/impl-node.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/impl-node.ts +22 -18
- package/src/index.ts +1 -1
package/dist/impl-node.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** 自动支持代理的 fetch */
|
|
2
|
-
export declare
|
|
2
|
+
export declare const fetch: typeof globalThis.fetch;
|
|
3
3
|
export declare const Headers: {
|
|
4
4
|
new (init?: HeadersInit | undefined): Headers;
|
|
5
5
|
prototype: Headers;
|
|
@@ -23,16 +23,13 @@ export declare const FormData: {
|
|
|
23
23
|
new (form?: HTMLFormElement | undefined, submitter?: HTMLElement | null | undefined): FormData;
|
|
24
24
|
prototype: FormData;
|
|
25
25
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
/** 自动支持代理的 WebSocket */
|
|
27
|
+
export declare const WebSocket: {
|
|
28
|
+
new (url: string | URL, protocols?: string | string[] | undefined): WebSocket;
|
|
29
|
+
prototype: WebSocket;
|
|
29
30
|
readonly CONNECTING: 0;
|
|
30
31
|
readonly OPEN: 1;
|
|
31
32
|
readonly CLOSING: 2;
|
|
32
33
|
readonly CLOSED: 3;
|
|
33
34
|
};
|
|
34
|
-
/** 自动支持代理的 WebSocket */
|
|
35
|
-
export declare class WebSocket extends WebSocket_base {
|
|
36
|
-
constructor(url: string, protocols?: string | string[], headers?: HeadersInit);
|
|
37
|
-
}
|
|
38
35
|
export default fetch;
|
package/dist/impl-node.js
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
var _a, _b;
|
|
2
1
|
import { debuglog } from 'node:util';
|
|
3
|
-
import
|
|
4
|
-
import { Dispatcher, ProxyAgent, Agent } from 'undici';
|
|
2
|
+
import undici from 'undici';
|
|
5
3
|
import DispatcherBase from 'undici/lib/dispatcher-base.js';
|
|
6
4
|
import symbols from 'undici/lib/core/symbols.js';
|
|
7
|
-
import
|
|
5
|
+
import proxyFromEnv from 'proxy-from-env';
|
|
6
|
+
const { ProxyAgent, Agent, fetch: nodeFetch, Headers: NodeHeaders, Response: NodeResponse, Request: NodeRequest, WebSocket: NodeWebSocket, File: NodeFile, FormData: NodeFormData, } = undici;
|
|
7
|
+
const { getProxyForUrl } = proxyFromEnv;
|
|
8
8
|
const logger = debuglog('cloudpss/fetch');
|
|
9
9
|
const kAgents = Symbol('kAgents');
|
|
10
10
|
const kAgent = Symbol('kAgent');
|
|
11
11
|
/** 实现代理功能 */
|
|
12
12
|
class AutoProxyAgent extends DispatcherBase {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this[_a] = new Map();
|
|
16
|
-
this[_b] = new Agent();
|
|
17
|
-
}
|
|
13
|
+
[kAgents] = new Map();
|
|
14
|
+
[kAgent] = new Agent();
|
|
18
15
|
/** 根据请求连接到代理 */
|
|
19
|
-
[
|
|
16
|
+
[symbols.kDispatch](options, handler) {
|
|
20
17
|
const { origin } = options;
|
|
21
18
|
const proxy = origin ? getProxyForUrl(String(origin)) : undefined;
|
|
22
19
|
logger(`auto proxy: to %s via %s`, origin, proxy);
|
|
@@ -53,16 +50,16 @@ class AutoProxyAgent extends DispatcherBase {
|
|
|
53
50
|
}
|
|
54
51
|
const dispatcher = new AutoProxyAgent();
|
|
55
52
|
/** 自动支持代理的 fetch */
|
|
56
|
-
export function
|
|
53
|
+
export const fetch = function (url, init) {
|
|
57
54
|
return nodeFetch(url, { ...init, dispatcher });
|
|
58
|
-
}
|
|
55
|
+
};
|
|
59
56
|
export const Headers = NodeHeaders;
|
|
60
57
|
export const Response = NodeResponse;
|
|
61
58
|
export const Request = NodeRequest;
|
|
62
59
|
export const File = NodeFile;
|
|
63
60
|
export const FormData = NodeFormData;
|
|
64
61
|
/** 自动支持代理的 WebSocket */
|
|
65
|
-
export class WebSocket extends NodeWebSocket {
|
|
62
|
+
export const WebSocket = class WebSocket extends NodeWebSocket {
|
|
66
63
|
constructor(url, protocols, headers) {
|
|
67
64
|
const options = {
|
|
68
65
|
dispatcher,
|
|
@@ -71,6 +68,6 @@ export class WebSocket extends NodeWebSocket {
|
|
|
71
68
|
};
|
|
72
69
|
super(url, options);
|
|
73
70
|
}
|
|
74
|
-
}
|
|
71
|
+
};
|
|
75
72
|
export default fetch;
|
|
76
73
|
//# sourceMappingURL=impl-node.js.map
|
package/dist/impl-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-node.js","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"impl-node.js","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { File, FormData, fetch, Request, Response, Headers, WebSocket } from '#impl';
|
|
1
|
+
export { File, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from '#impl';
|
|
2
2
|
export { connected, disconnected, WEB_SOCKET_STATUS_CODES } from './ws-utils.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { File, FormData, fetch, Request, Response, Headers, WebSocket } from '#impl';
|
|
1
|
+
export { File, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from '#impl';
|
|
2
2
|
export { connected, disconnected, WEB_SOCKET_STATUS_CODES } from './ws-utils.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudpss/fetch",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"proxy-from-env": "^1.1.0",
|
|
38
|
-
"undici": "^5.27.
|
|
38
|
+
"undici": "^5.27.2"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@types/proxy-from-env": "^1.0.
|
|
41
|
+
"@types/proxy-from-env": "^1.0.4"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/src/impl-node.ts
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { debuglog } from 'node:util';
|
|
2
|
-
import type { RequestInfo as NodeRequestInfo, RequestInit as NodeRequestInit, WebSocketInit } from 'undici';
|
|
3
|
-
import
|
|
4
|
-
fetch as nodeFetch,
|
|
5
|
-
Headers as NodeHeaders,
|
|
6
|
-
Response as NodeResponse,
|
|
7
|
-
Request as NodeRequest,
|
|
8
|
-
WebSocket as NodeWebSocket,
|
|
9
|
-
File as NodeFile,
|
|
10
|
-
FormData as NodeFormData,
|
|
11
|
-
} from 'undici';
|
|
12
|
-
import { Dispatcher, ProxyAgent, Agent } from 'undici';
|
|
2
|
+
import type { RequestInfo as NodeRequestInfo, RequestInit as NodeRequestInit, WebSocketInit, Dispatcher } from 'undici';
|
|
3
|
+
import undici from 'undici';
|
|
13
4
|
import DispatcherBase from 'undici/lib/dispatcher-base.js';
|
|
14
5
|
import symbols from 'undici/lib/core/symbols.js';
|
|
15
|
-
import
|
|
6
|
+
import proxyFromEnv from 'proxy-from-env';
|
|
7
|
+
|
|
8
|
+
const {
|
|
9
|
+
ProxyAgent,
|
|
10
|
+
Agent,
|
|
11
|
+
fetch: nodeFetch,
|
|
12
|
+
Headers: NodeHeaders,
|
|
13
|
+
Response: NodeResponse,
|
|
14
|
+
Request: NodeRequest,
|
|
15
|
+
WebSocket: NodeWebSocket,
|
|
16
|
+
File: NodeFile,
|
|
17
|
+
FormData: NodeFormData,
|
|
18
|
+
} = undici;
|
|
19
|
+
const { getProxyForUrl } = proxyFromEnv;
|
|
16
20
|
|
|
17
21
|
const logger = debuglog('cloudpss/fetch');
|
|
18
22
|
const kAgents = Symbol('kAgents');
|
|
@@ -20,7 +24,7 @@ const kAgent = Symbol('kAgent');
|
|
|
20
24
|
|
|
21
25
|
/** 实现代理功能 */
|
|
22
26
|
class AutoProxyAgent extends DispatcherBase {
|
|
23
|
-
private readonly [kAgents] = new Map<string, ProxyAgent>();
|
|
27
|
+
private readonly [kAgents] = new Map<string, undici.ProxyAgent>();
|
|
24
28
|
private readonly [kAgent] = new Agent();
|
|
25
29
|
/** 根据请求连接到代理 */
|
|
26
30
|
override [symbols.kDispatch](options: Dispatcher.DispatchOptions, handler: Dispatcher.DispatchHandlers): boolean {
|
|
@@ -63,12 +67,12 @@ class AutoProxyAgent extends DispatcherBase {
|
|
|
63
67
|
const dispatcher = new AutoProxyAgent();
|
|
64
68
|
|
|
65
69
|
/** 自动支持代理的 fetch */
|
|
66
|
-
export function
|
|
70
|
+
export const fetch = function (url: RequestInfo | URL, init?: RequestInit): Promise<Response> {
|
|
67
71
|
return nodeFetch(
|
|
68
72
|
url as NodeRequestInfo,
|
|
69
73
|
{ ...init, dispatcher } as NodeRequestInit,
|
|
70
74
|
) as unknown as Promise<Response>;
|
|
71
|
-
}
|
|
75
|
+
} as typeof globalThis.fetch;
|
|
72
76
|
export const Headers = NodeHeaders as typeof globalThis.Headers;
|
|
73
77
|
export const Response = NodeResponse as unknown as typeof globalThis.Response;
|
|
74
78
|
export const Request = NodeRequest as unknown as typeof globalThis.Request;
|
|
@@ -76,8 +80,8 @@ export const File = NodeFile as unknown as typeof globalThis.File;
|
|
|
76
80
|
export const FormData = NodeFormData as unknown as typeof globalThis.FormData;
|
|
77
81
|
|
|
78
82
|
/** 自动支持代理的 WebSocket */
|
|
79
|
-
export class WebSocket extends (NodeWebSocket as unknown as typeof globalThis.WebSocket) {
|
|
80
|
-
constructor(url: string, protocols?: string | string[], headers?: HeadersInit) {
|
|
83
|
+
export const WebSocket = class WebSocket extends (NodeWebSocket as unknown as typeof globalThis.WebSocket) {
|
|
84
|
+
constructor(url: string | URL, protocols?: string | string[], headers?: HeadersInit) {
|
|
81
85
|
const options: WebSocketInit = {
|
|
82
86
|
dispatcher,
|
|
83
87
|
protocols,
|
|
@@ -85,6 +89,6 @@ export class WebSocket extends (NodeWebSocket as unknown as typeof globalThis.We
|
|
|
85
89
|
};
|
|
86
90
|
super(url, options as unknown as string[]);
|
|
87
91
|
}
|
|
88
|
-
}
|
|
92
|
+
} satisfies typeof globalThis.WebSocket as typeof globalThis.WebSocket;
|
|
89
93
|
|
|
90
94
|
export default fetch;
|
package/src/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { File, FormData, fetch, Request, Response, Headers, WebSocket } from '#impl';
|
|
1
|
+
export { File, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from '#impl';
|
|
2
2
|
export { connected, disconnected, WEB_SOCKET_STATUS_CODES } from './ws-utils.js';
|