@based/react 4.4.0 → 4.5.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.
package/dist/Ctx.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { BasedClient } from '@based/client';
3
3
  export declare const Ctx: import("react").Context<BasedClient>;
4
+ //# sourceMappingURL=Ctx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ctx.d.ts","sourceRoot":"","sources":["../src/Ctx.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,GAAG,sCAAmC,CAAA"}
@@ -4,3 +4,4 @@ export declare const Provider: FC<{
4
4
  client: BasedClient;
5
5
  children: ReactNode;
6
6
  }>;
7
+ //# sourceMappingURL=Provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../src/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC;IACxB,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;CACpB,CAEA,CAAA"}
package/dist/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from './useConnected';
6
6
  export * from './useLoading';
7
7
  export * from './useQuery';
8
8
  export * from './useWindow';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
@@ -1,2 +1,3 @@
1
1
  import { AuthState } from '@based/client';
2
2
  export declare const useAuthState: () => AuthState;
3
+ //# sourceMappingURL=useAuthState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthState.d.ts","sourceRoot":"","sources":["../src/useAuthState.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,SAAS,EAAE,MAAM,eAAe,CAAA;AAGtD,eAAO,MAAM,YAAY,QAAO,SAgB/B,CAAA"}
@@ -1,2 +1,3 @@
1
1
  import { BasedClient } from '@based/client';
2
2
  export declare const useClient: () => BasedClient;
3
+ //# sourceMappingURL=useClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClient.d.ts","sourceRoot":"","sources":["../src/useClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,eAAO,MAAM,SAAS,QAAO,WAE5B,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export declare const useConnected: () => {
2
2
  connected: boolean;
3
3
  };
4
+ //# sourceMappingURL=useConnected.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConnected.d.ts","sourceRoot":"","sources":["../src/useConnected.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;CAsBxB,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export declare const useLoadingListeners: Set<Function>;
2
2
  export declare const hooksLoading: Set<number>;
3
3
  export declare const useLoading: () => boolean;
4
+ //# sourceMappingURL=useLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoading.d.ts","sourceRoot":"","sources":["../src/useLoading.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAa,CAAA;AAC3D,eAAO,MAAM,YAAY,EAAE,GAAG,CAAC,MAAM,CAAa,CAAA;AAClD,eAAO,MAAM,UAAU,eAStB,CAAA"}
@@ -1,9 +1,18 @@
1
- import { BasedError } from '@based/client';
2
- export declare const useQuery: <T = any>(name?: string, payload?: any, opts?: {
1
+ import { BasedError, QueryMap } from '@based/client';
2
+ export declare const useQueries: <T = any>(name?: string, payloads?: any[], opts?: {
3
3
  persistent: boolean;
4
4
  }) => {
5
5
  loading: boolean;
6
6
  data?: T;
7
7
  error?: BasedError;
8
+ checksum?: string;
9
+ }[];
10
+ export declare const useQuery: <N extends string | number>(name: N, payload?: QueryMap[N]["payload"], opts?: {
11
+ persistent: boolean;
12
+ }) => {
13
+ loading: boolean;
14
+ data?: QueryMap[N]["result"];
15
+ error?: BasedError;
8
16
  checksum?: number;
9
17
  };
18
+ //# sourceMappingURL=useQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../src/useQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIjE,eAAO,MAAM,UAAU,mBACd,MAAM,aACF,GAAG,EAAE,SACT;IACL,UAAU,EAAE,OAAO,CAAA;CACpB;aAEQ,OAAO;;YAER,UAAU;eACP,MAAM;GA4DlB,CAAA;AAED,eAAO,MAAM,QAAQ,gFAGZ;IACL,UAAU,EAAE,OAAO,CAAA;CACpB;aAEQ,OAAO;;YAER,UAAU;eACP,MAAM;CAsElB,CAAA"}
package/dist/useQuery.js CHANGED
@@ -1,12 +1,62 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useQuery = void 0;
3
+ exports.useQuery = exports.useQueries = void 0;
4
4
  const react_1 = require("react");
5
5
  const Ctx_1 = require("./Ctx");
6
6
  const useLoading_1 = require("./useLoading");
7
+ const useQueries = (name, payloads, opts) => {
8
+ // TODO add error handling
9
+ const client = (0, react_1.useContext)(Ctx_1.Ctx);
10
+ let key = '';
11
+ let sum = '';
12
+ if (client && name) {
13
+ const queries = Array(payloads.length);
14
+ const result = payloads.map((payload, i) => {
15
+ // @ts-ignore
16
+ const q = client.query(name, payload, opts);
17
+ const { id, cache } = q;
18
+ queries[i] = q;
19
+ key += id;
20
+ if (cache) {
21
+ sum += cache.checksum;
22
+ return { loading: false, data: cache.value, checksum: cache.checksum };
23
+ }
24
+ return { loading: true };
25
+ });
26
+ const [, update] = (0, react_1.useState)(sum);
27
+ (0, react_1.useEffect)(() => {
28
+ let raf;
29
+ const listener = () => {
30
+ if (!raf) {
31
+ raf = requestAnimationFrame(() => {
32
+ raf = null;
33
+ update(queries.reduce((sum, { cache }) => {
34
+ return cache ? sum + cache.checksum : sum;
35
+ }, ''));
36
+ });
37
+ }
38
+ };
39
+ const unsubs = queries.map((q) => {
40
+ return q.subscribe(listener);
41
+ });
42
+ return () => {
43
+ unsubs.forEach((unsubscribe) => unsubscribe());
44
+ if (raf) {
45
+ cancelAnimationFrame(raf);
46
+ }
47
+ };
48
+ }, [key]);
49
+ return result;
50
+ }
51
+ (0, react_1.useState)(sum);
52
+ (0, react_1.useEffect)(() => { }, [key]);
53
+ return Array(payloads.length).fill({ loading: true });
54
+ };
55
+ exports.useQueries = useQueries;
7
56
  const useQuery = (name, payload, opts) => {
8
57
  const client = (0, react_1.useContext)(Ctx_1.Ctx);
9
58
  if (client && name) {
59
+ // @ts-ignore
10
60
  const q = client.query(name, payload, opts);
11
61
  const { id, cache } = q;
12
62
  const [checksumOrError, update] = (0, react_1.useState)(cache?.checksum);
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../src/useQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../src/useQuery.ts"],"names":[],"mappings":"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"}
@@ -13,3 +13,4 @@ export declare const useWindow: (name: string, getPayload: ({ offset, limit }: {
13
13
  persistent?: boolean;
14
14
  }, dependencies?: any) => UseWindowState;
15
15
  export {};
16
+ //# sourceMappingURL=useWindow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWindow.d.ts","sourceRoot":"","sources":["../src/useWindow.ts"],"names":[],"mappings":"AAKA,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,GAAG,EAAE,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,SAAS,SACd,MAAM;;;MACuB,GAAG,QAChC;IACJ,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,iBACc,GAAG,KACjB,cAiIF,CAAA"}
package/dist/useWindow.js CHANGED
@@ -18,6 +18,7 @@ const useWindow = (name, getPayload, opts, dependencies) => {
18
18
  // complete reset
19
19
  const resetHash = (0, hash_1.hash)(dependencies);
20
20
  if (currResetHash.current !== resetHash) {
21
+ currResetHash.current = resetHash;
21
22
  currModifyHash.current = null;
22
23
  cache.current = null;
23
24
  }
@@ -86,19 +87,20 @@ const useWindow = (name, getPayload, opts, dependencies) => {
86
87
  return cache.current;
87
88
  }
88
89
  let l = queries.current.length;
90
+ cache.current.items = [];
89
91
  cache.current.loading = false;
90
92
  cache.current.checksum = checksum;
91
93
  while (l--) {
92
- const q = queries.current[l];
93
- const m = size * l + size;
94
94
  let i = size * l;
95
+ const q = queries.current[l];
96
+ const m = i + size;
95
97
  if (q) {
96
98
  if (q.cache) {
97
99
  let data = q.cache.value;
100
+ for (const i of path) {
101
+ data = data?.[i];
102
+ }
98
103
  if (data) {
99
- for (const i of path) {
100
- data = data[i];
101
- }
102
104
  for (let j = 0; i < m; i++) {
103
105
  const item = data[j++];
104
106
  if (!item)
@@ -111,12 +113,12 @@ const useWindow = (name, getPayload, opts, dependencies) => {
111
113
  cache.current.loading = true;
112
114
  }
113
115
  }
114
- // fill up empty items with null
115
- for (; i < m; i++) {
116
- if (!(i in cache.current.items)) {
117
- cache.current.items[i] = null;
118
- }
119
- }
116
+ // // fill up empty items with null
117
+ // for (; i < m; i++) {
118
+ // if (!(i in cache.current.items)) {
119
+ // cache.current.items[i] = null
120
+ // }
121
+ // }
120
122
  }
121
123
  }
122
124
  return cache.current;
@@ -1 +1 @@
1
- {"version":3,"file":"useWindow.js","sourceRoot":"","sources":["../src/useWindow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWindow.js","sourceRoot":"","sources":["../src/useWindow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@based/react",
3
- "version": "4.4.0",
3
+ "version": "4.5.1",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -17,10 +17,11 @@
17
17
  "ts-node": "10.9.1",
18
18
  "typescript": "^4.3.5",
19
19
  "react-dom": "^18.2.0",
20
- "@saulx/aristotle": "^4.7.1"
20
+ "@saulx/aristotle": "^4.7.1",
21
+ "@based/client": "^4.8.9"
21
22
  },
22
23
  "peerDependencies": {
23
- "@based/client": "^4.6.1",
24
+ "@based/client": "^4.8.9",
24
25
  "react": "16||17||18"
25
26
  }
26
27
  }
package/src/useQuery.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { useContext, useState, useEffect } from 'react'
2
- import { BasedClient, BasedError } from '@based/client'
2
+ import { BasedClient, BasedError, QueryMap } from '@based/client'
3
3
  import { Ctx } from './Ctx'
4
4
  import { hooksLoading, useLoadingListeners } from './useLoading'
5
5
 
6
- export const useQuery = <T = any>(
6
+ export const useQueries = <T = any>(
7
7
  name?: string,
8
- payload?: any,
8
+ payloads?: any[],
9
9
  opts?: {
10
10
  persistent: boolean
11
11
  }
@@ -13,11 +13,84 @@ export const useQuery = <T = any>(
13
13
  loading: boolean
14
14
  data?: T
15
15
  error?: BasedError
16
+ checksum?: string
17
+ }[] => {
18
+ // TODO add error handling
19
+ const client: BasedClient = useContext(Ctx)
20
+ let key = ''
21
+ let sum = ''
22
+
23
+ if (client && name) {
24
+ const queries = Array(payloads.length)
25
+ const result = payloads.map((payload, i) => {
26
+ // @ts-ignore
27
+ const q = client.query(name, payload, opts)
28
+ const { id, cache } = q
29
+ queries[i] = q
30
+ key += id
31
+
32
+ if (cache) {
33
+ sum += cache.checksum
34
+ return { loading: false, data: cache.value, checksum: cache.checksum }
35
+ }
36
+
37
+ return { loading: true }
38
+ })
39
+
40
+ const [, update] = useState(sum)
41
+
42
+ useEffect(() => {
43
+ let raf
44
+ const listener = () => {
45
+ if (!raf) {
46
+ raf = requestAnimationFrame(() => {
47
+ raf = null
48
+ update(
49
+ queries.reduce((sum, { cache }) => {
50
+ return cache ? sum + cache.checksum : sum
51
+ }, '')
52
+ )
53
+ })
54
+ }
55
+ }
56
+
57
+ const unsubs = queries.map((q) => {
58
+ return q.subscribe(listener)
59
+ })
60
+
61
+ return () => {
62
+ unsubs.forEach((unsubscribe) => unsubscribe())
63
+ if (raf) {
64
+ cancelAnimationFrame(raf)
65
+ }
66
+ }
67
+ }, [key])
68
+
69
+ return result
70
+ }
71
+
72
+ useState(sum)
73
+ useEffect(() => {}, [key])
74
+
75
+ return Array(payloads.length).fill({ loading: true })
76
+ }
77
+
78
+ export const useQuery = <N extends keyof QueryMap>(
79
+ name: N,
80
+ payload?: QueryMap[N]['payload'],
81
+ opts?: {
82
+ persistent: boolean
83
+ }
84
+ ): {
85
+ loading: boolean
86
+ data?: QueryMap[N]['result']
87
+ error?: BasedError
16
88
  checksum?: number
17
89
  } => {
18
90
  const client: BasedClient = useContext(Ctx)
19
91
 
20
92
  if (client && name) {
93
+ // @ts-ignore
21
94
  const q = client.query(name, payload, opts)
22
95
  const { id, cache } = q
23
96
  const [checksumOrError, update] = useState<number | BasedError>(
package/src/useWindow.ts CHANGED
@@ -34,6 +34,7 @@ export const useWindow = (
34
34
  // complete reset
35
35
  const resetHash = hash(dependencies)
36
36
  if (currResetHash.current !== resetHash) {
37
+ currResetHash.current = resetHash
37
38
  currModifyHash.current = null
38
39
  cache.current = null
39
40
  }
@@ -110,21 +111,22 @@ export const useWindow = (
110
111
  }
111
112
 
112
113
  let l = queries.current.length
114
+ cache.current.items = []
113
115
  cache.current.loading = false
114
116
  cache.current.checksum = checksum
115
117
 
116
118
  while (l--) {
117
- const q = queries.current[l]
118
- const m = size * l + size
119
119
  let i = size * l
120
+ const q = queries.current[l]
121
+ const m = i + size
120
122
 
121
123
  if (q) {
122
124
  if (q.cache) {
123
125
  let data = q.cache.value
126
+ for (const i of path) {
127
+ data = data?.[i]
128
+ }
124
129
  if (data) {
125
- for (const i of path) {
126
- data = data[i]
127
- }
128
130
  for (let j = 0; i < m; i++) {
129
131
  const item = data[j++]
130
132
  if (!item) break
@@ -136,12 +138,12 @@ export const useWindow = (
136
138
  }
137
139
  }
138
140
 
139
- // fill up empty items with null
140
- for (; i < m; i++) {
141
- if (!(i in cache.current.items)) {
142
- cache.current.items[i] = null
143
- }
144
- }
141
+ // // fill up empty items with null
142
+ // for (; i < m; i++) {
143
+ // if (!(i in cache.current.items)) {
144
+ // cache.current.items[i] = null
145
+ // }
146
+ // }
145
147
  }
146
148
  }
147
149