@ureq/impl-axios 0.0.3 → 0.0.4
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/README.md +4 -4
- package/dist/index.js +26 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +26 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ import { Request } from '@ureq/core';
|
|
|
19
19
|
import { AxiosRequestor } from '@ureq/impl-axios';
|
|
20
20
|
|
|
21
21
|
const request = new Request(new AxiosRequestor({
|
|
22
|
-
baseURL: 'https://
|
|
22
|
+
baseURL: 'https://jsonplaceholder.typicode.com/todos/1',
|
|
23
23
|
headers: {
|
|
24
24
|
'Content-Type': 'application/json'
|
|
25
25
|
},
|
|
@@ -75,7 +75,7 @@ interface AxiosRequestorConfig {
|
|
|
75
75
|
|
|
76
76
|
```typescript
|
|
77
77
|
const requestor = new AxiosRequestor({
|
|
78
|
-
baseURL: 'https://
|
|
78
|
+
baseURL: 'https://jsonplaceholder.typicode.com/todos/1'
|
|
79
79
|
});
|
|
80
80
|
|
|
81
81
|
const request = new Request(requestor);
|
|
@@ -86,7 +86,7 @@ const data = await request.get('/users');
|
|
|
86
86
|
|
|
87
87
|
```typescript
|
|
88
88
|
const requestor = new AxiosRequestor({
|
|
89
|
-
baseURL: 'https://
|
|
89
|
+
baseURL: 'https://jsonplaceholder.typicode.com/todos/1',
|
|
90
90
|
headers: {
|
|
91
91
|
'Authorization': 'Bearer your-token'
|
|
92
92
|
}
|
|
@@ -97,7 +97,7 @@ const requestor = new AxiosRequestor({
|
|
|
97
97
|
|
|
98
98
|
```typescript
|
|
99
99
|
const requestor = new AxiosRequestor({
|
|
100
|
-
baseURL: 'https://
|
|
100
|
+
baseURL: 'https://jsonplaceholder.typicode.com/todos/1',
|
|
101
101
|
withCredentials: true // 携带 Cookie
|
|
102
102
|
});
|
|
103
103
|
```
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,14 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
8
8
|
var axios__default = /*#__PURE__*/_interopDefault(axios);
|
|
9
9
|
|
|
10
10
|
// src/index.ts
|
|
11
|
+
var responseTypeMap = {
|
|
12
|
+
json: "json",
|
|
13
|
+
text: "text",
|
|
14
|
+
blob: "blob",
|
|
15
|
+
arraybuffer: "arraybuffer",
|
|
16
|
+
formData: "json"
|
|
17
|
+
// axios 不直接支持 formData,回退到 json
|
|
18
|
+
};
|
|
11
19
|
var AxiosRequestor = class {
|
|
12
20
|
constructor(options) {
|
|
13
21
|
this.instance = axios__default.default.create({
|
|
@@ -17,16 +25,23 @@ var AxiosRequestor = class {
|
|
|
17
25
|
});
|
|
18
26
|
}
|
|
19
27
|
convertOptions(options) {
|
|
28
|
+
if (!options) return {};
|
|
29
|
+
const { responseType, responseTransformer, ...restOptions } = options;
|
|
30
|
+
const axiosResponseType = responseType ? responseTypeMap[responseType] || "json" : void 0;
|
|
20
31
|
return {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
responseType: options?.responseType,
|
|
24
|
-
...options
|
|
32
|
+
...restOptions,
|
|
33
|
+
responseType: axiosResponseType
|
|
25
34
|
};
|
|
26
35
|
}
|
|
27
|
-
convertResponse(response) {
|
|
36
|
+
async convertResponse(response, options) {
|
|
37
|
+
let data;
|
|
38
|
+
if (options?.responseTransformer) {
|
|
39
|
+
data = await options.responseTransformer(response);
|
|
40
|
+
} else {
|
|
41
|
+
data = response.data;
|
|
42
|
+
}
|
|
28
43
|
return {
|
|
29
|
-
data
|
|
44
|
+
data,
|
|
30
45
|
status: response.status,
|
|
31
46
|
statusText: response.statusText,
|
|
32
47
|
headers: response.headers
|
|
@@ -38,7 +53,7 @@ var AxiosRequestor = class {
|
|
|
38
53
|
async get(url, options) {
|
|
39
54
|
try {
|
|
40
55
|
const response = await this.instance.get(url, this.convertOptions(options));
|
|
41
|
-
return this.convertResponse(response);
|
|
56
|
+
return this.convertResponse(response, options);
|
|
42
57
|
} catch (error) {
|
|
43
58
|
this.handleError(error, "GET", url);
|
|
44
59
|
}
|
|
@@ -46,7 +61,7 @@ var AxiosRequestor = class {
|
|
|
46
61
|
async post(url, data, options) {
|
|
47
62
|
try {
|
|
48
63
|
const response = await this.instance.post(url, data, this.convertOptions(options));
|
|
49
|
-
return this.convertResponse(response);
|
|
64
|
+
return this.convertResponse(response, options);
|
|
50
65
|
} catch (error) {
|
|
51
66
|
this.handleError(error, "POST", url);
|
|
52
67
|
}
|
|
@@ -54,7 +69,7 @@ var AxiosRequestor = class {
|
|
|
54
69
|
async put(url, data, options) {
|
|
55
70
|
try {
|
|
56
71
|
const response = await this.instance.put(url, data, this.convertOptions(options));
|
|
57
|
-
return this.convertResponse(response);
|
|
72
|
+
return this.convertResponse(response, options);
|
|
58
73
|
} catch (error) {
|
|
59
74
|
this.handleError(error, "PUT", url);
|
|
60
75
|
}
|
|
@@ -62,7 +77,7 @@ var AxiosRequestor = class {
|
|
|
62
77
|
async delete(url, options) {
|
|
63
78
|
try {
|
|
64
79
|
const response = await this.instance.delete(url, this.convertOptions(options));
|
|
65
|
-
return this.convertResponse(response);
|
|
80
|
+
return this.convertResponse(response, options);
|
|
66
81
|
} catch (error) {
|
|
67
82
|
this.handleError(error, "DELETE", url);
|
|
68
83
|
}
|
|
@@ -70,7 +85,7 @@ var AxiosRequestor = class {
|
|
|
70
85
|
async patch(url, data, options) {
|
|
71
86
|
try {
|
|
72
87
|
const response = await this.instance.patch(url, data, this.convertOptions(options));
|
|
73
|
-
return this.convertResponse(response);
|
|
88
|
+
return this.convertResponse(response, options);
|
|
74
89
|
} catch (error) {
|
|
75
90
|
this.handleError(error, "PATCH", url);
|
|
76
91
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["axios","createRequestError"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["axios","createRequestError"],"mappings":"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","file":"index.js","sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, ResponseType as AxiosResponseType } from 'axios';\nimport { Requestor, RequestOptions, Response, createRequestError } from '@ureq/core';\n\nexport interface AxiosRequestorOptions {\n baseURL?: string;\n timeout?: number;\n headers?: Record<string, string>;\n}\n\n// ResponseType 映射:将 ureq 的 responseType 转换为 axios 的 responseType\nconst responseTypeMap: Record<string, AxiosResponseType> = {\n json: 'json',\n text: 'text',\n blob: 'blob',\n arraybuffer: 'arraybuffer',\n formData: 'json', // axios 不直接支持 formData,回退到 json\n};\n\nexport class AxiosRequestor implements Requestor {\n private instance: AxiosInstance;\n\n constructor(options?: AxiosRequestorOptions) {\n this.instance = axios.create({\n baseURL: options?.baseURL,\n timeout: options?.timeout,\n headers: options?.headers,\n });\n }\n\n private convertOptions(options?: RequestOptions): AxiosRequestConfig {\n if (!options) return {};\n\n // 解构出 ureq 特有的选项,避免传递给 axios\n const { responseType, responseTransformer, ...restOptions } = options;\n\n const axiosResponseType = responseType\n ? responseTypeMap[responseType] || 'json'\n : undefined;\n\n return {\n ...restOptions,\n responseType: axiosResponseType,\n };\n }\n\n private async convertResponse<T>(\n response: any,\n options?: RequestOptions\n ): Promise<Response<T>> {\n let data: T;\n\n // 优先使用自定义转换器\n if (options?.responseTransformer) {\n data = await options.responseTransformer(response);\n } else {\n data = response.data;\n }\n\n return {\n data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n private handleError(error: any, method?: string, url?: string): never {\n throw createRequestError(error, { method, url });\n }\n\n async get<T>(url: string, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.get(url, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'GET', url);\n }\n }\n\n async post<T>(url: string, data?: any, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.post(url, data, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'POST', url);\n }\n }\n\n async put<T>(url: string, data?: any, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.put(url, data, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'PUT', url);\n }\n }\n\n async delete<T>(url: string, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.delete(url, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'DELETE', url);\n }\n }\n\n async patch<T>(url: string, data?: any, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.patch(url, data, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'PATCH', url);\n }\n }\n} "]}
|
package/dist/index.mjs
CHANGED
|
@@ -2,6 +2,14 @@ import axios from 'axios';
|
|
|
2
2
|
import { createRequestError } from '@ureq/core';
|
|
3
3
|
|
|
4
4
|
// src/index.ts
|
|
5
|
+
var responseTypeMap = {
|
|
6
|
+
json: "json",
|
|
7
|
+
text: "text",
|
|
8
|
+
blob: "blob",
|
|
9
|
+
arraybuffer: "arraybuffer",
|
|
10
|
+
formData: "json"
|
|
11
|
+
// axios 不直接支持 formData,回退到 json
|
|
12
|
+
};
|
|
5
13
|
var AxiosRequestor = class {
|
|
6
14
|
constructor(options) {
|
|
7
15
|
this.instance = axios.create({
|
|
@@ -11,16 +19,23 @@ var AxiosRequestor = class {
|
|
|
11
19
|
});
|
|
12
20
|
}
|
|
13
21
|
convertOptions(options) {
|
|
22
|
+
if (!options) return {};
|
|
23
|
+
const { responseType, responseTransformer, ...restOptions } = options;
|
|
24
|
+
const axiosResponseType = responseType ? responseTypeMap[responseType] || "json" : void 0;
|
|
14
25
|
return {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
responseType: options?.responseType,
|
|
18
|
-
...options
|
|
26
|
+
...restOptions,
|
|
27
|
+
responseType: axiosResponseType
|
|
19
28
|
};
|
|
20
29
|
}
|
|
21
|
-
convertResponse(response) {
|
|
30
|
+
async convertResponse(response, options) {
|
|
31
|
+
let data;
|
|
32
|
+
if (options?.responseTransformer) {
|
|
33
|
+
data = await options.responseTransformer(response);
|
|
34
|
+
} else {
|
|
35
|
+
data = response.data;
|
|
36
|
+
}
|
|
22
37
|
return {
|
|
23
|
-
data
|
|
38
|
+
data,
|
|
24
39
|
status: response.status,
|
|
25
40
|
statusText: response.statusText,
|
|
26
41
|
headers: response.headers
|
|
@@ -32,7 +47,7 @@ var AxiosRequestor = class {
|
|
|
32
47
|
async get(url, options) {
|
|
33
48
|
try {
|
|
34
49
|
const response = await this.instance.get(url, this.convertOptions(options));
|
|
35
|
-
return this.convertResponse(response);
|
|
50
|
+
return this.convertResponse(response, options);
|
|
36
51
|
} catch (error) {
|
|
37
52
|
this.handleError(error, "GET", url);
|
|
38
53
|
}
|
|
@@ -40,7 +55,7 @@ var AxiosRequestor = class {
|
|
|
40
55
|
async post(url, data, options) {
|
|
41
56
|
try {
|
|
42
57
|
const response = await this.instance.post(url, data, this.convertOptions(options));
|
|
43
|
-
return this.convertResponse(response);
|
|
58
|
+
return this.convertResponse(response, options);
|
|
44
59
|
} catch (error) {
|
|
45
60
|
this.handleError(error, "POST", url);
|
|
46
61
|
}
|
|
@@ -48,7 +63,7 @@ var AxiosRequestor = class {
|
|
|
48
63
|
async put(url, data, options) {
|
|
49
64
|
try {
|
|
50
65
|
const response = await this.instance.put(url, data, this.convertOptions(options));
|
|
51
|
-
return this.convertResponse(response);
|
|
66
|
+
return this.convertResponse(response, options);
|
|
52
67
|
} catch (error) {
|
|
53
68
|
this.handleError(error, "PUT", url);
|
|
54
69
|
}
|
|
@@ -56,7 +71,7 @@ var AxiosRequestor = class {
|
|
|
56
71
|
async delete(url, options) {
|
|
57
72
|
try {
|
|
58
73
|
const response = await this.instance.delete(url, this.convertOptions(options));
|
|
59
|
-
return this.convertResponse(response);
|
|
74
|
+
return this.convertResponse(response, options);
|
|
60
75
|
} catch (error) {
|
|
61
76
|
this.handleError(error, "DELETE", url);
|
|
62
77
|
}
|
|
@@ -64,7 +79,7 @@ var AxiosRequestor = class {
|
|
|
64
79
|
async patch(url, data, options) {
|
|
65
80
|
try {
|
|
66
81
|
const response = await this.instance.patch(url, data, this.convertOptions(options));
|
|
67
|
-
return this.convertResponse(response);
|
|
82
|
+
return this.convertResponse(response, options);
|
|
68
83
|
} catch (error) {
|
|
69
84
|
this.handleError(error, "PATCH", url);
|
|
70
85
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, ResponseType as AxiosResponseType } from 'axios';\nimport { Requestor, RequestOptions, Response, createRequestError } from '@ureq/core';\n\nexport interface AxiosRequestorOptions {\n baseURL?: string;\n timeout?: number;\n headers?: Record<string, string>;\n}\n\n// ResponseType 映射:将 ureq 的 responseType 转换为 axios 的 responseType\nconst responseTypeMap: Record<string, AxiosResponseType> = {\n json: 'json',\n text: 'text',\n blob: 'blob',\n arraybuffer: 'arraybuffer',\n formData: 'json', // axios 不直接支持 formData,回退到 json\n};\n\nexport class AxiosRequestor implements Requestor {\n private instance: AxiosInstance;\n\n constructor(options?: AxiosRequestorOptions) {\n this.instance = axios.create({\n baseURL: options?.baseURL,\n timeout: options?.timeout,\n headers: options?.headers,\n });\n }\n\n private convertOptions(options?: RequestOptions): AxiosRequestConfig {\n if (!options) return {};\n\n // 解构出 ureq 特有的选项,避免传递给 axios\n const { responseType, responseTransformer, ...restOptions } = options;\n\n const axiosResponseType = responseType\n ? responseTypeMap[responseType] || 'json'\n : undefined;\n\n return {\n ...restOptions,\n responseType: axiosResponseType,\n };\n }\n\n private async convertResponse<T>(\n response: any,\n options?: RequestOptions\n ): Promise<Response<T>> {\n let data: T;\n\n // 优先使用自定义转换器\n if (options?.responseTransformer) {\n data = await options.responseTransformer(response);\n } else {\n data = response.data;\n }\n\n return {\n data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n private handleError(error: any, method?: string, url?: string): never {\n throw createRequestError(error, { method, url });\n }\n\n async get<T>(url: string, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.get(url, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'GET', url);\n }\n }\n\n async post<T>(url: string, data?: any, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.post(url, data, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'POST', url);\n }\n }\n\n async put<T>(url: string, data?: any, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.put(url, data, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'PUT', url);\n }\n }\n\n async delete<T>(url: string, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.delete(url, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'DELETE', url);\n }\n }\n\n async patch<T>(url: string, data?: any, options?: RequestOptions): Promise<Response<T>> {\n try {\n const response = await this.instance.patch(url, data, this.convertOptions(options));\n return this.convertResponse(response, options);\n } catch (error) {\n this.handleError(error, 'PATCH', url);\n }\n }\n} "]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ureq/impl-axios",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Axios implementation for universal request library",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"axios": "^1.0.0",
|
|
23
|
-
"@ureq/core": "0.0.
|
|
23
|
+
"@ureq/core": "0.0.4"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "^20.0.0",
|
|
@@ -31,6 +31,6 @@
|
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "tsup",
|
|
33
33
|
"dev": "tsup --watch",
|
|
34
|
-
"test": "vitest"
|
|
34
|
+
"test": "vitest --run"
|
|
35
35
|
}
|
|
36
36
|
}
|