@cloudpss/fetch 0.5.34 → 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/proxy-from-env.js.map +1 -1
- package/package.json +2 -2
- package/src/proxy-from-env.ts +3 -3
- package/tests/e2e.js +46 -0
|
@@ -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.19.
|
|
27
|
+
"undici": "^6.19.2"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/ws": "^8.5.10"
|
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
|
});
|