@powersync/tanstack-react-query 0.0.7 → 0.0.9

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.
@@ -13,14 +13,9 @@ function useQueryCore(options, queryClient, useQueryFn) {
13
13
  if (!powerSync) {
14
14
  throw new Error('PowerSync is not available');
15
15
  }
16
- const [error, setError] = React.useState(null);
16
+ let error = undefined;
17
17
  const [tables, setTables] = React.useState([]);
18
- const { query, parameters, ...resolvedOptions } = options;
19
- React.useEffect(() => {
20
- if (error) {
21
- setError(null);
22
- }
23
- }, [powerSync, query, parameters, options.queryKey]);
18
+ const { query, parameters = [], ...resolvedOptions } = options;
24
19
  let sqlStatement = '';
25
20
  let queryParameters = [];
26
21
  if (query) {
@@ -30,7 +25,7 @@ function useQueryCore(options, queryClient, useQueryFn) {
30
25
  queryParameters = parsedQuery.parameters;
31
26
  }
32
27
  catch (e) {
33
- setError(e);
28
+ error = e;
34
29
  }
35
30
  }
36
31
  const stringifiedParams = JSON.stringify(queryParameters);
@@ -41,15 +36,22 @@ function useQueryCore(options, queryClient, useQueryFn) {
41
36
  setTables(tables);
42
37
  }
43
38
  catch (e) {
44
- setError(e);
39
+ error = e;
45
40
  }
46
41
  };
47
42
  React.useEffect(() => {
48
- if (!query)
49
- return;
43
+ if (error || !query)
44
+ return () => { };
50
45
  (async () => {
51
46
  await fetchTables();
52
47
  })();
48
+ const l = powerSync.registerListener({
49
+ schemaChanged: async () => {
50
+ await fetchTables();
51
+ queryClient.invalidateQueries({ queryKey: options.queryKey });
52
+ }
53
+ });
54
+ return () => l?.();
53
55
  }, [powerSync, sqlStatement, stringifiedParams]);
54
56
  const queryFn = React.useCallback(async () => {
55
57
  if (error) {
@@ -61,7 +63,7 @@ function useQueryCore(options, queryClient, useQueryFn) {
61
63
  catch (e) {
62
64
  return Promise.reject(e);
63
65
  }
64
- }, [powerSync, query, parameters, stringifiedKey, error]);
66
+ }, [powerSync, query, parameters, stringifiedKey]);
65
67
  React.useEffect(() => {
66
68
  if (error || !query)
67
69
  return () => { };
@@ -73,14 +75,14 @@ function useQueryCore(options, queryClient, useQueryFn) {
73
75
  });
74
76
  },
75
77
  onError: (e) => {
76
- setError(e);
78
+ error = e;
77
79
  }
78
80
  }, {
79
81
  tables,
80
82
  signal: abort.signal
81
83
  });
82
84
  return () => abort.abort();
83
- }, [powerSync, queryClient, stringifiedKey, tables, error]);
85
+ }, [powerSync, queryClient, stringifiedKey, tables]);
84
86
  return useQueryFn({
85
87
  ...resolvedOptions,
86
88
  queryFn: query ? queryFn : resolvedOptions.queryFn
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powersync/tanstack-react-query",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"
@@ -22,15 +22,16 @@
22
22
  },
23
23
  "homepage": "https://docs.powersync.com",
24
24
  "peerDependencies": {
25
- "@powersync/common": "^1.20.2",
25
+ "@powersync/common": "^1.21.0",
26
26
  "react": "*"
27
27
  },
28
28
  "dependencies": {
29
29
  "@tanstack/react-query": "^5.55.4",
30
- "@powersync/common": "1.20.2",
31
- "@powersync/react": "1.5.0"
30
+ "@powersync/common": "1.21.0",
31
+ "@powersync/react": "1.5.1"
32
32
  },
33
33
  "devDependencies": {
34
+ "@testing-library/react": "^15.0.2",
34
35
  "@types/react": "^18.2.34",
35
36
  "jsdom": "^24.0.0",
36
37
  "react": "18.2.0",
@@ -40,6 +41,7 @@
40
41
  "build": "tsc -b",
41
42
  "build:prod": "tsc -b --sourceMap false",
42
43
  "clean": "rm -rf lib tsconfig.tsbuildinfo",
44
+ "test": "vitest",
43
45
  "watch": "tsc -b -w"
44
46
  }
45
47
  }