react-native-onyx 2.0.23 → 2.0.24

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.
@@ -8,6 +8,8 @@ declare const InstanceSync: {
8
8
  setItem: (...args: any[]) => void;
9
9
  removeItem: (...args: any[]) => void;
10
10
  removeItems: (...args: any[]) => void;
11
+ multiMerge: (...args: any[]) => void;
12
+ multiSet: (...args: any[]) => void;
11
13
  mergeItem: (...args: any[]) => void;
12
14
  clear: <T extends () => void>(callback: T) => Promise<void>;
13
15
  };
@@ -14,6 +14,8 @@ const InstanceSync = {
14
14
  setItem: noop_1.default,
15
15
  removeItem: noop_1.default,
16
16
  removeItems: noop_1.default,
17
+ multiMerge: noop_1.default,
18
+ multiSet: noop_1.default,
17
19
  mergeItem: noop_1.default,
18
20
  clear: (callback) => Promise.resolve(callback()),
19
21
  };
@@ -21,6 +21,8 @@ declare const InstanceSync: {
21
21
  setItem: typeof raiseStorageSyncEvent;
22
22
  removeItem: typeof raiseStorageSyncEvent;
23
23
  removeItems: typeof raiseStorageSyncManyKeysEvent;
24
+ multiMerge: typeof raiseStorageSyncManyKeysEvent;
25
+ multiSet: typeof raiseStorageSyncManyKeysEvent;
24
26
  mergeItem: typeof raiseStorageSyncEvent;
25
27
  clear: (clearImplementation: () => void) => Promise<void>;
26
28
  };
@@ -39,6 +39,8 @@ const InstanceSync = {
39
39
  setItem: raiseStorageSyncEvent,
40
40
  removeItem: raiseStorageSyncEvent,
41
41
  removeItems: raiseStorageSyncManyKeysEvent,
42
+ multiMerge: raiseStorageSyncManyKeysEvent,
43
+ multiSet: raiseStorageSyncManyKeysEvent,
42
44
  mergeItem: raiseStorageSyncEvent,
43
45
  clear: (clearImplementation) => {
44
46
  let allKeys;
@@ -6,7 +6,7 @@ declare const StorageMock: {
6
6
  setItem: jest.Mock<Promise<void | import("react-native-quick-sqlite").QueryResult>, [key: any, value: unknown]>;
7
7
  multiSet: jest.Mock<Promise<void | import("react-native-quick-sqlite").BatchQueryResult>, [pairs: import("../providers/types").KeyValuePairList]>;
8
8
  mergeItem: jest.Mock<Promise<void | import("react-native-quick-sqlite").BatchQueryResult>, [key: any, changes: unknown, modifiedData: unknown]>;
9
- multiMerge: jest.Mock<Promise<import("react-native-quick-sqlite").BatchQueryResult | IDBValidKey[]>, [pairs: import("../providers/types").KeyValuePairList]>;
9
+ multiMerge: jest.Mock<Promise<void | import("react-native-quick-sqlite").BatchQueryResult | IDBValidKey[]>, [pairs: import("../providers/types").KeyValuePairList]>;
10
10
  removeItem: jest.Mock<Promise<void | import("react-native-quick-sqlite").QueryResult>, [key: string]>;
11
11
  removeItems: jest.Mock<Promise<void | import("react-native-quick-sqlite").QueryResult>, [keys: import("../providers/types").KeyList]>;
12
12
  clear: jest.Mock<Promise<void | import("react-native-quick-sqlite").QueryResult>, []>;
@@ -108,7 +108,13 @@ const Storage = {
108
108
  /**
109
109
  * Stores multiple key-value pairs in a batch
110
110
  */
111
- multiSet: (pairs) => tryOrDegradePerformance(() => provider.multiSet(pairs)),
111
+ multiSet: (pairs) => tryOrDegradePerformance(() => {
112
+ const promise = provider.multiSet(pairs);
113
+ if (shouldKeepInstancesSync) {
114
+ return promise.then(() => InstanceSync_1.default.multiSet(pairs.map((pair) => pair[0])));
115
+ }
116
+ return promise;
117
+ }),
112
118
  /**
113
119
  * Merging an existing value with a new one
114
120
  */
@@ -123,7 +129,13 @@ const Storage = {
123
129
  * Multiple merging of existing and new values in a batch
124
130
  * This function also removes all nested null values from an object.
125
131
  */
126
- multiMerge: (pairs) => tryOrDegradePerformance(() => provider.multiMerge(pairs)),
132
+ multiMerge: (pairs) => tryOrDegradePerformance(() => {
133
+ const promise = provider.multiMerge(pairs);
134
+ if (shouldKeepInstancesSync) {
135
+ return promise.then(() => InstanceSync_1.default.multiMerge(pairs.map((pair) => pair[0])));
136
+ }
137
+ return promise;
138
+ }),
127
139
  /**
128
140
  * Removes given key and its value
129
141
  */
@@ -32,7 +32,7 @@ type StorageProvider = {
32
32
  /**
33
33
  * Multiple merging of existing and new values in a batch
34
34
  */
35
- multiMerge: (pairs: KeyValuePairList) => Promise<BatchQueryResult | IDBValidKey[]>;
35
+ multiMerge: (pairs: KeyValuePairList) => Promise<BatchQueryResult | IDBValidKey[] | void>;
36
36
  /**
37
37
  * Merges an existing value with a new one by leveraging JSON_PATCH
38
38
  * @param changes - the delta for a specific key
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-onyx",
3
- "version": "2.0.23",
3
+ "version": "2.0.24",
4
4
  "author": "Expensify, Inc.",
5
5
  "homepage": "https://expensify.com",
6
6
  "description": "State management for React Native",