aidbox-react 1.3.2 → 1.3.6

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.
@@ -1,6 +1,7 @@
1
1
  import { RemoteData, RemoteDataResult } from '../libs/remoteData';
2
- export interface ServiceManager<S> {
3
- reload: () => void;
2
+ export interface ServiceManager<S, F> {
3
+ reload: () => Promise<RemoteDataResult<S, F>>;
4
+ softReload: () => Promise<RemoteDataResult<S, F>>;
4
5
  set: (dataOrFn: S | ((data: S) => S)) => void;
5
6
  }
6
- export declare function useService<S = any, F = any>(asyncFunction: () => Promise<RemoteDataResult<S, F>>, deps?: ReadonlyArray<any>): [RemoteData<S, F>, ServiceManager<S>];
7
+ export declare function useService<S = any, F = any>(asyncFunction: () => Promise<RemoteDataResult<S, F>>, deps?: ReadonlyArray<any>): [RemoteData<S, F>, ServiceManager<S, F>];
@@ -8,37 +8,69 @@ function useService(asyncFunction, deps) {
8
8
  var _this = this;
9
9
  if (deps === void 0) { deps = []; }
10
10
  var _a = react_1.useState(remoteData_1.notAsked), remoteData = _a[0], setRemoteData = _a[1];
11
- // Use another state variable to trigger effect on demand
12
- var _b = react_1.useState(0), reloadsCount = _b[0], setReloadsCount = _b[1];
11
+ var load = react_1.useCallback(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
12
+ var err_1;
13
+ return tslib_1.__generator(this, function (_a) {
14
+ switch (_a.label) {
15
+ case 0:
16
+ _a.trys.push([0, 2, , 3]);
17
+ return [4 /*yield*/, asyncFunction()];
18
+ case 1: return [2 /*return*/, _a.sent()];
19
+ case 2:
20
+ err_1 = _a.sent();
21
+ return [2 /*return*/, remoteData_1.failure(err_1.response ? err_1.response.data : err_1.message)];
22
+ case 3: return [2 /*return*/];
23
+ }
24
+ });
25
+ }); }, deps);
26
+ var softReload = react_1.useCallback(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
27
+ var response;
28
+ return tslib_1.__generator(this, function (_a) {
29
+ switch (_a.label) {
30
+ case 0: return [4 /*yield*/, load()];
31
+ case 1:
32
+ response = _a.sent();
33
+ setRemoteData(response);
34
+ return [2 /*return*/, response];
35
+ }
36
+ });
37
+ }); }, tslib_1.__spreadArrays(deps, [load]));
38
+ var reload = react_1.useCallback(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
39
+ var response;
40
+ return tslib_1.__generator(this, function (_a) {
41
+ switch (_a.label) {
42
+ case 0:
43
+ setRemoteData(remoteData_1.loading);
44
+ return [4 /*yield*/, load()];
45
+ case 1:
46
+ response = _a.sent();
47
+ setRemoteData(response);
48
+ return [2 /*return*/, response];
49
+ }
50
+ });
51
+ }); }, tslib_1.__spreadArrays(deps, [load]));
13
52
  react_1.useEffect(function () {
14
53
  (function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
15
- var response, err_1;
16
- return tslib_1.__generator(this, function (_a) {
17
- switch (_a.label) {
54
+ var _a;
55
+ return tslib_1.__generator(this, function (_b) {
56
+ switch (_b.label) {
18
57
  case 0:
19
58
  setRemoteData(remoteData_1.loading);
20
- _a.label = 1;
59
+ _a = setRemoteData;
60
+ return [4 /*yield*/, load()];
21
61
  case 1:
22
- _a.trys.push([1, 3, , 4]);
23
- return [4 /*yield*/, asyncFunction()];
24
- case 2:
25
- response = _a.sent();
26
- setRemoteData(response);
27
- return [3 /*break*/, 4];
28
- case 3:
29
- err_1 = _a.sent();
30
- setRemoteData(remoteData_1.failure(err_1.response ? err_1.response.data : err_1.message));
31
- return [3 /*break*/, 4];
32
- case 4: return [2 /*return*/];
62
+ _a.apply(void 0, [_b.sent()]);
63
+ return [2 /*return*/];
33
64
  }
34
65
  });
35
66
  }); })();
36
- // eslint-disable-next-line
37
- }, deps.concat(reloadsCount));
67
+ // eslint-disable-next-line react-hooks/exhaustive-deps
68
+ }, tslib_1.__spreadArrays(deps, [load]));
38
69
  return [
39
70
  remoteData,
40
71
  {
41
- reload: function () { return setReloadsCount(function (count) { return count + 1; }); },
72
+ reload: reload,
73
+ softReload: softReload,
42
74
  set: function (dataOrFn) {
43
75
  if (typeof dataOrFn === 'function') {
44
76
  setRemoteData(function (rd) { return (remoteData_1.isSuccess(rd) ? remoteData_1.success(dataOrFn(rd.data)) : rd); });
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/hooks/service.ts"],"names":[],"mappings":";;;;AAAA,+BAA4C;AAE5C,iDAAkH;AAOlH,SAAgB,UAAU,CACtB,aAAoD,EACpD,IAA6B;IAFjC,iBAmCC;IAjCG,qBAAA,EAAA,SAA6B;IAEvB,IAAA,KAA8B,gBAAQ,CAAmB,qBAAQ,CAAC,EAAjE,UAAU,QAAA,EAAE,aAAa,QAAwC,CAAC;IAEzE,yDAAyD;IACnD,IAAA,KAAkC,gBAAQ,CAAC,CAAC,CAAC,EAA5C,YAAY,QAAA,EAAE,eAAe,QAAe,CAAC;IAEpD,iBAAS,CAAC;QACN,CAAC;;;;;wBACG,aAAa,CAAC,oBAAO,CAAC,CAAC;;;;wBAEsB,qBAAM,aAAa,EAAE,EAAA;;wBAAxD,QAAQ,GAA2B,SAAqB;wBAC9D,aAAa,CAAC,QAAQ,CAAC,CAAC;;;;wBAExB,aAAa,CAAC,oBAAO,CAAC,KAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;aAE9E,CAAC,EAAE,CAAC;QACL,2BAA2B;IAC/B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9B,OAAO;QACH,UAAU;QACV;YACI,MAAM,EAAE,cAAM,OAAA,eAAe,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,GAAG,CAAC,EAAT,CAAS,CAAC,EAArC,CAAqC;YACnD,GAAG,EAAE,UAAC,QAA8B;gBAChC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;oBAChC,aAAa,CAAC,UAAC,EAAE,IAAK,OAAA,CAAC,sBAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAO,CAAE,QAA2B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAArE,CAAqE,CAAC,CAAC;iBAChG;qBAAM;oBACH,aAAa,CAAC,oBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACpC;YACL,CAAC;SACJ;KACJ,CAAC;AACN,CAAC;AAnCD,gCAmCC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/hooks/service.ts"],"names":[],"mappings":";;;;AAAA,+BAAyD;AAEzD,iDAAkH;AAQlH,SAAgB,UAAU,CACtB,aAAoD,EACpD,IAA6B;IAFjC,iBAsDC;IApDG,qBAAA,EAAA,SAA6B;IAEvB,IAAA,KAA8B,gBAAQ,CAAmB,qBAAQ,CAAC,EAAjE,UAAU,QAAA,EAAE,aAAa,QAAwC,CAAC;IAEzE,IAAM,IAAI,GAAG,mBAAW,CAAC;;;;;;oBAEV,qBAAM,aAAa,EAAE,EAAA;wBAA5B,sBAAO,SAAqB,EAAC;;;oBAE7B,sBAAO,oBAAO,CAAC,KAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAG,CAAC,OAAO,CAAC,EAAC;;;;SAGtE,EAAE,IAAI,CAAC,CAAC;IAET,IAAM,UAAU,GAAG,mBAAW,CAAC;;;;wBACV,qBAAM,IAAI,EAAE,EAAA;;oBAAvB,QAAQ,GAAG,SAAY;oBAC7B,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAExB,sBAAO,QAAQ,EAAC;;;SAEnB,yBAAM,IAAI,GAAE,IAAI,GAAE,CAAC;IAEpB,IAAM,MAAM,GAAG,mBAAW,CAAC;;;;;oBACvB,aAAa,CAAC,oBAAO,CAAC,CAAC;oBACN,qBAAM,IAAI,EAAE,EAAA;;oBAAvB,QAAQ,GAAG,SAAY;oBAC7B,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAExB,sBAAO,QAAQ,EAAC;;;SAEnB,yBAAM,IAAI,GAAE,IAAI,GAAE,CAAC;IAEpB,iBAAS,CAAC;QACN,CAAC;;;;;wBACG,aAAa,CAAC,oBAAO,CAAC,CAAC;wBACvB,KAAA,aAAa,CAAA;wBAAC,qBAAM,IAAI,EAAE,EAAA;;wBAA1B,kBAAc,SAAY,EAAC,CAAC;;;;aAC/B,CAAC,EAAE,CAAC;QACL,uDAAuD;IAC3D,CAAC,yBAAM,IAAI,GAAE,IAAI,GAAE,CAAC;IAEpB,OAAO;QACH,UAAU;QACV;YACI,MAAM,QAAA;YACN,UAAU,YAAA;YACV,GAAG,EAAE,UAAC,QAA8B;gBAChC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;oBAChC,aAAa,CAAC,UAAC,EAAE,IAAK,OAAA,CAAC,sBAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAO,CAAE,QAA2B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAArE,CAAqE,CAAC,CAAC;iBAChG;qBAAM;oBACH,aAAa,CAAC,oBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACpC;YACL,CAAC;SACJ;KACJ,CAAC;AACN,CAAC;AAtDD,gCAsDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidbox-react",
3
- "version": "1.3.2",
3
+ "version": "1.3.6",
4
4
  "scripts": {
5
5
  "build": "tsc",
6
6
  "coverage": "jest --config=./jest.config.json --coverage --coverageReporters=text-lcov | coveralls",
@@ -9,7 +9,7 @@
9
9
  "prepare": "npm run build"
10
10
  },
11
11
  "dependencies": {
12
- "axios": "^0.21.1",
12
+ "axios": "^0.21.2",
13
13
  "moment": "^2.29.1"
14
14
  },
15
15
  "devDependencies": {
@@ -1,38 +1,58 @@
1
- import { useEffect, useState } from 'react';
1
+ import { useEffect, useState, useCallback } from 'react';
2
2
 
3
3
  import { loading, notAsked, RemoteData, RemoteDataResult, success, failure, isSuccess } from '../libs/remoteData';
4
4
 
5
- export interface ServiceManager<S> {
6
- reload: () => void;
5
+ export interface ServiceManager<S, F> {
6
+ reload: () => Promise<RemoteDataResult<S, F>>;
7
+ softReload: () => Promise<RemoteDataResult<S, F>>;
7
8
  set: (dataOrFn: S | ((data: S) => S)) => void;
8
9
  }
9
10
 
10
11
  export function useService<S = any, F = any>(
11
12
  asyncFunction: () => Promise<RemoteDataResult<S, F>>,
12
13
  deps: ReadonlyArray<any> = []
13
- ): [RemoteData<S, F>, ServiceManager<S>] {
14
+ ): [RemoteData<S, F>, ServiceManager<S, F>] {
14
15
  const [remoteData, setRemoteData] = useState<RemoteData<S, F>>(notAsked);
15
16
 
16
- // Use another state variable to trigger effect on demand
17
- const [reloadsCount, setReloadsCount] = useState(0);
17
+ const load = useCallback(async () => {
18
+ try {
19
+ return await asyncFunction();
20
+ } catch (err: any) {
21
+ return failure(err.response ? err.response.data : err.message);
22
+ }
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
24
+ }, deps);
25
+
26
+ const softReload = useCallback(async () => {
27
+ const response = await load();
28
+ setRemoteData(response);
29
+
30
+ return response;
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ }, [...deps, load]);
33
+
34
+ const reload = useCallback(async () => {
35
+ setRemoteData(loading);
36
+ const response = await load();
37
+ setRemoteData(response);
38
+
39
+ return response;
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
+ }, [...deps, load]);
18
42
 
19
43
  useEffect(() => {
20
44
  (async () => {
21
45
  setRemoteData(loading);
22
- try {
23
- const response: RemoteDataResult<S, F> = await asyncFunction();
24
- setRemoteData(response);
25
- } catch (err) {
26
- setRemoteData(failure(err.response ? err.response.data : err.message));
27
- }
46
+ setRemoteData(await load());
28
47
  })();
29
- // eslint-disable-next-line
30
- }, deps.concat(reloadsCount));
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ }, [...deps, load]);
31
50
 
32
51
  return [
33
52
  remoteData,
34
53
  {
35
- reload: () => setReloadsCount((count) => count + 1),
54
+ reload,
55
+ softReload,
36
56
  set: (dataOrFn: S | ((data: S) => S)) => {
37
57
  if (typeof dataOrFn === 'function') {
38
58
  setRemoteData((rd) => (isSuccess(rd) ? success((dataOrFn as (data: S) => S)(rd.data)) : rd));
@@ -20,7 +20,7 @@ export async function service<S = any, F = any>(config: AxiosRequestConfig): Pro
20
20
  const response = await axiosInstance(config);
21
21
 
22
22
  return success(response.data);
23
- } catch (err) {
23
+ } catch (err: any) {
24
24
  return failure(err.response ? err.response.data : err.message);
25
25
  }
26
26
  }
package/CHANGELOG.md DELETED
@@ -1,16 +0,0 @@
1
- ## 1.3.2
2
-
3
- - Fix build
4
-
5
- ## 1.3.0
6
-
7
- - findFHIRResources uses getFHIRResources under the hood
8
- - formatError respects OperationOutcome.issue.diagnostics in addition to OperationOutcome.issue.details.text
9
-
10
- ## 1.2.0
11
-
12
- - All requests helpers from FHIR module returns Resources wrapped with WithId type-wrapper.
13
-
14
- ## 1.1.1
15
-
16
- - Stable release