{"version":3,"file":"reastorageArray.mjs","sources":["../src/reastorageArray.ts"],"sourcesContent":["import { reastorage } from \"./reastorage\";\n\ntype InferArray<T> = T extends Array<infer U> ? U : never;\n\ntype RemoveValOrFn<T> = ((v: InferArray<T>) => boolean) | InferArray<T>;\n\nexport const reastorageArray = <T extends Array<any>>(\n  ...args: Parameters<typeof reastorage<T>>\n) => {\n  const storage = reastorage(...args);\n  return {\n    ...storage,\n    append(value: InferArray<T>) {\n      return storage.set((prev) => [...prev, value] as T);\n    },\n    remove(valOrFn: RemoveValOrFn<T>) {\n      return storage.set(\n        (prev) =>\n          (typeof valOrFn === \"function\"\n            ? prev.filter(valOrFn)\n            : prev.filter((v) => v !== valOrFn)) as T\n      );\n    },\n  };\n};\n\nexport type ReastorageArray<T extends Array<any>> = ReturnType<\n  typeof reastorageArray<T>\n>;\n"],"names":["reastorageArray","args","storage","reastorage","value","prev","valOrFn","v"],"mappings":"8CAMa,MAAAA,EAAkB,IAC1BC,IACA,CACH,MAAMC,EAAUC,EAAW,GAAGF,CAAI,EAClC,MAAO,CACL,GAAGC,EACH,OAAOE,EAAsB,CAC3B,OAAOF,EAAQ,IAAKG,GAAS,CAAC,GAAGA,EAAMD,CAAK,CAAM,CACpD,EACA,OAAOE,EAA2B,CAChC,OAAOJ,EAAQ,IACZG,GACE,OAAOC,GAAY,WAChBD,EAAK,OAAOC,CAAO,EACnBD,EAAK,OAAQE,GAAMA,IAAMD,CAAO,CACxC,CACF,CACF,CACF"}