@swiftcrab/request 1.0.3 → 1.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 +81 -80
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,80 +1,81 @@
|
|
|
1
|
-
## 使用示例
|
|
2
|
-
|
|
3
|
-
- 安装: pnpm add @swiftcrab/request
|
|
4
|
-
|
|
5
|
-
#### 创建 overFetch.ts
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import {
|
|
9
|
-
RequestClient,
|
|
10
|
-
formatToken,
|
|
11
|
-
defaultResponseInterceptor,
|
|
12
|
-
authenticateResponseInterceptor,
|
|
13
|
-
errorMessageResponseInterceptor,
|
|
14
|
-
} from '@swiftcrab/request'
|
|
15
|
-
|
|
16
|
-
const baseURL = '/api'
|
|
17
|
-
|
|
18
|
-
function createRequestClient(
|
|
19
|
-
const client = new RequestClient({
|
|
20
|
-
baseURL,
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
/** 处理重新认证, 常用于回到登录页 */
|
|
24
|
-
async function doReAuthenticate() {}
|
|
25
|
-
|
|
26
|
-
/** 处理刷新token */
|
|
27
|
-
async function doRefreshToken() {
|
|
28
|
-
return ''
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// 请求头处理
|
|
32
|
-
client.addRequestInterceptor({
|
|
33
|
-
fulfilled: config => {
|
|
34
|
-
return config
|
|
35
|
-
},
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
// 返回数据格式 { data: any, info: { code: number, message: string, status: boolean } }
|
|
39
|
-
client.addResponseInterceptor(
|
|
40
|
-
defaultResponseInterceptor({
|
|
41
|
-
/** 响应数据中代表访问结果的字段名 */
|
|
42
|
-
codeField: 'code',
|
|
43
|
-
/** 响应数据中装载实际数据的字段名,或者提供一个函数从响应数据中解析需要返回的数据 */
|
|
44
|
-
dataField: 'data',
|
|
45
|
-
/** 当codeField所指定的字段值与successCode相同时,代表接口访问成功。如果提供一个函数,则返回true代表接口访问成功 */
|
|
46
|
-
successCode: 200,
|
|
47
|
-
}),
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
client.addResponseInterceptor(
|
|
51
|
-
authenticateResponseInterceptor({
|
|
52
|
-
client,
|
|
53
|
-
doReAuthenticate,
|
|
54
|
-
doRefreshToken,
|
|
55
|
-
/** 是否启用刷新令牌 */
|
|
56
|
-
enableRefreshToken: true,
|
|
57
|
-
}),
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
client.addResponseInterceptor(
|
|
61
|
-
errorMessageResponseInterceptor((msg: string, error) => {
|
|
62
|
-
/** 处理错误消息 */
|
|
63
|
-
}),
|
|
64
|
-
)
|
|
65
|
-
|
|
66
|
-
return client
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export const requestClient = createRequestClient(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
requestClient
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
1
|
+
## 使用示例
|
|
2
|
+
|
|
3
|
+
- 安装: pnpm add @swiftcrab/request
|
|
4
|
+
|
|
5
|
+
#### 创建 overFetch.ts
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import {
|
|
9
|
+
RequestClient,
|
|
10
|
+
formatToken,
|
|
11
|
+
defaultResponseInterceptor,
|
|
12
|
+
authenticateResponseInterceptor,
|
|
13
|
+
errorMessageResponseInterceptor,
|
|
14
|
+
} from '@swiftcrab/request'
|
|
15
|
+
|
|
16
|
+
const baseURL = '/api'
|
|
17
|
+
|
|
18
|
+
function createRequestClient() {
|
|
19
|
+
const client = new RequestClient({
|
|
20
|
+
baseURL,
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
/** 处理重新认证, 常用于回到登录页 */
|
|
24
|
+
async function doReAuthenticate() {}
|
|
25
|
+
|
|
26
|
+
/** 处理刷新token */
|
|
27
|
+
async function doRefreshToken() {
|
|
28
|
+
return ''
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// 请求头处理
|
|
32
|
+
client.addRequestInterceptor({
|
|
33
|
+
fulfilled: config => {
|
|
34
|
+
return config
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
// 返回数据格式 { data: any, info: { code: number, message: string, status: boolean } }
|
|
39
|
+
client.addResponseInterceptor(
|
|
40
|
+
defaultResponseInterceptor({
|
|
41
|
+
/** 响应数据中代表访问结果的字段名 */
|
|
42
|
+
codeField: 'code',
|
|
43
|
+
/** 响应数据中装载实际数据的字段名,或者提供一个函数从响应数据中解析需要返回的数据 */
|
|
44
|
+
dataField: 'data',
|
|
45
|
+
/** 当codeField所指定的字段值与successCode相同时,代表接口访问成功。如果提供一个函数,则返回true代表接口访问成功 */
|
|
46
|
+
successCode: 200,
|
|
47
|
+
}),
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
client.addResponseInterceptor(
|
|
51
|
+
authenticateResponseInterceptor({
|
|
52
|
+
client,
|
|
53
|
+
doReAuthenticate,
|
|
54
|
+
doRefreshToken,
|
|
55
|
+
/** 是否启用刷新令牌 */
|
|
56
|
+
enableRefreshToken: true,
|
|
57
|
+
}),
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
client.addResponseInterceptor(
|
|
61
|
+
errorMessageResponseInterceptor((msg: string, error) => {
|
|
62
|
+
/** 处理错误消息 */
|
|
63
|
+
}),
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
return client
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const requestClient = createRequestClient()
|
|
70
|
+
|
|
71
|
+
export const baseRequestClient = new RequestClient({ baseURL })
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### 使用 requestClient
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
import { requestClient } from './request'
|
|
78
|
+
requestClient.get('/user').then(res => {
|
|
79
|
+
console.log(res)
|
|
80
|
+
})
|
|
81
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swiftcrab/request",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.mts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"defu": "^6.1.4"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"tsdown": "0.17.0-beta.6",
|
|
27
|
+
"tsdown": "^0.17.0-beta.6",
|
|
28
28
|
"typescript": "^5.8.3",
|
|
29
29
|
"@swiftcrab/tsconfig": "1.0.1"
|
|
30
30
|
},
|