@yeepay/client-utils 2.3.0 → 2.4.0
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/index.js +32 -0
- package/dist/index.mjs +32 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -106,6 +106,24 @@ function compatibleCallback(compatibleCallbacks = []) {
|
|
|
106
106
|
return compatibleCallbacks[0];
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
+
function blobToJson(blob) {
|
|
110
|
+
return new Promise((resolve, reject) => {
|
|
111
|
+
const reader = new FileReader();
|
|
112
|
+
reader.onload = (event) => {
|
|
113
|
+
try {
|
|
114
|
+
const jsonString = event.target?.result;
|
|
115
|
+
const jsonObject = JSON.parse(jsonString);
|
|
116
|
+
resolve(jsonObject);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
reject(error);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
reader.onerror = (event) => {
|
|
122
|
+
reject(new Error(`Resolve Blob JSON error: ${event.target?.error?.message || "unknown error"}`));
|
|
123
|
+
};
|
|
124
|
+
reader.readAsText(blob);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
109
127
|
function serviceFactory(options, ...callbacks) {
|
|
110
128
|
const {
|
|
111
129
|
baseUrl = "/",
|
|
@@ -156,6 +174,20 @@ function serviceFactory(options, ...callbacks) {
|
|
|
156
174
|
void Promise.reject(error);
|
|
157
175
|
}
|
|
158
176
|
);
|
|
177
|
+
service.interceptors.response.use(
|
|
178
|
+
async (response) => {
|
|
179
|
+
if (response.data instanceof Blob && response.headers["content-type"]?.split(";")[0]?.trim() === "application/json") {
|
|
180
|
+
response.data = await blobToJson(response.data);
|
|
181
|
+
return response;
|
|
182
|
+
}
|
|
183
|
+
return response;
|
|
184
|
+
},
|
|
185
|
+
async (error) => {
|
|
186
|
+
if (error.response.data instanceof Blob && error.response.headers["content-type"]?.split(";")[0]?.trim() === "application/json")
|
|
187
|
+
error.response.data = await blobToJson(error.response.data);
|
|
188
|
+
return Promise.reject(error);
|
|
189
|
+
}
|
|
190
|
+
);
|
|
159
191
|
service.interceptors.response.use(
|
|
160
192
|
(response) => {
|
|
161
193
|
if (response.status && response.status === 401)
|
package/dist/index.mjs
CHANGED
|
@@ -66,6 +66,24 @@ function compatibleCallback(compatibleCallbacks = []) {
|
|
|
66
66
|
return compatibleCallbacks[0];
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
+
function blobToJson(blob) {
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
const reader = new FileReader();
|
|
72
|
+
reader.onload = (event) => {
|
|
73
|
+
try {
|
|
74
|
+
const jsonString = event.target?.result;
|
|
75
|
+
const jsonObject = JSON.parse(jsonString);
|
|
76
|
+
resolve(jsonObject);
|
|
77
|
+
} catch (error) {
|
|
78
|
+
reject(error);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
reader.onerror = (event) => {
|
|
82
|
+
reject(new Error(`Resolve Blob JSON error: ${event.target?.error?.message || "unknown error"}`));
|
|
83
|
+
};
|
|
84
|
+
reader.readAsText(blob);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
69
87
|
function serviceFactory(options, ...callbacks) {
|
|
70
88
|
const {
|
|
71
89
|
baseUrl = "/",
|
|
@@ -116,6 +134,20 @@ function serviceFactory(options, ...callbacks) {
|
|
|
116
134
|
void Promise.reject(error);
|
|
117
135
|
}
|
|
118
136
|
);
|
|
137
|
+
service.interceptors.response.use(
|
|
138
|
+
async (response) => {
|
|
139
|
+
if (response.data instanceof Blob && response.headers["content-type"]?.split(";")[0]?.trim() === "application/json") {
|
|
140
|
+
response.data = await blobToJson(response.data);
|
|
141
|
+
return response;
|
|
142
|
+
}
|
|
143
|
+
return response;
|
|
144
|
+
},
|
|
145
|
+
async (error) => {
|
|
146
|
+
if (error.response.data instanceof Blob && error.response.headers["content-type"]?.split(";")[0]?.trim() === "application/json")
|
|
147
|
+
error.response.data = await blobToJson(error.response.data);
|
|
148
|
+
return Promise.reject(error);
|
|
149
|
+
}
|
|
150
|
+
);
|
|
119
151
|
service.interceptors.response.use(
|
|
120
152
|
(response) => {
|
|
121
153
|
if (response.status && response.status === 401)
|