@aiszlab/relax 2.1.3-beta.0 → 2.1.3-beta.1

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.
@@ -17,7 +17,10 @@ var useMounted = require('./use-mounted.cjs');
17
17
  var useRequest = function useRequest(request) {
18
18
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
19
19
  _ref$auto = _ref.auto,
20
- auto = _ref$auto === void 0 ? false : _ref$auto;
20
+ auto = _ref$auto === void 0 ? false : _ref$auto,
21
+ thenCallback = _ref.then,
22
+ catchCallback = _ref["catch"],
23
+ finallyCallback = _ref["finally"];
21
24
  var _useState = react.useState(null),
22
25
  _useState2 = _slicedToArray(_useState, 2),
23
26
  data = _useState2[0],
@@ -32,6 +35,18 @@ var useRequest = function useRequest(request) {
32
35
  setLoading = _useState6[1];
33
36
  var isMountedRef = react.useRef(false);
34
37
  var _request = useEvent.useEvent(request);
38
+ var _then = useEvent.useEvent(function (_data) {
39
+ thenCallback === null || thenCallback === void 0 || thenCallback(_data);
40
+ return _data;
41
+ });
42
+ var _catch = useEvent.useEvent(function (error) {
43
+ catchCallback === null || catchCallback === void 0 || catchCallback(error);
44
+ setError(error);
45
+ return null;
46
+ });
47
+ var _finally = useEvent.useEvent(function () {
48
+ finallyCallback === null || finallyCallback === void 0 || finallyCallback();
49
+ });
35
50
  var run = react.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
36
51
  var result,
37
52
  _args = arguments;
@@ -41,10 +56,7 @@ var useRequest = function useRequest(request) {
41
56
  setLoading(true);
42
57
  setError(null);
43
58
  _context.n = 1;
44
- return _request.apply(void 0, _args)["catch"](function (error) {
45
- setError(error);
46
- return null;
47
- });
59
+ return _request.apply(void 0, _args).then(_then)["catch"](_catch)["finally"](_finally);
48
60
  case 1:
49
61
  result = _context.v;
50
62
  setData(result);
@@ -1,9 +1,24 @@
1
- type UsingRequest = {
1
+ type UsingRequest<T> = {
2
2
  /**
3
3
  * @description
4
4
  * auto request when component mounts
5
5
  */
6
6
  auto?: boolean;
7
+ /**
8
+ * @description
9
+ * called when the request succeeds, like Promise.then
10
+ */
11
+ then?: (data: T) => void;
12
+ /**
13
+ * @description
14
+ * called when the request fails, like Promise.catch
15
+ */
16
+ catch?: (error: Error) => void;
17
+ /**
18
+ * @description
19
+ * called when the request completes (success or failure), like Promise.finally
20
+ */
21
+ finally?: () => void;
7
22
  };
8
23
  type UsedRequest<T> = {
9
24
  /**
@@ -34,5 +49,5 @@ type UsedRequest<T> = {
34
49
  * wraps an async request function, tracking loading / error / data state.
35
50
  * when `auto` is true the request fires automatically on mount.
36
51
  */
37
- export declare const useRequest: <T>(request: (...args: any[]) => Promise<T>, { auto }?: UsingRequest) => UsedRequest<T>;
52
+ export declare const useRequest: <T>(request: (...args: any[]) => Promise<T>, { auto, then: thenCallback, catch: catchCallback, finally: finallyCallback, }?: UsingRequest<T>) => UsedRequest<T>;
38
53
  export {};
@@ -15,7 +15,10 @@ import { useMounted } from './use-mounted.mjs';
15
15
  var useRequest = function useRequest(request) {
16
16
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
17
17
  _ref$auto = _ref.auto,
18
- auto = _ref$auto === void 0 ? false : _ref$auto;
18
+ auto = _ref$auto === void 0 ? false : _ref$auto,
19
+ thenCallback = _ref.then,
20
+ catchCallback = _ref["catch"],
21
+ finallyCallback = _ref["finally"];
19
22
  var _useState = useState(null),
20
23
  _useState2 = _slicedToArray(_useState, 2),
21
24
  data = _useState2[0],
@@ -30,6 +33,18 @@ var useRequest = function useRequest(request) {
30
33
  setLoading = _useState6[1];
31
34
  var isMountedRef = useRef(false);
32
35
  var _request = useEvent(request);
36
+ var _then = useEvent(function (_data) {
37
+ thenCallback === null || thenCallback === void 0 || thenCallback(_data);
38
+ return _data;
39
+ });
40
+ var _catch = useEvent(function (error) {
41
+ catchCallback === null || catchCallback === void 0 || catchCallback(error);
42
+ setError(error);
43
+ return null;
44
+ });
45
+ var _finally = useEvent(function () {
46
+ finallyCallback === null || finallyCallback === void 0 || finallyCallback();
47
+ });
33
48
  var run = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
34
49
  var result,
35
50
  _args = arguments;
@@ -39,10 +54,7 @@ var useRequest = function useRequest(request) {
39
54
  setLoading(true);
40
55
  setError(null);
41
56
  _context.n = 1;
42
- return _request.apply(void 0, _args)["catch"](function (error) {
43
- setError(error);
44
- return null;
45
- });
57
+ return _request.apply(void 0, _args).then(_then)["catch"](_catch)["finally"](_finally);
46
58
  case 1:
47
59
  result = _context.v;
48
60
  setData(result);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiszlab/relax",
3
- "version": "2.1.3-beta.0",
3
+ "version": "2.1.3-beta.1",
4
4
  "description": "react utils collection",
5
5
  "exports": {
6
6
  ".": {