@cloudpss/fetch 0.5.55 → 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.
- package/dist/{impl-browser.d.ts → impl.d.ts} +4 -2
- package/dist/impl.d.ts.map +1 -0
- package/dist/impl.js +11 -0
- package/dist/impl.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ws-utils.js +0 -4
- package/dist/ws-utils.js.map +1 -1
- package/package.json +3 -16
- package/src/impl.ts +11 -0
- package/src/index.ts +1 -1
- package/tests/e2e.ts +12 -0
- package/tsconfig.json +1 -6
- package/dist/impl-browser.d.ts.map +0 -1
- package/dist/impl-browser.js +0 -6
- package/dist/impl-browser.js.map +0 -1
- package/dist/impl-node.d.ts +0 -18
- package/dist/impl-node.d.ts.map +0 -1
- package/dist/impl-node.js +0 -54
- package/dist/impl-node.js.map +0 -1
- package/src/impl-browser.ts +0 -7
- package/src/impl-node.ts +0 -66
- package/tests/e2e.js +0 -75
- /package/tests/ws/{connencted.js → connencted.ts} +0 -0
- /package/tests/ws/{disconnect.js → disconnect.ts} +0 -0
- /package/tests/ws/{e2e.js → e2e.ts} +0 -0
- /package/tests/ws/{state.js → state.ts} +0 -0
|
@@ -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
|
-
|
|
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
|
package/dist/impl.js.map
ADDED
|
@@ -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 '
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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 '
|
|
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,
|
|
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) {
|
package/dist/ws-utils.js.map
CHANGED
|
@@ -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.
|
|
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": ">=
|
|
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
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 +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"}
|
package/dist/impl-browser.js
DELETED
|
@@ -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
|
package/dist/impl-browser.js.map
DELETED
|
@@ -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"}
|
package/dist/impl-node.d.ts
DELETED
|
@@ -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
|
package/dist/impl-node.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"impl-node.d.ts","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"AAgBA,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,54 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';
|
|
2
|
-
import undici, { EnvHttpProxyAgent } from 'undici';
|
|
3
|
-
const { fetch: nodeFetch, Headers: NodeHeaders, Response: NodeResponse, Request: NodeRequest, WebSocket: NodeWebSocket, File: NodeFile, FormData: NodeFormData, } = undici;
|
|
4
|
-
const dispatcher = new EnvHttpProxyAgent();
|
|
5
|
-
/** 自动支持代理的 fetch */
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
7
|
-
export const fetch = function (url, init) {
|
|
8
|
-
return nodeFetch(url, { ...init, dispatcher });
|
|
9
|
-
};
|
|
10
|
-
export const Headers = NodeHeaders;
|
|
11
|
-
export const Response = NodeResponse;
|
|
12
|
-
export const Request = NodeRequest;
|
|
13
|
-
export const File = NodeFile;
|
|
14
|
-
export const FormData = NodeFormData;
|
|
15
|
-
let _WebSocket;
|
|
16
|
-
if (NodeWebSocket != null) {
|
|
17
|
-
_WebSocket = class WebSocket extends NodeWebSocket {
|
|
18
|
-
constructor(url, protocols) {
|
|
19
|
-
const options = {
|
|
20
|
-
dispatcher,
|
|
21
|
-
protocols,
|
|
22
|
-
};
|
|
23
|
-
super(url, options);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
process.emitWarning('Undici WebSocket is not supported in this environment. Using "ws" as fallback.');
|
|
29
|
-
let ws;
|
|
30
|
-
try {
|
|
31
|
-
if (typeof require == 'function') {
|
|
32
|
-
ws = require('ws');
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
ws = createRequire(import.meta.url)('ws');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
process.emitWarning('Failed to import "ws".');
|
|
40
|
-
}
|
|
41
|
-
if (typeof ws?.WebSocket == 'function') {
|
|
42
|
-
_WebSocket = ws.WebSocket;
|
|
43
|
-
}
|
|
44
|
-
else if (typeof ws?.default?.WebSocket == 'function') {
|
|
45
|
-
_WebSocket = ws?.default?.WebSocket;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
process.emitWarning('Failed to import "ws.WebSocket".');
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/** 自动支持代理的 WebSocket */
|
|
52
|
-
export const WebSocket = _WebSocket;
|
|
53
|
-
export default fetch;
|
|
54
|
-
//# sourceMappingURL=impl-node.js.map
|
package/dist/impl-node.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"impl-node.js","sourceRoot":"","sources":["../src/impl-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,MAAM,EAAE,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,EACF,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,GACzB,GAAG,MAAM,CAAC;AAEX,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAE3C,oBAAoB;AACpB,qEAAqE;AACrE,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,GAAsB,EAAE,IAAkB;IACrE,OAAO,SAAS,CACZ,GAAsB,EACtB,EAAE,GAAG,IAAI,EAAE,UAAU,EAAqB,CACb,CAAC;AACtC,CAA4B,CAAC;AAC7B,MAAM,CAAC,MAAM,OAAO,GAAG,WAAwC,CAAC;AAChE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAqD,CAAC;AAC9E,MAAM,CAAC,MAAM,OAAO,GAAG,WAAmD,CAAC;AAC3E,MAAM,CAAC,MAAM,IAAI,GAAG,QAA6C,CAAC;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAqD,CAAC;AAE9E,IAAI,UAAmD,CAAC;AACxD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;IACxB,UAAU,GAAG,MAAM,SAAU,SAAS,aAAwD;QAC1F,YAAY,GAAiB,EAAE,SAA6B;YACxD,MAAM,OAAO,GAAkB;gBAC3B,UAAU;gBACV,SAAS;aACZ,CAAC;YACF,KAAK,CAAC,GAAG,EAAE,OAA8B,CAAC,CAAC;QAC/C,CAAC;KACiE,CAAC;AAC3E,CAAC;KAAM,CAAC;IACJ,OAAO,CAAC,WAAW,CAAC,gFAAgF,CAAC,CAAC;IACtG,IAAI,EAAmC,CAAC;IACxC,IAAI,CAAC;QACD,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE,CAAC;YAC/B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAwB,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAwB,CAAC;QACrE,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,EAAE,EAAE,SAAS,IAAI,UAAU,EAAE,CAAC;QACrC,UAAU,GAAG,EAAE,CAAC,SAAmD,CAAC;IACxE,CAAC;SAAM,IAAI,OAAQ,EAAE,EAAE,OAAqB,EAAE,SAAS,IAAI,UAAU,EAAE,CAAC;QACpE,UAAU,GAAI,EAAE,EAAE,OAAgC,EAAE,SAAmD,CAAC;IAC5G,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IAC5D,CAAC;AACL,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,MAAM,SAAS,GAAG,UAAW,CAAC;AAErC,eAAe,KAAK,CAAC"}
|
package/src/impl-browser.ts
DELETED
|
@@ -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,66 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';
|
|
2
|
-
import type { RequestInfo as NodeRequestInfo, RequestInit as NodeRequestInit, WebSocketInit } from 'undici';
|
|
3
|
-
import undici, { EnvHttpProxyAgent } from 'undici';
|
|
4
|
-
|
|
5
|
-
const {
|
|
6
|
-
fetch: nodeFetch,
|
|
7
|
-
Headers: NodeHeaders,
|
|
8
|
-
Response: NodeResponse,
|
|
9
|
-
Request: NodeRequest,
|
|
10
|
-
WebSocket: NodeWebSocket,
|
|
11
|
-
File: NodeFile,
|
|
12
|
-
FormData: NodeFormData,
|
|
13
|
-
} = undici;
|
|
14
|
-
|
|
15
|
-
const dispatcher = new EnvHttpProxyAgent();
|
|
16
|
-
|
|
17
|
-
/** 自动支持代理的 fetch */
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
19
|
-
export const fetch = function (url: RequestInfo | URL, init?: RequestInit): Promise<Response> {
|
|
20
|
-
return nodeFetch(
|
|
21
|
-
url as NodeRequestInfo,
|
|
22
|
-
{ ...init, dispatcher } as NodeRequestInit,
|
|
23
|
-
) as unknown as Promise<Response>;
|
|
24
|
-
} as typeof globalThis.fetch;
|
|
25
|
-
export const Headers = NodeHeaders as typeof globalThis.Headers;
|
|
26
|
-
export const Response = NodeResponse as unknown as typeof globalThis.Response;
|
|
27
|
-
export const Request = NodeRequest as unknown as typeof globalThis.Request;
|
|
28
|
-
export const File = NodeFile as unknown as typeof globalThis.File;
|
|
29
|
-
export const FormData = NodeFormData as unknown as typeof globalThis.FormData;
|
|
30
|
-
|
|
31
|
-
let _WebSocket: typeof globalThis.WebSocket | undefined;
|
|
32
|
-
if (NodeWebSocket != null) {
|
|
33
|
-
_WebSocket = class WebSocket extends (NodeWebSocket as unknown as typeof globalThis.WebSocket) {
|
|
34
|
-
constructor(url: string | URL, protocols?: string | string[]) {
|
|
35
|
-
const options: WebSocketInit = {
|
|
36
|
-
dispatcher,
|
|
37
|
-
protocols,
|
|
38
|
-
};
|
|
39
|
-
super(url, options as unknown as string[]);
|
|
40
|
-
}
|
|
41
|
-
} satisfies typeof globalThis.WebSocket as typeof globalThis.WebSocket;
|
|
42
|
-
} else {
|
|
43
|
-
process.emitWarning('Undici WebSocket is not supported in this environment. Using "ws" as fallback.');
|
|
44
|
-
let ws: typeof import('ws') | undefined;
|
|
45
|
-
try {
|
|
46
|
-
if (typeof require == 'function') {
|
|
47
|
-
ws = require('ws') as typeof import('ws');
|
|
48
|
-
} else {
|
|
49
|
-
ws = createRequire(import.meta.url)('ws') as typeof import('ws');
|
|
50
|
-
}
|
|
51
|
-
} catch {
|
|
52
|
-
process.emitWarning('Failed to import "ws".');
|
|
53
|
-
}
|
|
54
|
-
if (typeof ws?.WebSocket == 'function') {
|
|
55
|
-
_WebSocket = ws.WebSocket as unknown as typeof globalThis.WebSocket;
|
|
56
|
-
} else if (typeof (ws?.default as typeof ws)?.WebSocket == 'function') {
|
|
57
|
-
_WebSocket = (ws?.default as unknown as typeof ws)?.WebSocket as unknown as typeof globalThis.WebSocket;
|
|
58
|
-
} else {
|
|
59
|
-
process.emitWarning('Failed to import "ws.WebSocket".');
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/** 自动支持代理的 WebSocket */
|
|
64
|
-
export const WebSocket = _WebSocket!;
|
|
65
|
-
|
|
66
|
-
export default fetch;
|
package/tests/e2e.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import * as Index from '../dist/index.js';
|
|
2
|
-
import * as Node from '../dist/impl-node.js';
|
|
3
|
-
import * as Browser from '../dist/impl-browser.js';
|
|
4
|
-
|
|
5
|
-
describe('exports defined', () => {
|
|
6
|
-
it('index', () => {
|
|
7
|
-
expect(typeof Index.File).toBe('function');
|
|
8
|
-
expect(typeof Index.FormData).toBe('function');
|
|
9
|
-
expect(typeof Index.Headers).toBe('function');
|
|
10
|
-
expect(typeof Index.Request).toBe('function');
|
|
11
|
-
expect(typeof Index.Response).toBe('function');
|
|
12
|
-
expect(typeof Index.WebSocket).toBe('function');
|
|
13
|
-
expect(typeof Index.fetch).toBe('function');
|
|
14
|
-
expect(Index.default).toBe(Index.fetch);
|
|
15
|
-
});
|
|
16
|
-
it('node', () => {
|
|
17
|
-
expect(typeof Node.File).toBe('function');
|
|
18
|
-
expect(typeof Node.FormData).toBe('function');
|
|
19
|
-
expect(typeof Node.Headers).toBe('function');
|
|
20
|
-
expect(typeof Node.Request).toBe('function');
|
|
21
|
-
expect(typeof Node.Response).toBe('function');
|
|
22
|
-
expect(typeof Node.WebSocket).toBe('function');
|
|
23
|
-
expect(typeof Node.fetch).toBe('function');
|
|
24
|
-
expect(Node.default).toBe(Node.fetch);
|
|
25
|
-
});
|
|
26
|
-
it('browser', () => {
|
|
27
|
-
expect(typeof Browser.File).toBe('function');
|
|
28
|
-
expect(typeof Browser.FormData).toBe('function');
|
|
29
|
-
expect(typeof Browser.Headers).toBe('function');
|
|
30
|
-
expect(typeof Browser.Request).toBe('function');
|
|
31
|
-
expect(typeof Browser.Response).toBe('function');
|
|
32
|
-
// expect(typeof Browser.WebSocket).toBe('function');
|
|
33
|
-
expect(typeof Browser.fetch).toBe('function');
|
|
34
|
-
expect(Browser.default).toBe(Browser.fetch);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
describe('node fetch works', () => {
|
|
39
|
-
it('can visit http://downloads.cloudpss.net', async () => {
|
|
40
|
-
const resp = await Node.fetch('http://downloads.cloudpss.net', {
|
|
41
|
-
headers: { connection: 'close' },
|
|
42
|
-
});
|
|
43
|
-
expect(resp).toBeInstanceOf(Node.Response);
|
|
44
|
-
expect(resp.url).toBe('https://downloads.cloudpss.net/');
|
|
45
|
-
const data = await resp.json();
|
|
46
|
-
expect(data).toEqual(
|
|
47
|
-
expect.objectContaining({
|
|
48
|
-
name: '/',
|
|
49
|
-
path: '/',
|
|
50
|
-
items: expect.any(Array),
|
|
51
|
-
can_go_up: false,
|
|
52
|
-
}),
|
|
53
|
-
);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it('can visit via proxy', async () => {
|
|
57
|
-
const resp = await Node.fetch('http://api.github.com/repos/CloudPSS/docs', {
|
|
58
|
-
headers: { connection: 'close' },
|
|
59
|
-
});
|
|
60
|
-
expect(resp).toBeInstanceOf(Node.Response);
|
|
61
|
-
expect(resp.url).toBe('https://api.github.com/repos/CloudPSS/docs');
|
|
62
|
-
const data = await resp.json();
|
|
63
|
-
expect(data).toEqual(
|
|
64
|
-
expect.objectContaining({
|
|
65
|
-
id: expect.any(Number),
|
|
66
|
-
name: expect.any(String),
|
|
67
|
-
full_name: expect.any(String),
|
|
68
|
-
owner: expect.objectContaining({
|
|
69
|
-
id: expect.any(Number),
|
|
70
|
-
login: expect.any(String),
|
|
71
|
-
}),
|
|
72
|
-
}),
|
|
73
|
-
);
|
|
74
|
-
});
|
|
75
|
-
});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|