Skip to content

Commit b4481cd

Browse files
committed
feat: complete working on middleware for axios
1 parent bb515ad commit b4481cd

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

src/index.js

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ let errorModel = null
88

99
axios.interceptors.request.use(
1010
function(config) {
11-
const { data } = deserializeRequestData(config.model, options.data, {
12-
method,
13-
url,
11+
const { data } = deserializeRequestData(config.model, config.data, {
12+
method: config.method,
13+
url: config.url,
1414
})
1515

1616
config.data = data
@@ -24,32 +24,42 @@ axios.interceptors.request.use(
2424

2525
axios.interceptors.response.use(
2626
function(response) {
27-
const { data } = serializeResponseData(options.model, response.data, {
28-
method,
29-
url,
30-
isError: false,
31-
})
27+
const { data } = serializeResponseData(
28+
response.config.model,
29+
response.data,
30+
{
31+
method: response.config.method,
32+
url: response.config.url,
33+
isError: false,
34+
}
35+
)
3236

3337
response.data = data
3438

3539
return response
3640
},
3741
function(error) {
38-
return Promise.reject(
39-
errorModel
40-
? serializeResponseData(options.model, response.data, {
41-
method,
42-
url,
43-
isError: true,
44-
errorModel,
45-
error,
46-
})
47-
: error
48-
)
42+
if (errorModel && error.response) {
43+
const { error: serializedError } = serializeResponseData(
44+
error.config.model,
45+
null,
46+
{
47+
method: error.config.method,
48+
url: error.config.url,
49+
isError: true,
50+
errorModel,
51+
error: error.response.data,
52+
}
53+
)
54+
55+
error.response.data = serializedError
56+
}
57+
58+
return Promise.reject(error)
4959
}
5060
)
5161

52-
export function attackErrorModel(_errorModel) {
62+
export function attachErrorModel(_errorModel) {
5363
errorModel = _errorModel
5464
}
5565

0 commit comments

Comments
 (0)