react-native-nitro-storage 0.8.0 → 0.9.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.
- package/CHANGELOG.md +22 -0
- package/README.md +75 -19
- package/cpp/bindings/HybridStorage.cpp +5 -12
- package/cpp/bindings/HybridStorage.hpp +1 -1
- package/lib/commonjs/storage-core.js +7 -4
- package/lib/commonjs/storage-core.js.map +1 -1
- package/lib/module/storage-core.js +7 -4
- package/lib/module/storage-core.js.map +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/storage-core.d.ts +3 -3
- package/lib/typescript/storage-core.d.ts.map +1 -1
- package/lib/typescript/testing.d.ts.map +1 -1
- package/nitrogen/generated/shared/c++/HybridStorageSpec.hpp +1 -1
- package/package.json +3 -3
- package/react-native-nitro-storage.podspec +3 -1
- package/src/storage-core.ts +10 -7
package/src/storage-core.ts
CHANGED
|
@@ -178,14 +178,14 @@ export type StorageClearOptions = {
|
|
|
178
178
|
};
|
|
179
179
|
|
|
180
180
|
export type SetItemConfig<TMember extends string = string> = Omit<
|
|
181
|
-
StorageItemConfig<Record<
|
|
181
|
+
StorageItemConfig<Partial<Record<TMember, true>>>,
|
|
182
182
|
"defaultValue" | "serialize" | "deserialize"
|
|
183
183
|
> & {
|
|
184
184
|
defaultValue?: readonly TMember[];
|
|
185
185
|
};
|
|
186
186
|
|
|
187
187
|
export type SetStorageItem<TMember extends string = string> = {
|
|
188
|
-
get: () => Record<
|
|
188
|
+
get: () => Partial<Record<TMember, true>>;
|
|
189
189
|
has: (id: TMember) => boolean;
|
|
190
190
|
add: (id: TMember) => void;
|
|
191
191
|
delete: (id: TMember) => void;
|
|
@@ -197,7 +197,7 @@ export type SetStorageItem<TMember extends string = string> = {
|
|
|
197
197
|
subscribe: (callback: () => void) => () => void;
|
|
198
198
|
scope: StorageScope;
|
|
199
199
|
key: string;
|
|
200
|
-
item: StorageItem<Record<
|
|
200
|
+
item: StorageItem<Partial<Record<TMember, true>>>;
|
|
201
201
|
};
|
|
202
202
|
|
|
203
203
|
export type StorageCoreBackend = {
|
|
@@ -2753,14 +2753,14 @@ export function createStorageCore(
|
|
|
2753
2753
|
config: SetItemConfig<TMember>,
|
|
2754
2754
|
): SetStorageItem<TMember> {
|
|
2755
2755
|
const { defaultValue, ...rest } = config;
|
|
2756
|
-
const initial: Record<
|
|
2756
|
+
const initial: Partial<Record<TMember, true>> = {};
|
|
2757
2757
|
if (defaultValue) {
|
|
2758
2758
|
for (const id of defaultValue) {
|
|
2759
2759
|
initial[id] = true;
|
|
2760
2760
|
}
|
|
2761
2761
|
}
|
|
2762
2762
|
|
|
2763
|
-
const item = createStorageItem<Record<
|
|
2763
|
+
const item = createStorageItem<Partial<Record<TMember, true>>>({
|
|
2764
2764
|
...rest,
|
|
2765
2765
|
defaultValue: initial,
|
|
2766
2766
|
});
|
|
@@ -2768,10 +2768,13 @@ export function createStorageCore(
|
|
|
2768
2768
|
const has = (id: TMember): boolean => item.get()[id] === true;
|
|
2769
2769
|
|
|
2770
2770
|
const add = (id: TMember): void => {
|
|
2771
|
-
|
|
2771
|
+
const current = item.get();
|
|
2772
|
+
if (current[id] === true) {
|
|
2772
2773
|
return;
|
|
2773
2774
|
}
|
|
2774
|
-
|
|
2775
|
+
const next = { ...current };
|
|
2776
|
+
next[id] = true;
|
|
2777
|
+
item.set(next);
|
|
2775
2778
|
};
|
|
2776
2779
|
|
|
2777
2780
|
const deleteId = (id: TMember): void => {
|