UNPKG

justdata

Version:

a JSON/YAML/LocalStorage database module

237 lines (181 loc) 5.07 kB
const langs = ["tr", "en","de","ru","az"]; module.exports = { setOptions() { var adapter = this.adapter || require("../Just/jsondb") this.options = { dbName: "justdata", dbFolder: "JustBase", BlankData: this.BlankData || false, readable: this.readable || false, language: this.lang ? this.lang : "tr" } this.message = this.lang ? require(`../dil/${this.lang.toLowerCase()}.json`) : require(`../dil/tr.json`); this.adapter = adapter.set ? adapter : new adapter(this.options); }, setLanguage(lang) { this.lang = lang ? (langs.includes(lang.toLowerCase()) ? lang.toLowerCase() : "tr") : "tr"; this.message = require(`../dil/${this.lang.toLowerCase()}.json`); this.setOptions(); return lang; }, setAdapter(adapter) { var adapter = require("../Just/"+adapter) || require("../Just/jsondb") this.setOptions(); return true; }, setReadable(boolean) { this.readable = boolean ? (typeof boolean === "boolean" ? true : false) : false; this.setOptions(); return this.readable; }, setBlankData(boolean) { this.BlankData = boolean ? (typeof boolean === "boolean" ? boolean : false) : false; this.setOptions(); return this.BlankData; }, set(db, data) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } if(!data) { throw new TypeError(this.message["hatalar"]["data"]); } return this.adapter.set(db, data); }, get(db) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } try { return this.adapter.get(db); } catch(err) { return undefined; } }, fetch(db) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } try { return this.adapter.get(db); } catch(err) { return undefined; } }, has(db) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } try { return this.adapter.get(db) ? true : false; } catch(err) { return false; } }, delete(db) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } try { return this.adapter.delete(db); } catch (err) { return false; } }, add(db, number) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } if(!number) { throw new TypeError(this.message["hatalar"]["data"]); } if(isNaN(number)) { throw new TypeError(this.message["hatalar"]["numara"]); } return this.adapter.add(db, number); }, subtract(db, number) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } if(!number) { throw new TypeError(this.message["hatalar"]["data"]); } if(isNaN(number)) { throw new TypeError(this.message["hatalar"]["numara"]); } return this.adapter.subtract(db, number); }, push(db, data) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } if(!data) { throw new TypeError(this.message["hatalar"]["data"]); } return this.adapter.push(db, data); }, unpush(db, data) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } if(!data) { throw new TypeError(this.message["hatalar"]["data"]); } return this.adapter.unpush(db, data); }, delByPriority(db, number) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } if(!number) { throw new TypeError(this.message["hatalar"]["data"]); } if(isNaN(number)) { throw new TypeError(this.message["hatalar"]["numara"]); } return this.adapter.delByPriority(db, number); }, setByPriority(db, data, number) { this.setOptions(); if(!db) { throw new TypeError(this.message["hatalar"]["isim"]); } if(!data) { throw new TypeError(this.message["hatalar"]["data"]); } if(!number) { throw new TypeError(this.message["hatalar"]["data"]); } if(isNaN(number)) { throw new TypeError(this.message["hatalar"]["numara"]); } return this.adapter.delByPriority(db, number); }, all() { this.setOptions(); return this.adapter.all(); }, deleteAll() { this.setOptions(); return this.adapter.deleteAll(); }, move(quickDB) { console.log("QuickDB to JustData: Started copying database.") quickDB.fetchAll().map((data) => { this.adapter.set(data.ID, data.data) console.log(`QuickDB to JustData: Copied ${data.ID}`) }) return true; } }