@cloudpss/fetch 0.5.53 → 0.6.0-alpha.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.
@@ -13,6 +13,9 @@ export declare const fetch: typeof globalThis.fetch, Headers: {
13
13
  }, File: {
14
14
  new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
15
15
  prototype: File;
16
+ }, Blob: {
17
+ new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
18
+ prototype: Blob;
16
19
  }, FormData: {
17
20
  new (form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
18
21
  prototype: FormData;
@@ -24,5 +27,4 @@ export declare const fetch: typeof globalThis.fetch, Headers: {
24
27
  readonly CLOSING: 2;
25
28
  readonly CLOSED: 3;
26
29
  };
27
- export default fetch;
28
- //# sourceMappingURL=impl-browser.d.ts.map
30
+ //# sourceMappingURL=impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impl.d.ts","sourceRoot":"","sources":["../src/impl.ts"],"names":[],"mappings":"AAIA,eAAO,MAAQ,KAAK,2BAAE,OAAO;;;GAAE,QAAQ;;;;;;GAAE,OAAO;;;GAAE,IAAI;;;GAAE,IAAI;;;GAAE,QAAQ;;;GAAE,SAAS;;;;;;;CAAe,CAAC"}
package/dist/impl.js ADDED
@@ -0,0 +1,11 @@
1
+ if (typeof globalThis == 'undefined') {
2
+ throw new TypeError(`globalThis is not defined, you should load polyfill of globalThis.`);
3
+ }
4
+ export const { fetch, Headers, Response, Request, File, Blob, FormData, WebSocket } = globalThis;
5
+ if (typeof fetch != 'function') {
6
+ throw new TypeError(`fetch is not defined on the global object, you should load polyfill of fetch.`);
7
+ }
8
+ if (typeof WebSocket != 'function') {
9
+ throw new TypeError(`WebSocket is not defined on the global object, you should load polyfill of WebSocket.`);
10
+ }
11
+ //# sourceMappingURL=impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impl.js","sourceRoot":"","sources":["../src/impl.ts"],"names":[],"mappings":"AAAA,IAAI,OAAO,UAAU,IAAI,WAAW,EAAE,CAAC;IACnC,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;AACjG,IAAI,OAAO,KAAK,IAAI,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,SAAS,CAAC,+EAA+E,CAAC,CAAC;AACzG,CAAC;AACD,IAAI,OAAO,SAAS,IAAI,UAAU,EAAE,CAAC;IACjC,MAAM,IAAI,SAAS,CAAC,uFAAuF,CAAC,CAAC;AACjH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { File, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from '#impl';
1
+ export { File, Blob, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from './impl.js';
2
2
  export { connected, disconnect, disconnected, WebSocketStatusCode, WebSocketError, type WebSocketStatus, } from './ws-utils.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","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,EACH,SAAS,EACT,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,KAAK,eAAe,GACvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjH,OAAO,EACH,SAAS,EACT,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,KAAK,eAAe,GACvB,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { File, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from '#impl';
1
+ export { File, Blob, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from './impl.js';
2
2
  export { connected, disconnect, disconnected, WebSocketStatusCode, WebSocketError, } 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,KAAK,IAAI,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvG,OAAO,EACH,SAAS,EACT,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,GAEjB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjH,OAAO,EACH,SAAS,EACT,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,GAEjB,MAAM,eAAe,CAAC"}
package/dist/ws-utils.js CHANGED
@@ -186,10 +186,6 @@ export class WebSocketError extends Error {
186
186
  this.reason = reason;
187
187
  this.name = 'WebSocketError';
188
188
  }
189
- /** WebSocket connection close code */
190
- code;
191
- /** WebSocket connection close reason */
192
- reason;
193
189
  }
194
190
  /** 等待连接断开 */
195
191
  export async function disconnected(socket) {
@@ -1 +1 @@
1
- {"version":3,"file":"ws-utils.js","sourceRoot":"","sources":["../src/ws-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-utils.js","sourceRoot":"","sources":["../src/ws-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudpss/fetch",
3
- "version": "0.5.53",
3
+ "version": "0.6.0-alpha.1",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -10,28 +10,15 @@
10
10
  "type": "module",
11
11
  "sideEffects": false,
12
12
  "engines": {
13
- "node": ">=18.12.0"
13
+ "node": ">= 20"
14
14
  },
15
15
  "main": "dist/index.js",
16
16
  "module": "dist/index.js",
17
17
  "types": "dist/index.d.ts",
18
18
  "exports": "./dist/index.js",
19
- "imports": {
20
- "#impl": {
21
- "browser": "./dist/impl-browser.js",
22
- "node": "./dist/impl-node.js",
23
- "default": "./dist/impl-browser.js"
24
- }
25
- },
26
- "dependencies": {
27
- "undici": "^6.21.3"
28
- },
29
- "devDependencies": {
30
- "@types/ws": "^8.18.1"
31
- },
32
19
  "scripts": {
33
20
  "build": "pnpm clean && tsc --build --force",
34
21
  "clean": "rimraf dist",
35
- "test": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --experimental-vm-modules\" jest"
22
+ "test": "NODE_USE_ENV_PROXY=1 NODE_OPTIONS=\"${NODE_OPTIONS:-} --experimental-vm-modules\" jest"
36
23
  }
37
24
  }
package/src/impl.ts ADDED
@@ -0,0 +1,11 @@
1
+ if (typeof globalThis == 'undefined') {
2
+ throw new TypeError(`globalThis is not defined, you should load polyfill of globalThis.`);
3
+ }
4
+
5
+ export const { fetch, Headers, Response, Request, File, Blob, FormData, WebSocket } = globalThis;
6
+ if (typeof fetch != 'function') {
7
+ throw new TypeError(`fetch is not defined on the global object, you should load polyfill of fetch.`);
8
+ }
9
+ if (typeof WebSocket != 'function') {
10
+ throw new TypeError(`WebSocket is not defined on the global object, you should load polyfill of WebSocket.`);
11
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { File, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from '#impl';
1
+ export { File, Blob, FormData, fetch, fetch as default, Request, Response, Headers, WebSocket } from './impl.js';
2
2
  export {
3
3
  connected,
4
4
  disconnect,
package/tests/e2e.ts ADDED
@@ -0,0 +1,12 @@
1
+ import * as Index from '../dist/index.js';
2
+
3
+ it('exports defined', () => {
4
+ expect(typeof Index.File).toBe('function');
5
+ expect(typeof Index.FormData).toBe('function');
6
+ expect(typeof Index.Headers).toBe('function');
7
+ expect(typeof Index.Request).toBe('function');
8
+ expect(typeof Index.Response).toBe('function');
9
+ expect(typeof Index.WebSocket).toBe('function');
10
+ expect(typeof Index.fetch).toBe('function');
11
+ expect(Index.default).toBe(Index.fetch);
12
+ });
package/tsconfig.json CHANGED
@@ -1,8 +1,3 @@
1
1
  {
2
- "extends": "../tsconfig.build",
3
- "compilerOptions": {
4
- "paths": {
5
- "#impl": ["./src/impl-node.ts", "./src/impl-browser.ts"]
6
- }
7
- }
2
+ "extends": "../tsconfig.build"
8
3
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"impl-browser.d.ts","sourceRoot":"","sources":["../src/impl-browser.ts"],"names":[],"mappings":"AAIA,eAAO,MAAQ,KAAK,2BAAE,OAAO;;;GAAE,QAAQ;;;;;;GAAE,OAAO;;;GAAE,IAAI;;;GAAE,QAAQ;;;GAAE,SAAS;;;;;;;CAAe,CAAC;AAE3F,eAAe,KAAK,CAAC"}
@@ -1,6 +0,0 @@
1
- if (typeof globalThis == 'undefined' || typeof globalThis.fetch != 'function') {
2
- throw new TypeError(`globalThis or fetch is not defined on the global object, you should load polyfill of fetch.`);
3
- }
4
- export const { fetch, Headers, Response, Request, File, FormData, WebSocket } = globalThis;
5
- export default fetch;
6
- //# sourceMappingURL=impl-browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impl-browser.js","sourceRoot":"","sources":["../src/impl-browser.ts"],"names":[],"mappings":"AAAA,IAAI,OAAO,UAAU,IAAI,WAAW,IAAI,OAAO,UAAU,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;IAC5E,MAAM,IAAI,SAAS,CAAC,6FAA6F,CAAC,CAAC;AACvH,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;AAE3F,eAAe,KAAK,CAAC"}
@@ -1,18 +0,0 @@
1
- /** 自动支持代理的 fetch */
2
- export declare const fetch: typeof globalThis.fetch;
3
- export declare const Headers: typeof globalThis.Headers;
4
- export declare const Response: typeof globalThis.Response;
5
- export declare const Request: typeof globalThis.Request;
6
- export declare const File: typeof globalThis.File;
7
- export declare const FormData: typeof globalThis.FormData;
8
- /** 自动支持代理的 WebSocket */
9
- export declare const WebSocket: {
10
- new (url: string | URL, protocols?: string | string[]): WebSocket;
11
- prototype: WebSocket;
12
- readonly CONNECTING: 0;
13
- readonly OPEN: 1;
14
- readonly CLOSING: 2;
15
- readonly CLOSED: 3;
16
- };
17
- export default fetch;
18
- //# sourceMappingURL=impl-node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impl-node.d.ts","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"AAoEA,oBAAoB;AAEpB,eAAO,MAAM,KAAK,EAKb,OAAO,UAAU,CAAC,KAAK,CAAC;AAC7B,eAAO,MAAM,OAAO,EAAkB,OAAO,UAAU,CAAC,OAAO,CAAC;AAChE,eAAO,MAAM,QAAQ,EAA8B,OAAO,UAAU,CAAC,QAAQ,CAAC;AAC9E,eAAO,MAAM,OAAO,EAA6B,OAAO,UAAU,CAAC,OAAO,CAAC;AAC3E,eAAO,MAAM,IAAI,EAA0B,OAAO,UAAU,CAAC,IAAI,CAAC;AAClE,eAAO,MAAM,QAAQ,EAA8B,OAAO,UAAU,CAAC,QAAQ,CAAC;AAkC9E,wBAAwB;AACxB,eAAO,MAAM,SAAS;;;;;;;CAAc,CAAC;AAErC,eAAe,KAAK,CAAC"}
package/dist/impl-node.js DELETED
@@ -1,100 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- import { createRequire } from 'node:module';
3
- import undici from 'undici';
4
- import DispatcherBase from 'undici/lib/dispatcher/dispatcher-base.js';
5
- import symbols from 'undici/lib/core/symbols.js';
6
- import { getProxyForUrl } from './proxy-from-env.js';
7
- const { ProxyAgent, Agent, fetch: nodeFetch, Headers: NodeHeaders, Response: NodeResponse, Request: NodeRequest, WebSocket: NodeWebSocket, File: NodeFile, FormData: NodeFormData, } = undici;
8
- let logger = debuglog('cloudpss/fetch', (l) => (logger = l));
9
- const kAgents = Symbol('kAgents');
10
- const kAgent = Symbol('kAgent');
11
- /** 实现代理功能 */
12
- class AutoProxyAgent extends DispatcherBase {
13
- [kAgents] = new Map();
14
- [kAgent] = new Agent();
15
- /** 根据请求连接到代理 */
16
- [symbols.kDispatch](options, handler) {
17
- const { origin } = options;
18
- const proxy = origin ? getProxyForUrl(origin) : undefined;
19
- if (!proxy) {
20
- return this[kAgent].dispatch(options, handler);
21
- }
22
- logger(`auto proxy: to %s via %s`, origin, proxy);
23
- let agent = this[kAgents].get(proxy);
24
- if (!agent) {
25
- agent = new ProxyAgent(proxy);
26
- this[kAgents].set(proxy, agent);
27
- }
28
- return agent.dispatch(options, handler);
29
- }
30
- /** @inheritdoc */
31
- async [symbols.kClose]() {
32
- const tasks = [];
33
- for (const agent of this[kAgents].values()) {
34
- tasks.push(agent.close());
35
- }
36
- tasks.push(this[kAgent].close());
37
- await Promise.all(tasks);
38
- }
39
- /** @inheritdoc */
40
- async [symbols.kDestroy](err) {
41
- err ??= null;
42
- const tasks = [];
43
- for (const agent of this[kAgents].values()) {
44
- tasks.push(agent.destroy(err));
45
- }
46
- tasks.push(this[kAgent].destroy(err));
47
- await Promise.all(tasks);
48
- }
49
- }
50
- const dispatcher = new AutoProxyAgent();
51
- /** 自动支持代理的 fetch */
52
- // eslint-disable-next-line @typescript-eslint/promise-function-async
53
- export const fetch = function (url, init) {
54
- return nodeFetch(url, { ...init, dispatcher });
55
- };
56
- export const Headers = NodeHeaders;
57
- export const Response = NodeResponse;
58
- export const Request = NodeRequest;
59
- export const File = NodeFile;
60
- export const FormData = NodeFormData;
61
- let _WebSocket;
62
- if (NodeWebSocket != null) {
63
- _WebSocket = class WebSocket extends NodeWebSocket {
64
- constructor(url, protocols) {
65
- const options = {
66
- dispatcher,
67
- protocols,
68
- };
69
- super(url, options);
70
- }
71
- };
72
- }
73
- else {
74
- process.emitWarning('Undici WebSocket is not supported in this environment. Using "ws" as fallback.');
75
- let ws;
76
- try {
77
- if (typeof require == 'function') {
78
- ws = require('ws');
79
- }
80
- else {
81
- ws = createRequire(import.meta.url)('ws');
82
- }
83
- }
84
- catch {
85
- process.emitWarning('Failed to import "ws".');
86
- }
87
- if (typeof ws?.WebSocket == 'function') {
88
- _WebSocket = ws.WebSocket;
89
- }
90
- else if (typeof ws?.default?.WebSocket == 'function') {
91
- _WebSocket = ws?.default?.WebSocket;
92
- }
93
- else {
94
- process.emitWarning('Failed to import "ws.WebSocket".');
95
- }
96
- }
97
- /** 自动支持代理的 WebSocket */
98
- export const WebSocket = _WebSocket;
99
- export default fetch;
100
- //# sourceMappingURL=impl-node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impl-node.js","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Ref:
3
- * @see https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/
4
- */
5
- /**
6
- * getProxyForUrl
7
- */
8
- export declare function getProxyForUrl(url: URL | string): string;
9
- //# sourceMappingURL=proxy-from-env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy-from-env.d.ts","sourceRoot":"","sources":["../src/proxy-from-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6FH;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,MAAM,CA4BxD"}
@@ -1,120 +0,0 @@
1
- /**
2
- * Ref:
3
- * @see https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/
4
- */
5
- const DEFAULT_PORTS = Object.freeze({
6
- 'ftp:': 21,
7
- 'http:': 80,
8
- 'https:': 443,
9
- 'ws:': 80,
10
- 'wss:': 443,
11
- });
12
- const NEVER_PROXY_PROTOCOL = new Set(['file:', 'data:', 'blob:']);
13
- /**
14
- * Get the value for an environment variable.
15
- */
16
- function getEnv(key) {
17
- return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';
18
- }
19
- /** parse no proxy */
20
- function parseNoProxy(noProxy) {
21
- if (!noProxy)
22
- return true;
23
- noProxy = noProxy.trim().toLowerCase();
24
- if (noProxy === '*')
25
- return false;
26
- const records = noProxy.split(/[,\s]+/);
27
- const patterns = [];
28
- let all = false;
29
- for (const record of records) {
30
- const trimmed = record.trim();
31
- if (!trimmed)
32
- continue;
33
- const parsed = /^(.+):(\d+)$/.exec(trimmed);
34
- let parsedHostname = parsed ? parsed[1] : trimmed;
35
- if (parsedHostname.startsWith('*.')) {
36
- parsedHostname = parsedHostname.slice(2);
37
- }
38
- else if (parsedHostname.startsWith('.') || parsedHostname.startsWith('*')) {
39
- parsedHostname = parsedHostname.slice(1);
40
- }
41
- const parsedPort = parsed ? Number.parseInt(parsed[2]) : undefined;
42
- if (!parsedHostname && !parsedPort) {
43
- all = true;
44
- break;
45
- }
46
- // deduplicate
47
- if (patterns.some((item) => item.suffix === parsedHostname && item.port === parsedPort))
48
- continue;
49
- patterns.push({
50
- suffix: parsedHostname,
51
- port: parsedPort,
52
- });
53
- }
54
- if (all)
55
- return false;
56
- if (!patterns.length)
57
- return true;
58
- return patterns;
59
- }
60
- let noProxyPatternsCache;
61
- let noProxyCache;
62
- /**
63
- * Determines whether a given URL should be proxied.
64
- */
65
- function shouldProxy(hostname, port) {
66
- const noProxy = getEnv('npm_config_no_proxy') || getEnv('no_proxy');
67
- let patterns;
68
- if (noProxy === noProxyCache) {
69
- patterns = noProxyPatternsCache;
70
- }
71
- else {
72
- noProxyCache = noProxy;
73
- patterns = noProxyPatternsCache = parseNoProxy(noProxy);
74
- }
75
- if (typeof patterns == 'boolean') {
76
- return patterns;
77
- }
78
- for (const pattern of patterns) {
79
- if (pattern.port && pattern.port !== port)
80
- continue;
81
- if (hostname === pattern.suffix)
82
- return false;
83
- if (hostname.length > pattern.suffix.length &&
84
- hostname.endsWith(pattern.suffix) &&
85
- hostname[hostname.length - pattern.suffix.length - 1] === '.')
86
- return false;
87
- }
88
- return true;
89
- }
90
- /**
91
- * getProxyForUrl
92
- */
93
- export function getProxyForUrl(url) {
94
- try {
95
- if (typeof url === 'string')
96
- url = new URL(url);
97
- }
98
- catch {
99
- return '';
100
- }
101
- const { protocol, hostname, port } = url;
102
- if (!hostname || NEVER_PROXY_PROTOCOL.has(protocol)) {
103
- return '';
104
- }
105
- const portNumber = (port ? Number.parseInt(port) : DEFAULT_PORTS[protocol]) || 0;
106
- if (!shouldProxy(hostname, portNumber)) {
107
- return ''; // Don't proxy URLs that match NO_PROXY.
108
- }
109
- const proto = protocol.slice(0, -1);
110
- const proxy = getEnv('npm_config_' + proto + '_proxy') ||
111
- getEnv(proto + '_proxy') ||
112
- getEnv('npm_config_proxy') ||
113
- getEnv('all_proxy');
114
- if (proxy && !proxy.includes('://')) {
115
- // Missing scheme in proxy, default to the requested URL's scheme.
116
- return proto + '://' + proxy;
117
- }
118
- return proxy;
119
- }
120
- //# sourceMappingURL=proxy-from-env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy-from-env.js","sourceRoot":"","sources":["../src/proxy-from-env.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- if (typeof globalThis == 'undefined' || typeof globalThis.fetch != 'function') {
2
- throw new TypeError(`globalThis or fetch is not defined on the global object, you should load polyfill of fetch.`);
3
- }
4
-
5
- export const { fetch, Headers, Response, Request, File, FormData, WebSocket } = globalThis;
6
-
7
- export default fetch;
package/src/impl-node.ts DELETED
@@ -1,118 +0,0 @@
1
- import { debuglog, type DebugLoggerFunction } from 'node:util';
2
- import { createRequire } from 'node:module';
3
- import type { RequestInfo as NodeRequestInfo, RequestInit as NodeRequestInit, WebSocketInit, Dispatcher } from 'undici';
4
- import undici from 'undici';
5
- import DispatcherBase from 'undici/lib/dispatcher/dispatcher-base.js';
6
- import symbols from 'undici/lib/core/symbols.js';
7
- import { getProxyForUrl } from './proxy-from-env.js';
8
-
9
- const {
10
- ProxyAgent,
11
- Agent,
12
- fetch: nodeFetch,
13
- Headers: NodeHeaders,
14
- Response: NodeResponse,
15
- Request: NodeRequest,
16
- WebSocket: NodeWebSocket,
17
- File: NodeFile,
18
- FormData: NodeFormData,
19
- } = undici;
20
-
21
- let logger: DebugLoggerFunction = debuglog('cloudpss/fetch', (l) => (logger = l));
22
- const kAgents = Symbol('kAgents');
23
- const kAgent = Symbol('kAgent');
24
-
25
- /** 实现代理功能 */
26
- class AutoProxyAgent extends DispatcherBase {
27
- private readonly [kAgents] = new Map<string, undici.ProxyAgent>();
28
- private readonly [kAgent] = new Agent();
29
- /** 根据请求连接到代理 */
30
- override [symbols.kDispatch](options: Dispatcher.DispatchOptions, handler: Dispatcher.DispatchHandlers): boolean {
31
- const { origin } = options;
32
- const proxy = origin ? getProxyForUrl(origin) : undefined;
33
- if (!proxy) {
34
- return this[kAgent].dispatch(options, handler);
35
- }
36
- logger(`auto proxy: to %s via %s`, origin, proxy);
37
- let agent = this[kAgents].get(proxy);
38
- if (!agent) {
39
- agent = new ProxyAgent(proxy);
40
- this[kAgents].set(proxy, agent);
41
- }
42
- return agent.dispatch(options, handler);
43
- }
44
-
45
- /** @inheritdoc */
46
- override async [symbols.kClose](): Promise<void> {
47
- const tasks = [];
48
- for (const agent of this[kAgents].values()) {
49
- tasks.push(agent.close());
50
- }
51
- tasks.push(this[kAgent].close());
52
- await Promise.all(tasks);
53
- }
54
-
55
- /** @inheritdoc */
56
- override async [symbols.kDestroy](err?: Error | null): Promise<void> {
57
- err ??= null;
58
- const tasks = [];
59
- for (const agent of this[kAgents].values()) {
60
- tasks.push(agent.destroy(err));
61
- }
62
- tasks.push(this[kAgent].destroy(err));
63
- await Promise.all(tasks);
64
- }
65
- }
66
-
67
- const dispatcher = new AutoProxyAgent();
68
-
69
- /** 自动支持代理的 fetch */
70
- // eslint-disable-next-line @typescript-eslint/promise-function-async
71
- export const fetch = function (url: RequestInfo | URL, init?: RequestInit): Promise<Response> {
72
- return nodeFetch(
73
- url as NodeRequestInfo,
74
- { ...init, dispatcher } as NodeRequestInit,
75
- ) as unknown as Promise<Response>;
76
- } as typeof globalThis.fetch;
77
- export const Headers = NodeHeaders as typeof globalThis.Headers;
78
- export const Response = NodeResponse as unknown as typeof globalThis.Response;
79
- export const Request = NodeRequest as unknown as typeof globalThis.Request;
80
- export const File = NodeFile as unknown as typeof globalThis.File;
81
- export const FormData = NodeFormData as unknown as typeof globalThis.FormData;
82
-
83
- let _WebSocket: typeof globalThis.WebSocket | undefined;
84
- if (NodeWebSocket != null) {
85
- _WebSocket = class WebSocket extends (NodeWebSocket as unknown as typeof globalThis.WebSocket) {
86
- constructor(url: string | URL, protocols?: string | string[]) {
87
- const options: WebSocketInit = {
88
- dispatcher,
89
- protocols,
90
- };
91
- super(url, options as unknown as string[]);
92
- }
93
- } satisfies typeof globalThis.WebSocket as typeof globalThis.WebSocket;
94
- } else {
95
- process.emitWarning('Undici WebSocket is not supported in this environment. Using "ws" as fallback.');
96
- let ws: typeof import('ws') | undefined;
97
- try {
98
- if (typeof require == 'function') {
99
- ws = require('ws') as typeof import('ws');
100
- } else {
101
- ws = createRequire(import.meta.url)('ws') as typeof import('ws');
102
- }
103
- } catch {
104
- process.emitWarning('Failed to import "ws".');
105
- }
106
- if (typeof ws?.WebSocket == 'function') {
107
- _WebSocket = ws.WebSocket as unknown as typeof globalThis.WebSocket;
108
- } else if (typeof (ws?.default as typeof ws)?.WebSocket == 'function') {
109
- _WebSocket = (ws?.default as unknown as typeof ws)?.WebSocket as unknown as typeof globalThis.WebSocket;
110
- } else {
111
- process.emitWarning('Failed to import "ws.WebSocket".');
112
- }
113
- }
114
-
115
- /** 自动支持代理的 WebSocket */
116
- export const WebSocket = _WebSocket!;
117
-
118
- export default fetch;