enmap-wrapper
Version:
Object Oriented Wrapper for Enmap
1 lines • 2.36 kB
Source Map (JSON)
{"version":3,"sources":["../src/Database.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Enmap, { EnmapOptions } from \"enmap\";\nimport Stumper from \"stumper\";\n\nexport abstract class Database {\n protected db: Enmap;\n protected name: string;\n\n protected constructor(protected options: EnmapOptions<any, any>) {\n this.db = new Enmap(options);\n this.name = options.name || \"Database\";\n }\n\n wipe(): void {\n Stumper.info(`Wiping ${this.name} database`, \"common:Database:wipe\");\n this.db.clear();\n }\n\n getNumOfKeys(): number {\n return this.db.count;\n }\n\n protected getAllValues(): any[] {\n const arr = Array.from(this.db);\n return arr.map((val) => val[1]);\n }\n\n protected getAllKeys(): (string | number)[] {\n return Array.from(this.db.keys());\n }\n\n protected getAllKeysAndValues(): { key: string | number; value: any }[] {\n const arr = Array.from(this.db);\n return arr.map((val) => {\n return { key: val[0], value: val[1] };\n });\n }\n\n close(): void {\n Stumper.warning(`Closing database: ${this.name}`, \"common:Database:close\");\n this.db.close();\n }\n\n // Exists because Enmap's ensure() method expects an object as the value\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n protected ensure(key: string, value: any): void {\n if (!this.db.has(key)) {\n this.db.set(key, value);\n }\n }\n}\n"],"mappings":";AACA,OAAO,WAA6B;AACpC,OAAO,aAAa;AAEb,IAAe,WAAf,MAAwB;AAAA,EAInB,YAAsB,SAAiC;AAAjC;AAC9B,SAAK,KAAK,IAAI,MAAM,OAAO;AAC3B,SAAK,OAAO,QAAQ,QAAQ;AAAA,EAC9B;AAAA,EAEA,OAAa;AACX,YAAQ,KAAK,UAAU,KAAK,IAAI,aAAa,sBAAsB;AACnE,SAAK,GAAG,MAAM;AAAA,EAChB;AAAA,EAEA,eAAuB;AACrB,WAAO,KAAK,GAAG;AAAA,EACjB;AAAA,EAEU,eAAsB;AAC9B,UAAM,MAAM,MAAM,KAAK,KAAK,EAAE;AAC9B,WAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;AAAA,EAChC;AAAA,EAEU,aAAkC;AAC1C,WAAO,MAAM,KAAK,KAAK,GAAG,KAAK,CAAC;AAAA,EAClC;AAAA,EAEU,sBAA8D;AACtE,UAAM,MAAM,MAAM,KAAK,KAAK,EAAE;AAC9B,WAAO,IAAI,IAAI,CAAC,QAAQ;AACtB,aAAO,EAAE,KAAK,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE;AAAA,IACtC,CAAC;AAAA,EACH;AAAA,EAEA,QAAc;AACZ,YAAQ,QAAQ,qBAAqB,KAAK,IAAI,IAAI,uBAAuB;AACzE,SAAK,GAAG,MAAM;AAAA,EAChB;AAAA;AAAA;AAAA,EAIU,OAAO,KAAa,OAAkB;AAC9C,QAAI,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG;AACrB,WAAK,GAAG,IAAI,KAAK,KAAK;AAAA,IACxB;AAAA,EACF;AACF;","names":[]}