@cloudpss/fetch 0.5.33 → 0.5.35
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-browser.d.ts +8 -8
- package/dist/impl-node.d.ts +6 -24
- package/dist/impl-node.js +8 -1
- package/dist/impl-node.js.map +1 -1
- package/dist/proxy-from-env.js.map +1 -1
- package/package.json +2 -2
- package/src/impl-node.ts +8 -2
- package/src/proxy-from-env.ts +3 -3
- package/tests/e2e.js +46 -0
- package/tsconfig.json +0 -2
package/dist/impl-browser.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
export declare const fetch: typeof globalThis.fetch;
|
|
2
2
|
export declare const Headers: {
|
|
3
|
-
new (init?: HeadersInit
|
|
3
|
+
new (init?: HeadersInit): Headers;
|
|
4
4
|
prototype: Headers;
|
|
5
5
|
};
|
|
6
6
|
export declare const Response: {
|
|
7
|
-
new (body?: BodyInit | null
|
|
7
|
+
new (body?: BodyInit | null, init?: ResponseInit): Response;
|
|
8
8
|
prototype: Response;
|
|
9
9
|
error(): Response;
|
|
10
|
-
json(data: any, init?: ResponseInit
|
|
11
|
-
redirect(url: string | URL, status?: number
|
|
10
|
+
json(data: any, init?: ResponseInit): Response;
|
|
11
|
+
redirect(url: string | URL, status?: number): Response;
|
|
12
12
|
};
|
|
13
13
|
export declare const Request: {
|
|
14
|
-
new (input:
|
|
14
|
+
new (input: RequestInfo | URL, init?: RequestInit): Request;
|
|
15
15
|
prototype: Request;
|
|
16
16
|
};
|
|
17
17
|
export declare const File: {
|
|
18
|
-
new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag
|
|
18
|
+
new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
|
|
19
19
|
prototype: File;
|
|
20
20
|
};
|
|
21
21
|
export declare const FormData: {
|
|
22
|
-
new (form?: HTMLFormElement
|
|
22
|
+
new (form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
|
|
23
23
|
prototype: FormData;
|
|
24
24
|
};
|
|
25
25
|
export declare const WebSocket: {
|
|
26
|
-
new (url: string | URL, protocols?: string | string[]
|
|
26
|
+
new (url: string | URL, protocols?: string | string[]): WebSocket;
|
|
27
27
|
prototype: WebSocket;
|
|
28
28
|
readonly CONNECTING: 0;
|
|
29
29
|
readonly OPEN: 1;
|
package/dist/impl-node.d.ts
CHANGED
|
@@ -1,31 +1,13 @@
|
|
|
1
1
|
/** 自动支持代理的 fetch */
|
|
2
2
|
export declare const fetch: typeof globalThis.fetch;
|
|
3
|
-
export declare const Headers:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare const
|
|
8
|
-
new (body?: BodyInit | null | undefined, init?: ResponseInit | undefined): Response;
|
|
9
|
-
prototype: Response;
|
|
10
|
-
error(): Response;
|
|
11
|
-
json(data: any, init?: ResponseInit | undefined): Response;
|
|
12
|
-
redirect(url: string | URL, status?: number | undefined): Response;
|
|
13
|
-
};
|
|
14
|
-
export declare const Request: {
|
|
15
|
-
new (input: URL | RequestInfo, init?: RequestInit | undefined): Request;
|
|
16
|
-
prototype: Request;
|
|
17
|
-
};
|
|
18
|
-
export declare const File: {
|
|
19
|
-
new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag | undefined): File;
|
|
20
|
-
prototype: File;
|
|
21
|
-
};
|
|
22
|
-
export declare const FormData: {
|
|
23
|
-
new (form?: HTMLFormElement | undefined, submitter?: HTMLElement | null | undefined): FormData;
|
|
24
|
-
prototype: FormData;
|
|
25
|
-
};
|
|
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;
|
|
26
8
|
/** 自动支持代理的 WebSocket */
|
|
27
9
|
export declare const WebSocket: {
|
|
28
|
-
new (url: string | URL, protocols?: string | string[]
|
|
10
|
+
new (url: string | URL, protocols?: string | string[]): WebSocket;
|
|
29
11
|
prototype: WebSocket;
|
|
30
12
|
readonly CONNECTING: 0;
|
|
31
13
|
readonly OPEN: 1;
|
package/dist/impl-node.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { debuglog } from 'node:util';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
2
3
|
import undici from 'undici';
|
|
3
4
|
import DispatcherBase from 'undici/lib/dispatcher/dispatcher-base.js';
|
|
4
5
|
import symbols from 'undici/lib/core/symbols.js';
|
|
@@ -73,7 +74,13 @@ else {
|
|
|
73
74
|
process.emitWarning('Undici WebSocket is not supported in this environment. Using "ws" as fallback.');
|
|
74
75
|
let ws;
|
|
75
76
|
try {
|
|
76
|
-
|
|
77
|
+
if (typeof require == 'function') {
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
79
|
+
ws = require('ws');
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
ws = createRequire(import.meta.url)('ws');
|
|
83
|
+
}
|
|
77
84
|
}
|
|
78
85
|
catch {
|
|
79
86
|
process.emitWarning('Failed to import "ws".');
|
package/dist/impl-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-node.js","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"impl-node.js","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-from-env.js","sourceRoot":"","sources":["../src/proxy-from-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,GAAG;CACY,CAAC,CAAC;AAE7B,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAElE;;GAEG;AACH,SAAS,MAAM,CAAC,GAAW;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AAClF,CAAC;AAQD,qBAAqB;AACrB,SAAS,YAAY,CAAC,OAA2B;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"proxy-from-env.js","sourceRoot":"","sources":["../src/proxy-from-env.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.
|
|
3
|
+
"version": "0.5.35",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"undici": "^6.
|
|
27
|
+
"undici": "^6.19.2"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/ws": "^8.5.10"
|
package/src/impl-node.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { debuglog, type DebugLoggerFunction } from 'node:util';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
2
3
|
import type { RequestInfo as NodeRequestInfo, RequestInit as NodeRequestInit, WebSocketInit, Dispatcher } from 'undici';
|
|
3
4
|
import undici from 'undici';
|
|
4
5
|
import DispatcherBase from 'undici/lib/dispatcher/dispatcher-base.js';
|
|
@@ -91,9 +92,14 @@ if (NodeWebSocket != null) {
|
|
|
91
92
|
} satisfies typeof globalThis.WebSocket as typeof globalThis.WebSocket;
|
|
92
93
|
} else {
|
|
93
94
|
process.emitWarning('Undici WebSocket is not supported in this environment. Using "ws" as fallback.');
|
|
94
|
-
let ws;
|
|
95
|
+
let ws: typeof import('ws') | undefined;
|
|
95
96
|
try {
|
|
96
|
-
|
|
97
|
+
if (typeof require == 'function') {
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
99
|
+
ws = require('ws') as typeof import('ws');
|
|
100
|
+
} else {
|
|
101
|
+
ws = createRequire(import.meta.url)('ws') as typeof import('ws');
|
|
102
|
+
}
|
|
97
103
|
} catch {
|
|
98
104
|
process.emitWarning('Failed to import "ws".');
|
|
99
105
|
}
|
package/src/proxy-from-env.ts
CHANGED
|
@@ -39,13 +39,13 @@ function parseNoProxy(noProxy: string | undefined): boolean | Pattern[] {
|
|
|
39
39
|
const trimmed = record.trim();
|
|
40
40
|
if (!trimmed) continue;
|
|
41
41
|
const parsed = /^(.+):(\d+)$/.exec(trimmed);
|
|
42
|
-
let parsedHostname = parsed ? parsed[1] : trimmed;
|
|
42
|
+
let parsedHostname = parsed ? parsed[1]! : trimmed;
|
|
43
43
|
if (parsedHostname.startsWith('*.')) {
|
|
44
44
|
parsedHostname = parsedHostname.slice(2);
|
|
45
45
|
} else if (parsedHostname.startsWith('.') || parsedHostname.startsWith('*')) {
|
|
46
46
|
parsedHostname = parsedHostname.slice(1);
|
|
47
47
|
}
|
|
48
|
-
const parsedPort = parsed ? Number.parseInt(parsed[2]) : undefined;
|
|
48
|
+
const parsedPort = parsed ? Number.parseInt(parsed[2]!) : undefined;
|
|
49
49
|
if (!parsedHostname && !parsedPort) {
|
|
50
50
|
all = true;
|
|
51
51
|
break;
|
|
@@ -109,7 +109,7 @@ export function getProxyForUrl(url: URL | string): string {
|
|
|
109
109
|
return '';
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
const portNumber = (port ? Number.parseInt(port) : DEFAULT_PORTS[protocol]) || 0;
|
|
112
|
+
const portNumber = (port ? Number.parseInt(port) : DEFAULT_PORTS[protocol]!) || 0;
|
|
113
113
|
if (!shouldProxy(hostname, portNumber)) {
|
|
114
114
|
return ''; // Don't proxy URLs that match NO_PROXY.
|
|
115
115
|
}
|
package/tests/e2e.js
CHANGED
|
@@ -72,4 +72,50 @@ describe('node fetch works', () => {
|
|
|
72
72
|
}),
|
|
73
73
|
);
|
|
74
74
|
});
|
|
75
|
+
|
|
76
|
+
it('can access websocket echo server', async () => {
|
|
77
|
+
const messages = /** @type {string[]} */ ([]);
|
|
78
|
+
const ws = new Node.WebSocket('wss://echo.websocket.org');
|
|
79
|
+
expect(ws.readyState).toBe(Node.WebSocket.CONNECTING);
|
|
80
|
+
await Index.connected(ws);
|
|
81
|
+
expect(ws.readyState).toBe(Node.WebSocket.OPEN);
|
|
82
|
+
await Index.connected(ws);
|
|
83
|
+
expect(ws.readyState).toBe(Node.WebSocket.OPEN);
|
|
84
|
+
ws.send('hello');
|
|
85
|
+
ws.onmessage = (e) => {
|
|
86
|
+
messages.push(e.data);
|
|
87
|
+
if (messages.length === 2) {
|
|
88
|
+
ws.close(1000);
|
|
89
|
+
expect(ws.readyState).toBe(Node.WebSocket.CLOSING);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
await Index.disconnected(ws);
|
|
93
|
+
expect(ws.readyState).toBe(Node.WebSocket.CLOSED);
|
|
94
|
+
await expect(() => Index.disconnected(ws)).rejects.toThrow('Socket is closed.');
|
|
95
|
+
expect(messages).toContain('hello');
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it('can throw on websocket error', async () => {
|
|
99
|
+
const ws = new Node.WebSocket('wss://echo.websocket.org');
|
|
100
|
+
await Index.connected(ws);
|
|
101
|
+
ws.close();
|
|
102
|
+
await expect(() => Index.disconnected(ws)).rejects.toThrow('NO_STATUS_RECEIVED');
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('can throw on websocket connection bas state', async () => {
|
|
106
|
+
const ws = new Node.WebSocket('wss://echo.websocket.org');
|
|
107
|
+
ws.close();
|
|
108
|
+
await expect(() => Index.connected(ws)).rejects.toThrow('Socket is closing.');
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it('can throw on websocket disconnection bas state', async () => {
|
|
112
|
+
const ws = new Node.WebSocket('wss://echo.websocket.org');
|
|
113
|
+
ws.close();
|
|
114
|
+
await expect(() => Index.disconnected(ws)).rejects.toThrow('Received network error or non-101 status code.');
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it('can throw on websocket connection error', async () => {
|
|
118
|
+
const ws = new Node.WebSocket('wss://example.org');
|
|
119
|
+
await expect(() => Index.connected(ws)).rejects.toThrow('Received network error or non-101 status code.');
|
|
120
|
+
});
|
|
75
121
|
});
|