react-native-onyx 2.0.23 → 2.0.25
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/Logger.d.ts +6 -2
- package/dist/Logger.js +8 -1
- package/dist/storage/InstanceSync/index.d.ts +2 -0
- package/dist/storage/InstanceSync/index.js +2 -0
- package/dist/storage/InstanceSync/index.web.d.ts +2 -0
- package/dist/storage/InstanceSync/index.web.js +2 -0
- package/dist/storage/__mocks__/index.d.ts +1 -1
- package/dist/storage/index.js +15 -3
- package/dist/storage/providers/types.d.ts +1 -1
- package/package.json +1 -1
package/dist/Logger.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
type LogData = {
|
|
2
2
|
message: string;
|
|
3
|
-
level: 'alert' | 'info';
|
|
3
|
+
level: 'alert' | 'info' | 'hmmm';
|
|
4
4
|
};
|
|
5
5
|
type LoggerCallback = (data: LogData) => void;
|
|
6
6
|
/**
|
|
@@ -15,4 +15,8 @@ declare function logAlert(message: string): void;
|
|
|
15
15
|
* Send an info message to the logger
|
|
16
16
|
*/
|
|
17
17
|
declare function logInfo(message: string): void;
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Send an hmmm message to the logger
|
|
20
|
+
*/
|
|
21
|
+
declare function logHmmm(message: string): void;
|
|
22
|
+
export { registerLogger, logInfo, logAlert, logHmmm };
|
package/dist/Logger.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logAlert = exports.logInfo = exports.registerLogger = void 0;
|
|
3
|
+
exports.logHmmm = exports.logAlert = exports.logInfo = exports.registerLogger = void 0;
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
5
5
|
let logger = () => { };
|
|
6
6
|
/**
|
|
@@ -24,3 +24,10 @@ function logInfo(message) {
|
|
|
24
24
|
logger({ message: `[Onyx] ${message}`, level: 'info' });
|
|
25
25
|
}
|
|
26
26
|
exports.logInfo = logInfo;
|
|
27
|
+
/**
|
|
28
|
+
* Send an hmmm message to the logger
|
|
29
|
+
*/
|
|
30
|
+
function logHmmm(message) {
|
|
31
|
+
logger({ message: `[Onyx] ${message}`, level: 'hmmm' });
|
|
32
|
+
}
|
|
33
|
+
exports.logHmmm = logHmmm;
|
|
@@ -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>, []>;
|
package/dist/storage/index.js
CHANGED
|
@@ -40,7 +40,7 @@ const initPromise = new Promise((resolve) => {
|
|
|
40
40
|
* Degrade performance by removing the storage provider and only using cache
|
|
41
41
|
*/
|
|
42
42
|
function degradePerformance(error) {
|
|
43
|
-
Logger.
|
|
43
|
+
Logger.logHmmm(`Error while using ${provider.name}. Falling back to only using cache and dropping storage.\n Error: ${error.message}\n Stack: ${error.stack}\n Cause: ${error.cause}`);
|
|
44
44
|
console.error(error);
|
|
45
45
|
provider = MemoryOnlyProvider_1.default;
|
|
46
46
|
}
|
|
@@ -108,7 +108,13 @@ const Storage = {
|
|
|
108
108
|
/**
|
|
109
109
|
* Stores multiple key-value pairs in a batch
|
|
110
110
|
*/
|
|
111
|
-
multiSet: (pairs) => tryOrDegradePerformance(() =>
|
|
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(() =>
|
|
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
|