Skip to content

Commit defed16

Browse files
committed
refactor: remove return values from storage providers
1 parent 2701874 commit defed16

5 files changed

Lines changed: 22 additions & 18 deletions

File tree

lib/storage/providers/IDBKeyValProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const provider: StorageProvider = {
5555
}).result;
5656
return promisifyRequest(store.put(newValue, key));
5757
});
58-
return Promise.all(upsertMany);
58+
return Promise.all(upsertMany).then(() => undefined);
5959
});
6060
}),
6161
mergeItem(key, change) {

lib/storage/providers/MemoryOnlyProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ const provider: StorageProvider = {
9494
set(key, newValue);
9595
});
9696

97-
return Promise.resolve([]);
97+
return Promise.resolve();
9898
},
9999

100100
/**

lib/storage/providers/NoopProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const provider: StorageProvider = {
5454
* This function also removes all nested null values from an object.
5555
*/
5656
multiMerge() {
57-
return Promise.resolve([]);
57+
return Promise.resolve();
5858
},
5959

6060
/**

lib/storage/providers/SQLiteProvider.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ const provider: StorageProvider = {
6565
});
6666
},
6767
setItem(key, value) {
68-
return db.executeAsync('REPLACE INTO keyvaluepairs (record_key, valueJSON) VALUES (?, ?);', [key, JSON.stringify(value)]);
68+
return db.executeAsync('REPLACE INTO keyvaluepairs (record_key, valueJSON) VALUES (?, ?);', [key, JSON.stringify(value)]).then(() => undefined);
6969
},
7070
multiSet(pairs) {
7171
const stringifiedPairs = pairs.map((pair) => [pair[0], JSON.stringify(pair[1] === undefined ? null : pair[1])]);
7272
if (utils.isEmptyObject(stringifiedPairs)) {
7373
return Promise.resolve();
7474
}
75-
return db.executeBatchAsync([['REPLACE INTO keyvaluepairs (record_key, valueJSON) VALUES (?, json(?));', stringifiedPairs]]);
75+
return db.executeBatchAsync([['REPLACE INTO keyvaluepairs (record_key, valueJSON) VALUES (?, json(?));', stringifiedPairs]]).then(() => undefined);
7676
},
7777
multiMerge(pairs, mergeReplaceNullPatches) {
7878
const commands: SQLBatchTuple[] = [];
@@ -112,7 +112,7 @@ const provider: StorageProvider = {
112112
commands.push([replaceQuery, replaceQueryArguments]);
113113
}
114114

115-
return db.executeBatchAsync(commands);
115+
return db.executeBatchAsync(commands).then(() => undefined);
116116
},
117117
mergeItem(key, change) {
118118
// Since Onyx already merged the existing value with the changes, we can just set the value directly.
@@ -124,13 +124,13 @@ const provider: StorageProvider = {
124124
const result = rows?._array.map((row) => row.record_key);
125125
return (result ?? []) as KeyList;
126126
}),
127-
removeItem: (key) => db.executeAsync('DELETE FROM keyvaluepairs WHERE record_key = ?;', [key]),
127+
removeItem: (key) => db.executeAsync('DELETE FROM keyvaluepairs WHERE record_key = ?;', [key]).then(() => undefined),
128128
removeItems: (keys) => {
129129
const placeholders = keys.map(() => '?').join(',');
130130
const query = `DELETE FROM keyvaluepairs WHERE record_key IN (${placeholders});`;
131-
return db.executeAsync(query, keys);
131+
return db.executeAsync(query, keys).then(() => undefined);
132132
},
133-
clear: () => db.executeAsync('DELETE FROM keyvaluepairs;', []),
133+
clear: () => db.executeAsync('DELETE FROM keyvaluepairs;', []).then(() => undefined),
134134
getDatabaseSize() {
135135
return Promise.all([db.executeAsync('PRAGMA page_size;'), db.executeAsync('PRAGMA page_count;'), getFreeDiskStorage()]).then(([pageSizeResult, pageCountResult, bytesRemaining]) => {
136136
const pageSize: number = pageSizeResult.rows?.item(0).page_size;

lib/storage/providers/types.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
import type {BatchQueryResult, QueryResult} from 'react-native-quick-sqlite';
21
import type {MixedOperationsQueue, OnyxKey, OnyxValue} from '../../types';
32

43
type KeyValuePair = [OnyxKey, OnyxValue<OnyxKey>];
54
type KeyList = OnyxKey[];
65
type KeyValuePairList = KeyValuePair[];
76

7+
type DatabaseSize = {
8+
bytesUsed: number;
9+
bytesRemaining: number;
10+
};
11+
812
type OnStorageKeyChanged = <TKey extends OnyxKey>(key: TKey, value: OnyxValue<TKey>) => void;
913

1014
type StorageProvider = {
@@ -29,23 +33,23 @@ type StorageProvider = {
2933
/**
3034
* Sets the value for a given key. The only requirement is that the value should be serializable to JSON string
3135
*/
32-
setItem: <TKey extends OnyxKey>(key: TKey, value: OnyxValue<TKey>) => Promise<QueryResult | void>;
36+
setItem: <TKey extends OnyxKey>(key: TKey, value: OnyxValue<TKey>) => Promise<void>;
3337

3438
/**
3539
* Stores multiple key-value pairs in a batch
3640
*/
37-
multiSet: (pairs: KeyValuePairList) => Promise<BatchQueryResult | void>;
41+
multiSet: (pairs: KeyValuePairList) => Promise<void>;
3842

3943
/**
4044
* Multiple merging of existing and new values in a batch
4145
*/
42-
multiMerge: (pairs: KeyValuePairList, mergeReplaceNullPatches?: MixedOperationsQueue['mergeReplaceNullPatches']) => Promise<BatchQueryResult | IDBValidKey[] | void>;
46+
multiMerge: (pairs: KeyValuePairList, mergeReplaceNullPatches?: MixedOperationsQueue['mergeReplaceNullPatches']) => Promise<void>;
4347

4448
/**
4549
* Merges an existing value with a new one
4650
* @param change - the change to merge with the existing value
4751
*/
48-
mergeItem: <TKey extends OnyxKey>(key: TKey, change: OnyxValue<TKey>) => Promise<BatchQueryResult | void>;
52+
mergeItem: <TKey extends OnyxKey>(key: TKey, change: OnyxValue<TKey>) => Promise<void>;
4953

5054
/**
5155
* Returns all keys available in storage
@@ -55,22 +59,22 @@ type StorageProvider = {
5559
/**
5660
* Removes given key and its value from storage
5761
*/
58-
removeItem: (key: OnyxKey) => Promise<QueryResult | void>;
62+
removeItem: (key: OnyxKey) => Promise<void>;
5963

6064
/**
6165
* Removes given keys and their values from storage
6266
*/
63-
removeItems: (keys: KeyList) => Promise<QueryResult | void>;
67+
removeItems: (keys: KeyList) => Promise<void>;
6468

6569
/**
6670
* Clears absolutely everything from storage
6771
*/
68-
clear: () => Promise<QueryResult | void>;
72+
clear: () => Promise<void>;
6973

7074
/**
7175
* Gets the total bytes of the database file
7276
*/
73-
getDatabaseSize: () => Promise<{bytesUsed: number; bytesRemaining: number}>;
77+
getDatabaseSize: () => Promise<DatabaseSize>;
7478

7579
/**
7680
* @param onStorageKeyChanged Storage synchronization mechanism keeping all opened tabs in sync

0 commit comments

Comments
 (0)