@legendapp/state 2.0.0-next.8 → 2.0.0

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.
Files changed (85) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/config/enableReactNativeComponents.js +15 -0
  3. package/config/enableReactNativeComponents.js.map +1 -1
  4. package/config/enableReactNativeComponents.mjs +16 -1
  5. package/config/enableReactNativeComponents.mjs.map +1 -1
  6. package/index.d.ts +3 -3
  7. package/index.js +84 -93
  8. package/index.js.map +1 -1
  9. package/index.mjs +84 -94
  10. package/index.mjs.map +1 -1
  11. package/package.json +21 -1
  12. package/persist-plugins/async-storage.d.ts +14 -0
  13. package/persist-plugins/async-storage.js +100 -0
  14. package/persist-plugins/async-storage.js.map +1 -0
  15. package/persist-plugins/async-storage.mjs +98 -0
  16. package/persist-plugins/async-storage.mjs.map +1 -0
  17. package/persist-plugins/fetch.d.ts +10 -0
  18. package/persist-plugins/fetch.js +22 -0
  19. package/persist-plugins/fetch.js.map +1 -0
  20. package/persist-plugins/fetch.mjs +20 -0
  21. package/persist-plugins/fetch.mjs.map +1 -0
  22. package/persist-plugins/firebase.d.ts +51 -0
  23. package/persist-plugins/firebase.js +694 -0
  24. package/persist-plugins/firebase.js.map +1 -0
  25. package/persist-plugins/firebase.mjs +692 -0
  26. package/persist-plugins/firebase.mjs.map +1 -0
  27. package/persist-plugins/indexeddb.d.ts +2 -3
  28. package/persist-plugins/indexeddb.js +1 -16
  29. package/persist-plugins/indexeddb.js.map +1 -1
  30. package/persist-plugins/indexeddb.mjs +1 -16
  31. package/persist-plugins/indexeddb.mjs.map +1 -1
  32. package/persist-plugins/local-storage.d.ts +1 -2
  33. package/persist-plugins/local-storage.js +1 -5
  34. package/persist-plugins/local-storage.js.map +1 -1
  35. package/persist-plugins/local-storage.mjs +1 -5
  36. package/persist-plugins/local-storage.mjs.map +1 -1
  37. package/persist-plugins/mmkv.d.ts +4 -4
  38. package/persist-plugins/mmkv.js +6 -4
  39. package/persist-plugins/mmkv.js.map +1 -1
  40. package/persist-plugins/mmkv.mjs +6 -4
  41. package/persist-plugins/mmkv.mjs.map +1 -1
  42. package/persist-plugins/query.d.ts +20 -0
  43. package/persist-plugins/query.js +89 -0
  44. package/persist-plugins/query.js.map +1 -0
  45. package/persist-plugins/query.mjs +87 -0
  46. package/persist-plugins/query.mjs.map +1 -0
  47. package/persist.js +186 -140
  48. package/persist.js.map +1 -1
  49. package/persist.mjs +187 -141
  50. package/persist.mjs.map +1 -1
  51. package/react-hooks/usePersistedObservable.d.ts +2 -2
  52. package/react-hooks/usePersistedObservable.js +1 -6
  53. package/react-hooks/usePersistedObservable.js.map +1 -1
  54. package/react-hooks/usePersistedObservable.mjs +1 -6
  55. package/react-hooks/usePersistedObservable.mjs.map +1 -1
  56. package/react.d.ts +1 -0
  57. package/react.js +84 -36
  58. package/react.js.map +1 -1
  59. package/react.mjs +84 -38
  60. package/react.mjs.map +1 -1
  61. package/src/ObservableObject.d.ts +3 -3
  62. package/src/globals.d.ts +1 -3
  63. package/src/is.d.ts +1 -0
  64. package/src/observable.d.ts +2 -2
  65. package/src/observableInterfaces.d.ts +86 -63
  66. package/src/observe.d.ts +1 -1
  67. package/src/persist/observablePersistRemoteFunctionsAdapter.d.ts +2 -0
  68. package/src/persist/persistObservable.d.ts +10 -13
  69. package/src/persist-plugins/async-storage.d.ts +14 -0
  70. package/src/persist-plugins/fetch.d.ts +10 -0
  71. package/src/persist-plugins/firebase.d.ts +51 -0
  72. package/src/persist-plugins/indexeddb.d.ts +2 -3
  73. package/src/persist-plugins/local-storage.d.ts +1 -2
  74. package/src/persist-plugins/mmkv.d.ts +4 -4
  75. package/src/persist-plugins/query.d.ts +20 -0
  76. package/src/react/For.d.ts +0 -1
  77. package/src/react/Reactive.d.ts +1 -1
  78. package/src/react/react-globals.d.ts +3 -0
  79. package/src/react/reactInterfaces.d.ts +8 -5
  80. package/src/react/useObservableState.d.ts +2 -0
  81. package/src/react/useSelector.d.ts +1 -1
  82. package/src/react/useWhen.d.ts +3 -0
  83. package/src/react-hooks/usePersistedObservable.d.ts +2 -2
  84. package/src/trackSelector.d.ts +2 -2
  85. package/src/tracking.d.ts +2 -3
@@ -0,0 +1,87 @@
1
+ import { isFunction, observe } from '@legendapp/state';
2
+ import { useQueryClient, notifyManager, MutationObserver, QueryObserver, InfiniteQueryObserver } from '@tanstack/react-query';
3
+
4
+ function persistPluginQuery({ query: options, mutation: mutationOptions, type = 'Query', queryClient, useContext, }) {
5
+ if (useContext) {
6
+ queryClient = queryClient || useQueryClient();
7
+ }
8
+ // Set up the defaults like useBaseQuery does
9
+ const defaultedOptions = queryClient.defaultQueryOptions(options);
10
+ // Include callbacks in batch renders
11
+ if (defaultedOptions.onError) {
12
+ defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);
13
+ }
14
+ if (defaultedOptions.onSuccess) {
15
+ defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);
16
+ }
17
+ if (defaultedOptions.onSettled) {
18
+ defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);
19
+ }
20
+ const Observer = type === 'Query' ? QueryObserver : InfiniteQueryObserver;
21
+ const ret = {
22
+ get({ onChange, state }) {
23
+ let observer = undefined;
24
+ let latestOptions = defaultedOptions;
25
+ let queryKeyFromFn;
26
+ const origQueryKey = options.queryKey;
27
+ // If the queryKey is a function, observe it and extract the raw value
28
+ const isKeyFunction = isFunction(origQueryKey);
29
+ if (isKeyFunction) {
30
+ observe(({ num }) => {
31
+ queryKeyFromFn = origQueryKey();
32
+ if (num > 0) {
33
+ updateQueryOptions(latestOptions);
34
+ }
35
+ });
36
+ }
37
+ // Since legend-state mutates the query options, we need to clone it to make Query
38
+ // see it as changed
39
+ const updateQueryOptions = (obj) => {
40
+ const ret = Object.assign({}, obj);
41
+ // Use the latest value from the observed queryKey function
42
+ if (isKeyFunction) {
43
+ ret.queryKey = queryKeyFromFn;
44
+ }
45
+ latestOptions = ret;
46
+ // Set the query options onto the persist state so it can be observed or modified
47
+ state.query.set(latestOptions);
48
+ // Update the Query options
49
+ if (observer) {
50
+ observer.setOptions(latestOptions, { listeners: false });
51
+ }
52
+ };
53
+ updateQueryOptions(defaultedOptions);
54
+ // Create the observer
55
+ observer = new Observer(queryClient, latestOptions);
56
+ // Get the initial optimistic results if it's already cached
57
+ const result = observer.getOptimisticResult(latestOptions);
58
+ // Put the query options in the state so we can observe them
59
+ state.query.onChange(({ value, changes }) => {
60
+ // If the queryKey changed, delete the queryHash so Query will re-fetch
61
+ if (changes.some((change) => change.path.includes('queryKey'))) {
62
+ delete value.queryHash;
63
+ }
64
+ updateQueryOptions(value);
65
+ });
66
+ // Subscribe to Query's observer and update the observable
67
+ observer.subscribe((result) => {
68
+ onChange({ value: result.data });
69
+ });
70
+ // Return the initial data
71
+ if (result) {
72
+ return result.data;
73
+ }
74
+ },
75
+ };
76
+ if (mutationOptions) {
77
+ const mutator = new MutationObserver(queryClient, mutationOptions);
78
+ // When the observable changes call the mutator function
79
+ ret.set = async ({ value }) => {
80
+ mutator.mutate(value);
81
+ };
82
+ }
83
+ return ret;
84
+ }
85
+
86
+ export { persistPluginQuery };
87
+ //# sourceMappingURL=query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.mjs","sources":["../../../../src/persist-plugins/query.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}