{"version":3,"file":"memstorage.cjs","names":["cloneObject"],"sources":["../../../src/common/storage/memstorage.ts"],"sourcesContent":["import type { Json, ObjectStorage } from '../types'\nimport { cloneObject } from '../data/utils'\n\n// const log = Logger('zeed:memstorage', 'error')\n\nexport interface MemStorageOptions {\n  objectFromString?: (data: string) => any\n  objectToString?: (data: any) => string\n}\n\nexport class MemStorage<T = Json> implements ObjectStorage<T> {\n  private store: Record<string, T> = {}\n  // private pretty: boolean = false\n  // private objectFromString: (data: string) => any\n  // private objectToString: (data: any) => string\n\n  constructor(_opt: MemStorageOptions = {}) {\n    // this.objectToString =\n    //   opt.objectToString ??\n    //   ((data: any): string => {\n    //     return this.pretty\n    //       ? JSON.stringify(data, null, 2)\n    //       : JSON.stringify(data)\n    //   })\n    // this.objectFromString =\n    //   opt.objectFromString ??\n    //   ((data: string) => {\n    //     try {\n    //       return JSON.parse(data)\n    //     } catch (err) {\n    //       log.warn(`MemStorage parse error '${err}' in`, data)\n    //     }\n    //   })\n  }\n\n  setItem(key: string, value: T): void {\n    // const data = this.objectToString(value)\n    this.store[key] = cloneObject(value)\n  }\n\n  getItem(key: string): T | undefined {\n    return cloneObject(this.store[key])\n  }\n\n  removeItem(key: string): void {\n    delete this.store[key]\n  }\n\n  clear(): void {\n    this.store = {}\n  }\n\n  allKeys(): string[] {\n    return Object.keys(this.store)\n  }\n}\n"],"mappings":";;;;AAUA,IAAa,aAAb,MAA8D;CAC5D,AAAQ,QAA2B,EAAE;CAKrC,YAAY,OAA0B,EAAE,EAAE;CAmB1C,QAAQ,KAAa,OAAgB;AAEnC,OAAK,MAAM,OAAOA,sCAAY,MAAM;;CAGtC,QAAQ,KAA4B;AAClC,SAAOA,sCAAY,KAAK,MAAM,KAAK;;CAGrC,WAAW,KAAmB;AAC5B,SAAO,KAAK,MAAM;;CAGpB,QAAc;AACZ,OAAK,QAAQ,EAAE;;CAGjB,UAAoB;AAClB,SAAO,OAAO,KAAK,KAAK,MAAM"}