@fairys/taro-tools-react 1.0.11 → 1.0.13
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/esm/utils/request.d.ts +6 -2
- package/esm/utils/request.js +15 -4
- package/esm/utils/valtio/index.d.ts +4 -0
- package/esm/utils/valtio/index.js +11 -2
- package/lib/utils/request.d.ts +6 -2
- package/lib/utils/request.js +15 -4
- package/lib/utils/valtio/index.d.ts +4 -0
- package/lib/utils/valtio/index.js +14 -1
- package/package.json +1 -1
- package/src/utils/request.ts +21 -5
- package/src/utils/valtio/index.ts +10 -1
package/esm/utils/request.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export interface DownloadFileOptions extends Taro.downloadFile.Option, TaroReque
|
|
|
16
16
|
export interface UploadFileOptions extends Taro.uploadFile.Option, TaroRequestOption {
|
|
17
17
|
/**上传进度回调*/
|
|
18
18
|
onProgress?: Taro.UploadTask.OnProgressUpdateCallback;
|
|
19
|
+
/**数据类型*/
|
|
20
|
+
dataType?: 'json' | 'text';
|
|
19
21
|
}
|
|
20
22
|
export interface RequestInstanceCreateOptions {
|
|
21
23
|
/**
|
|
@@ -124,6 +126,8 @@ export declare class RequestInstance {
|
|
|
124
126
|
url: string;
|
|
125
127
|
/**上传进度回调*/
|
|
126
128
|
onProgress?: Taro.UploadTask.OnProgressUpdateCallback;
|
|
129
|
+
/**数据类型*/
|
|
130
|
+
dataType?: "json" | "text";
|
|
127
131
|
filePath: string;
|
|
128
132
|
name: string;
|
|
129
133
|
formData?: TaroGeneral.IAnyObject;
|
|
@@ -174,9 +178,9 @@ export declare class RequestInstance {
|
|
|
174
178
|
/**下载文件*/
|
|
175
179
|
downloadFile: (options: DownloadFileOptions) => Promise<Taro.downloadFile.FileSuccessCallbackResult>;
|
|
176
180
|
/**上传文件(返回 Taro.UploadTask.UploadTaskPromise ,可显示上传进度)*/
|
|
177
|
-
uploadFileTask: (options: UploadFileOptions) => Taro.UploadTask.UploadTaskPromise;
|
|
181
|
+
uploadFileTask: (options: Omit<UploadFileOptions, "dataType">) => Taro.UploadTask.UploadTaskPromise;
|
|
178
182
|
/**上传文件*/
|
|
179
|
-
uploadFile: (options: UploadFileOptions) => Promise<Taro.uploadFile.SuccessCallbackResult>;
|
|
183
|
+
uploadFile: (options: UploadFileOptions) => Promise<string | Record<string, any> | Taro.uploadFile.SuccessCallbackResult>;
|
|
180
184
|
}
|
|
181
185
|
/** 请求*/
|
|
182
186
|
export declare const request: RequestInstance;
|
package/esm/utils/request.js
CHANGED
|
@@ -59,7 +59,7 @@ class RequestInstance {
|
|
|
59
59
|
...this.commonOptions,
|
|
60
60
|
...options.commonOptions
|
|
61
61
|
};
|
|
62
|
-
this.isEnableTokenAuth = options.isEnableTokenAuth
|
|
62
|
+
this.isEnableTokenAuth = 'boolean' == typeof options.isEnableTokenAuth ? options.isEnableTokenAuth : true;
|
|
63
63
|
return this;
|
|
64
64
|
};
|
|
65
65
|
getHttpPath = (url, module)=>{
|
|
@@ -316,12 +316,22 @@ class RequestInstance {
|
|
|
316
316
|
if ('function' == typeof onProgress && uploadTask) uploadTask.onProgressUpdate(onProgress);
|
|
317
317
|
return uploadTask;
|
|
318
318
|
};
|
|
319
|
-
uploadFile = (options)=>
|
|
319
|
+
uploadFile = (options)=>{
|
|
320
|
+
const { dataType = 'json', ...rest } = options;
|
|
321
|
+
return new Promise((resolve, reject)=>{
|
|
320
322
|
this.uploadFileTask({
|
|
321
|
-
...
|
|
323
|
+
...rest,
|
|
322
324
|
success: (result)=>{
|
|
323
325
|
options?.success?.(result);
|
|
324
|
-
|
|
326
|
+
if ('json' === dataType) {
|
|
327
|
+
let resultData = result.data;
|
|
328
|
+
try {
|
|
329
|
+
resultData = JSON.parse(result.data);
|
|
330
|
+
} catch (error) {
|
|
331
|
+
console.log("\u4E0A\u4F20\u6587\u4EF6\u89E3\u6790\u6570\u636E\u5931\u8D25", error);
|
|
332
|
+
}
|
|
333
|
+
resolve(resultData);
|
|
334
|
+
} else resolve(result);
|
|
325
335
|
},
|
|
326
336
|
fail: (result)=>{
|
|
327
337
|
options?.fail?.(result);
|
|
@@ -329,6 +339,7 @@ class RequestInstance {
|
|
|
329
339
|
}
|
|
330
340
|
});
|
|
331
341
|
});
|
|
342
|
+
};
|
|
332
343
|
}
|
|
333
344
|
const request_request = new RequestInstance();
|
|
334
345
|
const utils_request = request_request;
|
|
@@ -7,3 +7,7 @@ export declare const useValtioInstaceState: <T extends object = any, K extends P
|
|
|
7
7
|
} = {
|
|
8
8
|
new (...args: any[]): K;
|
|
9
9
|
}>(Instance: M) => readonly [import("valtio").Snapshot<T>, K, any];
|
|
10
|
+
/**
|
|
11
|
+
* 创建valtio proxy 状态管理
|
|
12
|
+
*/
|
|
13
|
+
export declare const useValtioProxyState: <T extends object>(inital?: T) => readonly [import("valtio").Snapshot<T>, T, any];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useRef } from "react";
|
|
2
|
-
import { useSnapshot } from "valtio";
|
|
2
|
+
import { proxy, useSnapshot } from "valtio";
|
|
3
3
|
import { ProxyInstanceObjectBase } from "./instance.js";
|
|
4
4
|
export * from "./instance.js";
|
|
5
5
|
const useValtioState = (inital)=>{
|
|
@@ -20,4 +20,13 @@ const useValtioInstaceState = (Instance)=>{
|
|
|
20
20
|
state.__defaultValue
|
|
21
21
|
];
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
const useValtioProxyState = (inital)=>{
|
|
24
|
+
const instance = useRef(proxy(inital || {})).current;
|
|
25
|
+
const state = useSnapshot(instance);
|
|
26
|
+
return [
|
|
27
|
+
state,
|
|
28
|
+
instance,
|
|
29
|
+
state.__defaultValue
|
|
30
|
+
];
|
|
31
|
+
};
|
|
32
|
+
export { useValtioInstaceState, useValtioProxyState, useValtioState };
|
package/lib/utils/request.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export interface DownloadFileOptions extends Taro.downloadFile.Option, TaroReque
|
|
|
16
16
|
export interface UploadFileOptions extends Taro.uploadFile.Option, TaroRequestOption {
|
|
17
17
|
/**上传进度回调*/
|
|
18
18
|
onProgress?: Taro.UploadTask.OnProgressUpdateCallback;
|
|
19
|
+
/**数据类型*/
|
|
20
|
+
dataType?: 'json' | 'text';
|
|
19
21
|
}
|
|
20
22
|
export interface RequestInstanceCreateOptions {
|
|
21
23
|
/**
|
|
@@ -124,6 +126,8 @@ export declare class RequestInstance {
|
|
|
124
126
|
url: string;
|
|
125
127
|
/**上传进度回调*/
|
|
126
128
|
onProgress?: Taro.UploadTask.OnProgressUpdateCallback;
|
|
129
|
+
/**数据类型*/
|
|
130
|
+
dataType?: "json" | "text";
|
|
127
131
|
filePath: string;
|
|
128
132
|
name: string;
|
|
129
133
|
formData?: TaroGeneral.IAnyObject;
|
|
@@ -174,9 +178,9 @@ export declare class RequestInstance {
|
|
|
174
178
|
/**下载文件*/
|
|
175
179
|
downloadFile: (options: DownloadFileOptions) => Promise<Taro.downloadFile.FileSuccessCallbackResult>;
|
|
176
180
|
/**上传文件(返回 Taro.UploadTask.UploadTaskPromise ,可显示上传进度)*/
|
|
177
|
-
uploadFileTask: (options: UploadFileOptions) => Taro.UploadTask.UploadTaskPromise;
|
|
181
|
+
uploadFileTask: (options: Omit<UploadFileOptions, "dataType">) => Taro.UploadTask.UploadTaskPromise;
|
|
178
182
|
/**上传文件*/
|
|
179
|
-
uploadFile: (options: UploadFileOptions) => Promise<Taro.uploadFile.SuccessCallbackResult>;
|
|
183
|
+
uploadFile: (options: UploadFileOptions) => Promise<string | Record<string, any> | Taro.uploadFile.SuccessCallbackResult>;
|
|
180
184
|
}
|
|
181
185
|
/** 请求*/
|
|
182
186
|
export declare const request: RequestInstance;
|
package/lib/utils/request.js
CHANGED
|
@@ -99,7 +99,7 @@ class RequestInstance {
|
|
|
99
99
|
...this.commonOptions,
|
|
100
100
|
...options.commonOptions
|
|
101
101
|
};
|
|
102
|
-
this.isEnableTokenAuth = options.isEnableTokenAuth
|
|
102
|
+
this.isEnableTokenAuth = 'boolean' == typeof options.isEnableTokenAuth ? options.isEnableTokenAuth : true;
|
|
103
103
|
return this;
|
|
104
104
|
};
|
|
105
105
|
getHttpPath = (url, module)=>{
|
|
@@ -356,12 +356,22 @@ class RequestInstance {
|
|
|
356
356
|
if ('function' == typeof onProgress && uploadTask) uploadTask.onProgressUpdate(onProgress);
|
|
357
357
|
return uploadTask;
|
|
358
358
|
};
|
|
359
|
-
uploadFile = (options)=>
|
|
359
|
+
uploadFile = (options)=>{
|
|
360
|
+
const { dataType = 'json', ...rest } = options;
|
|
361
|
+
return new Promise((resolve, reject)=>{
|
|
360
362
|
this.uploadFileTask({
|
|
361
|
-
...
|
|
363
|
+
...rest,
|
|
362
364
|
success: (result)=>{
|
|
363
365
|
options?.success?.(result);
|
|
364
|
-
|
|
366
|
+
if ('json' === dataType) {
|
|
367
|
+
let resultData = result.data;
|
|
368
|
+
try {
|
|
369
|
+
resultData = JSON.parse(result.data);
|
|
370
|
+
} catch (error) {
|
|
371
|
+
console.log("\u4E0A\u4F20\u6587\u4EF6\u89E3\u6790\u6570\u636E\u5931\u8D25", error);
|
|
372
|
+
}
|
|
373
|
+
resolve(resultData);
|
|
374
|
+
} else resolve(result);
|
|
365
375
|
},
|
|
366
376
|
fail: (result)=>{
|
|
367
377
|
options?.fail?.(result);
|
|
@@ -369,6 +379,7 @@ class RequestInstance {
|
|
|
369
379
|
}
|
|
370
380
|
});
|
|
371
381
|
});
|
|
382
|
+
};
|
|
372
383
|
}
|
|
373
384
|
const request_request = new RequestInstance();
|
|
374
385
|
const utils_request = request_request;
|
|
@@ -7,3 +7,7 @@ export declare const useValtioInstaceState: <T extends object = any, K extends P
|
|
|
7
7
|
} = {
|
|
8
8
|
new (...args: any[]): K;
|
|
9
9
|
}>(Instance: M) => readonly [import("valtio").Snapshot<T>, K, any];
|
|
10
|
+
/**
|
|
11
|
+
* 创建valtio proxy 状态管理
|
|
12
|
+
*/
|
|
13
|
+
export declare const useValtioProxyState: <T extends object>(inital?: T) => readonly [import("valtio").Snapshot<T>, T, any];
|
|
@@ -55,6 +55,7 @@ var __webpack_exports__ = {};
|
|
|
55
55
|
__webpack_require__.r(__webpack_exports__);
|
|
56
56
|
__webpack_require__.d(__webpack_exports__, {
|
|
57
57
|
useValtioInstaceState: ()=>useValtioInstaceState,
|
|
58
|
+
useValtioProxyState: ()=>useValtioProxyState,
|
|
58
59
|
useValtioState: ()=>useValtioState
|
|
59
60
|
});
|
|
60
61
|
var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
|
|
@@ -62,8 +63,9 @@ var __webpack_exports__ = {};
|
|
|
62
63
|
var _instance__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./instance");
|
|
63
64
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
64
65
|
for(var __WEBPACK_IMPORT_KEY__ in _instance__WEBPACK_IMPORTED_MODULE_2__)if ([
|
|
65
|
-
"
|
|
66
|
+
"useValtioProxyState",
|
|
66
67
|
"default",
|
|
68
|
+
"useValtioInstaceState",
|
|
67
69
|
"useValtioState"
|
|
68
70
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
69
71
|
return _instance__WEBPACK_IMPORTED_MODULE_2__[key];
|
|
@@ -87,11 +89,22 @@ var __webpack_exports__ = {};
|
|
|
87
89
|
state.__defaultValue
|
|
88
90
|
];
|
|
89
91
|
};
|
|
92
|
+
const useValtioProxyState = (inital)=>{
|
|
93
|
+
const instance = (0, react__WEBPACK_IMPORTED_MODULE_0__.useRef)((0, valtio__WEBPACK_IMPORTED_MODULE_1__.proxy)(inital || {})).current;
|
|
94
|
+
const state = (0, valtio__WEBPACK_IMPORTED_MODULE_1__.useSnapshot)(instance);
|
|
95
|
+
return [
|
|
96
|
+
state,
|
|
97
|
+
instance,
|
|
98
|
+
state.__defaultValue
|
|
99
|
+
];
|
|
100
|
+
};
|
|
90
101
|
})();
|
|
91
102
|
exports.useValtioInstaceState = __webpack_exports__.useValtioInstaceState;
|
|
103
|
+
exports.useValtioProxyState = __webpack_exports__.useValtioProxyState;
|
|
92
104
|
exports.useValtioState = __webpack_exports__.useValtioState;
|
|
93
105
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
94
106
|
"useValtioInstaceState",
|
|
107
|
+
"useValtioProxyState",
|
|
95
108
|
"useValtioState"
|
|
96
109
|
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
97
110
|
Object.defineProperty(exports, '__esModule', {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"author": "SunLxy <1011771396@qq.com>",
|
|
4
4
|
"description": "框架组件库",
|
|
5
5
|
"homepage": "https://github.com/autumn-fairy-tales/fairys-taro-react",
|
|
6
|
-
"version": "1.0.
|
|
6
|
+
"version": "1.0.13",
|
|
7
7
|
"main": "esm/index.js",
|
|
8
8
|
"types": "esm/index.d.ts",
|
|
9
9
|
"module": "esm/index.js",
|
package/src/utils/request.ts
CHANGED
|
@@ -33,6 +33,8 @@ export interface DownloadFileOptions extends Taro.downloadFile.Option, TaroReque
|
|
|
33
33
|
export interface UploadFileOptions extends Taro.uploadFile.Option, TaroRequestOption {
|
|
34
34
|
/**上传进度回调*/
|
|
35
35
|
onProgress?: Taro.UploadTask.OnProgressUpdateCallback;
|
|
36
|
+
/**数据类型*/
|
|
37
|
+
dataType?: 'json' | 'text';
|
|
36
38
|
}
|
|
37
39
|
/**处理提示信息*/
|
|
38
40
|
const requestResponseHandle = (
|
|
@@ -133,7 +135,7 @@ export class RequestInstance {
|
|
|
133
135
|
this.IP = options.IP || this.IP;
|
|
134
136
|
this.proxy = options.proxy || this.proxy;
|
|
135
137
|
this.commonOptions = { ...this.commonOptions, ...options.commonOptions };
|
|
136
|
-
this.isEnableTokenAuth = options.isEnableTokenAuth
|
|
138
|
+
this.isEnableTokenAuth = typeof options.isEnableTokenAuth === 'boolean' ? options.isEnableTokenAuth : true;
|
|
137
139
|
return this;
|
|
138
140
|
};
|
|
139
141
|
|
|
@@ -433,7 +435,7 @@ export class RequestInstance {
|
|
|
433
435
|
};
|
|
434
436
|
|
|
435
437
|
/**上传文件(返回 Taro.UploadTask.UploadTaskPromise ,可显示上传进度)*/
|
|
436
|
-
uploadFileTask = (options: UploadFileOptions) => {
|
|
438
|
+
uploadFileTask = (options: Omit<UploadFileOptions, 'dataType'>) => {
|
|
437
439
|
const { isShowErrorMessage } = options;
|
|
438
440
|
const formattedOptions = this.formatRequestOptions(options);
|
|
439
441
|
if (!formattedOptions) {
|
|
@@ -476,13 +478,27 @@ export class RequestInstance {
|
|
|
476
478
|
return uploadTask;
|
|
477
479
|
};
|
|
478
480
|
/**上传文件*/
|
|
479
|
-
uploadFile = (
|
|
481
|
+
uploadFile = (
|
|
482
|
+
options: UploadFileOptions,
|
|
483
|
+
): Promise<string | Record<string, any> | Taro.uploadFile.SuccessCallbackResult> => {
|
|
484
|
+
const { dataType = 'json', ...rest } = options;
|
|
480
485
|
return new Promise((resolve, reject) => {
|
|
481
486
|
this.uploadFileTask({
|
|
482
|
-
...
|
|
487
|
+
...rest,
|
|
483
488
|
success: (result) => {
|
|
484
489
|
options?.success?.(result);
|
|
485
|
-
|
|
490
|
+
if (dataType === 'json') {
|
|
491
|
+
let resultData = result.data;
|
|
492
|
+
try {
|
|
493
|
+
resultData = JSON.parse(result.data);
|
|
494
|
+
} catch (error) {
|
|
495
|
+
// 解析失败,保持原始数据
|
|
496
|
+
console.log('上传文件解析数据失败', error);
|
|
497
|
+
}
|
|
498
|
+
resolve(resultData);
|
|
499
|
+
} else {
|
|
500
|
+
resolve(result);
|
|
501
|
+
}
|
|
486
502
|
},
|
|
487
503
|
fail: (result) => {
|
|
488
504
|
options?.fail?.(result);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
|
-
import { useSnapshot } from 'valtio';
|
|
2
|
+
import { useSnapshot, proxy } from 'valtio';
|
|
3
3
|
import { ProxyInstanceObjectBase } from './instance';
|
|
4
4
|
export * from './instance';
|
|
5
5
|
|
|
@@ -21,3 +21,12 @@ export const useValtioInstaceState = <
|
|
|
21
21
|
const state = useSnapshot(instance.store);
|
|
22
22
|
return [state, instance, (state as any).__defaultValue] as const;
|
|
23
23
|
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 创建valtio proxy 状态管理
|
|
27
|
+
*/
|
|
28
|
+
export const useValtioProxyState = <T extends object>(inital?: T) => {
|
|
29
|
+
const instance = useRef(proxy(inital || ({} as T))).current;
|
|
30
|
+
const state = useSnapshot(instance);
|
|
31
|
+
return [state, instance, (state as any).__defaultValue] as const;
|
|
32
|
+
};
|