kmod-cli 1.4.8 → 1.4.10
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.
|
@@ -217,16 +217,23 @@ class DataProvider {
|
|
|
217
217
|
private options: Required<DataProviderOptions>;
|
|
218
218
|
|
|
219
219
|
constructor(
|
|
220
|
-
|
|
221
|
-
httpClient: AxiosInstance = axios,
|
|
220
|
+
httpClient: AxiosInstance = axios.create(),
|
|
222
221
|
options: DataProviderOptions = {}
|
|
223
222
|
) {
|
|
224
|
-
this.apiUrl = apiUrl.endsWith('/') ? apiUrl.slice(0, -1) : apiUrl;
|
|
225
223
|
this.httpClient = httpClient;
|
|
224
|
+
|
|
225
|
+
// Lấy baseURL từ httpClient
|
|
226
|
+
const baseURL = httpClient.defaults.baseURL || '';
|
|
227
|
+
this.apiUrl = baseURL.endsWith('/') ? baseURL.slice(0, -1) : baseURL;
|
|
228
|
+
|
|
229
|
+
if (!this.apiUrl) {
|
|
230
|
+
console.warn('[DataProvider] No baseURL found in httpClient. Please set baseURL when creating httpClient.');
|
|
231
|
+
}
|
|
232
|
+
|
|
226
233
|
this.cache = new Map();
|
|
227
234
|
this.options = {
|
|
228
235
|
cacheTime: 5 * 60 * 1000,
|
|
229
|
-
retryCount:
|
|
236
|
+
retryCount: 1,
|
|
230
237
|
retryDelay: 1000,
|
|
231
238
|
debug: false,
|
|
232
239
|
...options
|
|
@@ -653,11 +660,12 @@ class DataProvider {
|
|
|
653
660
|
if (!url) throw this.handleError("No url provided");
|
|
654
661
|
try {
|
|
655
662
|
return await this.retryRequest(async () => {
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
663
|
+
// if url is not absolute, assume it's a relative path
|
|
664
|
+
const requestUrl = url.startsWith('http') ? url : url;
|
|
665
|
+
this.log(`${method.toUpperCase()} ${requestUrl}`, { payload, query });
|
|
666
|
+
|
|
659
667
|
const response = await this.httpClient<T>({
|
|
660
|
-
url:
|
|
668
|
+
url: requestUrl,
|
|
661
669
|
method,
|
|
662
670
|
data: payload,
|
|
663
671
|
params: query,
|
|
@@ -1159,9 +1167,29 @@ export const cookiesProvider = {
|
|
|
1159
1167
|
|
|
1160
1168
|
// =================== Example ===================
|
|
1161
1169
|
|
|
1170
|
+
// create httpClient
|
|
1171
|
+
|
|
1172
|
+
// const TOKEN = "token";
|
|
1173
|
+
|
|
1174
|
+
// const httpClient = createHttpClient(
|
|
1175
|
+
// `${process.env.NEXT_PUBLIC_API_URL}`,
|
|
1176
|
+
// TOKEN, --> key_name_cookie
|
|
1177
|
+
// "cookie", --> storage
|
|
1178
|
+
// "Bearer" --> prefix
|
|
1179
|
+
// );
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
// create dataProvider
|
|
1183
|
+
|
|
1184
|
+
// const dataProvider = useDataProvider(httpClient);
|
|
1185
|
+
|
|
1162
1186
|
// wrapped all into:
|
|
1163
|
-
// <DataProvider>
|
|
1164
|
-
// <AuthProvider
|
|
1187
|
+
// <DataProvider dataProvider={dataProvider}>
|
|
1188
|
+
// <AuthProvider
|
|
1189
|
+
// loginUrl={"/auth/login"} --> api_login
|
|
1190
|
+
// tokenKey={TOKEN}
|
|
1191
|
+
// meUrl='/auth/me' --> api_get_me_by_token
|
|
1192
|
+
// >
|
|
1165
1193
|
// <App />
|
|
1166
1194
|
// </AuthProvider>
|
|
1167
1195
|
// </DataProvider>
|
|
@@ -1199,7 +1227,7 @@ export const cookiesProvider = {
|
|
|
1199
1227
|
// });
|
|
1200
1228
|
|
|
1201
1229
|
// const { data, isLoading, error } = useCustom<DataResponse>({
|
|
1202
|
-
// url: '/route_name',
|
|
1230
|
+
// url: '/route_name or api_url/route/...',
|
|
1203
1231
|
// method: 'post',
|
|
1204
1232
|
// payload: {},
|
|
1205
1233
|
// });
|