ag-common 0.0.227 → 0.0.228

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.
@@ -7,19 +7,21 @@ export declare type TUseCallOpenApi<T> = AxiosWrapper<T> & {
7
7
  loadcount: number;
8
8
  setData: (d: TUseCallOpenApiDispatch<T | undefined>) => void;
9
9
  };
10
- /**
11
- * hooks+cached call to callOpenApi
12
- * @param p
13
- * @returns
14
- */
15
- export declare const useCallOpenApi: <T, TDefaultApi>(p: ICallOpenApi<T, TDefaultApi> & {
10
+ declare type TUseCallOpenApi1<T, TDefaultApi> = ICallOpenApi<T, TDefaultApi> & {
16
11
  cacheKey: string;
17
12
  /**
18
13
  * will shortcut and return the appropriate axioswrapper data if cachekey is found
19
14
  */
20
- ssrCacheItems?: CacheItems | undefined;
15
+ ssrCacheItems?: CacheItems;
21
16
  /**
22
17
  * default ttl in seconds for cache - default 120s
23
18
  */
24
- cacheTtl?: number | undefined;
25
- }) => TUseCallOpenApi<T>;
19
+ cacheTtl?: number;
20
+ };
21
+ /**
22
+ * hooks+cached call to callOpenApi
23
+ * @param p
24
+ * @returns
25
+ */
26
+ export declare const useCallOpenApi: <T, TDefaultApi>(pIn: TUseCallOpenApi1<T, TDefaultApi>) => TUseCallOpenApi<T>;
27
+ export {};
@@ -13,25 +13,25 @@ exports.useCallOpenApi = void 0;
13
13
  const cached_1 = require("./cached");
14
14
  const direct_1 = require("./direct");
15
15
  const react_1 = require("react");
16
+ const defaultState = (p) => {
17
+ var _a;
18
+ const cachedData = (_a = (0, cached_1.callOpenApiCachedRaw)(Object.assign(Object.assign({}, p), { onlyCached: true }))) === null || _a === void 0 ? void 0 : _a.data;
19
+ return Object.assign(Object.assign({ data: undefined, url: '', datetime: 0, loadcount: 0, loading: false, reFetch: () => __awaiter(void 0, void 0, void 0, function* () { }), setData: () => { } }, (cachedData && { data: cachedData })), { loaded: !!cachedData });
20
+ };
16
21
  /**
17
22
  * hooks+cached call to callOpenApi
18
23
  * @param p
19
24
  * @returns
20
25
  */
21
- const useCallOpenApi = (p) => {
22
- var _a;
23
- const defv = {
24
- data: undefined,
25
- url: '',
26
- datetime: 0,
27
- loadcount: 0,
28
- loading: false,
29
- loaded: false,
30
- reFetch: () => __awaiter(void 0, void 0, void 0, function* () { }),
31
- setData: () => { },
32
- };
33
- const cachedData = (_a = (0, cached_1.callOpenApiCachedRaw)(Object.assign(Object.assign({}, p), { onlyCached: true }))) === null || _a === void 0 ? void 0 : _a.data;
34
- const [data, setData] = (0, react_1.useState)(Object.assign(Object.assign(Object.assign({}, defv), (cachedData && { data: cachedData })), { loaded: !!cachedData }));
26
+ const useCallOpenApi = (pIn) => {
27
+ const [p, setP] = (0, react_1.useState)(pIn);
28
+ const [data, setData] = (0, react_1.useState)(defaultState(p));
29
+ (0, react_1.useEffect)(() => {
30
+ if (JSON.stringify(p) !== JSON.stringify(pIn)) {
31
+ setP(pIn);
32
+ setData(defaultState(pIn));
33
+ }
34
+ }, [p, pIn]);
35
35
  (0, react_1.useEffect)(() => {
36
36
  function run() {
37
37
  return __awaiter(this, void 0, void 0, function* () {
@@ -47,9 +47,7 @@ const useCallOpenApi = (p) => {
47
47
  setData((d) => (Object.assign(Object.assign({}, d), { loading: true })));
48
48
  void run();
49
49
  }, [data, p, setData]);
50
- return Object.assign(Object.assign({}, data), { reFetch: () => __awaiter(void 0, void 0, void 0, function* () {
51
- setData(defv);
52
- }), setData: (d) => {
50
+ return Object.assign(Object.assign({}, data), { reFetch: () => __awaiter(void 0, void 0, void 0, function* () { return setData(defaultState(p)); }), setData: (d) => {
53
51
  setData(Object.assign(Object.assign({}, data), { data: d(data.data), datetime: new Date().getTime() }));
54
52
  } });
55
53
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ag-common",
3
- "version": "0.0.227",
3
+ "version": "0.0.228",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "author": "Andrei Gec <@andreigec> (https://gec.dev/)",
@@ -40,12 +40,12 @@
40
40
  "@storybook/react": "6.4.22",
41
41
  "@storybook/theming": "6.4.22",
42
42
  "@types/jsonwebtoken": "8.5.8",
43
- "@types/node": "17.0.24",
43
+ "@types/node": "17.0.25",
44
44
  "@types/react": "17.0.43",
45
45
  "@types/react-dom": "17.0.14",
46
46
  "@types/styled-components": "5.1.25",
47
- "@typescript-eslint/eslint-plugin": "5.19.0",
48
- "@typescript-eslint/parser": "5.19.0",
47
+ "@typescript-eslint/eslint-plugin": "5.20.0",
48
+ "@typescript-eslint/parser": "5.20.0",
49
49
  "cross-env": "7.0.3",
50
50
  "eslint": "8.13.0",
51
51
  "eslint-config-airbnb-typescript": "17.0.0",