@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.
@@ -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;
@@ -59,7 +59,7 @@ class RequestInstance {
59
59
  ...this.commonOptions,
60
60
  ...options.commonOptions
61
61
  };
62
- this.isEnableTokenAuth = options.isEnableTokenAuth || true;
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)=>new Promise((resolve, reject)=>{
319
+ uploadFile = (options)=>{
320
+ const { dataType = 'json', ...rest } = options;
321
+ return new Promise((resolve, reject)=>{
320
322
  this.uploadFileTask({
321
- ...options,
323
+ ...rest,
322
324
  success: (result)=>{
323
325
  options?.success?.(result);
324
- resolve(result);
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
- export { useValtioInstaceState, useValtioState };
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 };
@@ -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;
@@ -99,7 +99,7 @@ class RequestInstance {
99
99
  ...this.commonOptions,
100
100
  ...options.commonOptions
101
101
  };
102
- this.isEnableTokenAuth = options.isEnableTokenAuth || true;
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)=>new Promise((resolve, reject)=>{
359
+ uploadFile = (options)=>{
360
+ const { dataType = 'json', ...rest } = options;
361
+ return new Promise((resolve, reject)=>{
360
362
  this.uploadFileTask({
361
- ...options,
363
+ ...rest,
362
364
  success: (result)=>{
363
365
  options?.success?.(result);
364
- resolve(result);
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
- "useValtioInstaceState",
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.11",
6
+ "version": "1.0.13",
7
7
  "main": "esm/index.js",
8
8
  "types": "esm/index.d.ts",
9
9
  "module": "esm/index.js",
@@ -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 || true;
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 = (options: UploadFileOptions): Promise<Taro.uploadFile.SuccessCallbackResult> => {
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
- ...options,
487
+ ...rest,
483
488
  success: (result) => {
484
489
  options?.success?.(result);
485
- resolve(result);
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
+ };