{"version":3,"file":"reastorageObject.mjs","sources":["../src/reastorageObject.ts"],"sourcesContent":["import { reastorage } from \"./reastorage\";\nimport { isUpdaterFn, UpdaterFn } from \"./utils\";\n\nexport type AnyRecord = Record<string, any>;\n\nexport const reastorageObject = <T extends AnyRecord>(\n  ...args: Parameters<typeof reastorage<T>>\n) => {\n  const storage = reastorage(...args);\n  return {\n    ...storage,\n    append<K extends keyof T>(key: K, value: T[K] | UpdaterFn<T[K]>) {\n      return storage.set((prev) => ({\n        ...prev,\n        [key]: isUpdaterFn(value) ? value(prev[key]) : value,\n      }));\n    },\n    remove<K extends keyof T>(key: K) {\n      return storage.set((prev) => {\n        const { [key]: _, ...rest } = prev;\n        return rest as T;\n      });\n    },\n  };\n};\n\nexport type ReastorageObject<T extends AnyRecord> = ReturnType<\n  typeof reastorageObject<T>\n>;\n"],"names":["reastorageObject","args","storage","reastorage","key","value","prev","isUpdaterFn","_","rest"],"mappings":"wFAKO,MAAMA,EAAmB,IAC3BC,IACA,CACH,MAAMC,EAAUC,EAAW,GAAGF,CAAI,EAClC,MAAO,CACL,GAAGC,EACH,OAA0BE,EAAQC,EAA+B,CAC/D,OAAOH,EAAQ,IAAKI,IAAU,CAC5B,GAAGA,EACH,CAACF,GAAMG,EAAYF,CAAK,EAAIA,EAAMC,EAAKF,EAAI,EAAIC,CACjD,EAAE,CACJ,EACA,OAA0BD,EAAQ,CAChC,OAAOF,EAAQ,IAAKI,GAAS,CAC3B,KAAM,EAAGF,GAAMI,KAAMC,CAAK,EAAIH,EAC9B,OAAOG,CACT,CAAC,CACH,CACF,CACF"}