{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {IMapFrame, IStore} from '@jscpd/core';\nimport {ensureDirSync} from 'fs-extra';\nimport {sync} from \"rimraf\";\nimport {Level} from \"level\";\n\n\nexport default class LevelDbStore implements IStore<IMapFrame> {\n  private name: string = '';\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  private dbs: Record<string, any> = {};\n  private readonly storeDir: string;\n\n  constructor(storeDir: string = '.jscpd') {\n    this.storeDir = storeDir;\n  }\n\n  get(key: string): Promise<IMapFrame> {\n    return this.dbs[this.name].get(key).then((value: string) => JSON.parse(value));\n  }\n\n  namespace(name: string): void {\n    this.name = name;\n    if (!(name in this.dbs)) {\n      const path = `${this.storeDir}/${name}`;\n      sync(path);\n      ensureDirSync(path);\n      this.dbs[name] = new Level(path);\n    }\n  }\n\n  set(key: string, value: IMapFrame): Promise<IMapFrame> {\n    return this.dbs[this.name].put(key, JSON.stringify(value));\n  }\n\n  close(): void {\n    Object.entries(this.dbs).forEach(([name, db]) => {\n      db.close(() => {\n        try {\n          sync(`${this.storeDir}/${name}`)\n        } catch (e) {\n          console.log(e);\n        }\n      });\n    });\n    sync(this.storeDir);\n  }\n}\n"],"mappings":";AACA,SAAQ,qBAAoB;AAC5B,SAAQ,YAAW;AACnB,SAAQ,aAAY;AAGpB,IAAqB,eAArB,MAA+D;AAAA,EACrD,OAAe;AAAA;AAAA,EAEf,MAA2B,CAAC;AAAA,EACnB;AAAA,EAEjB,YAAY,WAAmB,UAAU;AACvC,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,IAAI,KAAiC;AACnC,WAAO,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,CAAC,UAAkB,KAAK,MAAM,KAAK,CAAC;AAAA,EAC/E;AAAA,EAEA,UAAU,MAAoB;AAC5B,SAAK,OAAO;AACZ,QAAI,EAAE,QAAQ,KAAK,MAAM;AACvB,YAAM,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI;AACrC,WAAK,IAAI;AACT,oBAAc,IAAI;AAClB,WAAK,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,IAAI,KAAa,OAAsC;AACrD,WAAO,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EAC3D;AAAA,EAEA,QAAc;AACZ,WAAO,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM;AAC/C,SAAG,MAAM,MAAM;AACb,YAAI;AACF,eAAK,GAAG,KAAK,QAAQ,IAAI,IAAI,EAAE;AAAA,QACjC,SAAS,GAAG;AACV,kBAAQ,IAAI,CAAC;AAAA,QACf;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,SAAK,KAAK,QAAQ;AAAA,EACpB;AACF;","names":[]}