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.
@@ -178,14 +178,14 @@ export type StorageClearOptions = {
178
178
  };
179
179
 
180
180
  export type SetItemConfig<TMember extends string = string> = Omit<
181
- StorageItemConfig<Record<string, true>>,
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<string, true>;
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<string, true>>;
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<string, true> = {};
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<string, true>>({
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
- if (item.get()[id] === true) {
2771
+ const current = item.get();
2772
+ if (current[id] === true) {
2772
2773
  return;
2773
2774
  }
2774
- item.merge({ [id]: true });
2775
+ const next = { ...current };
2776
+ next[id] = true;
2777
+ item.set(next);
2775
2778
  };
2776
2779
 
2777
2780
  const deleteId = (id: TMember): void => {