croxydb
Advanced tools
Comparing version 0.0.2 to 0.0.3
178
index.js
@@ -1,8 +0,6 @@ | ||
const functions = require("./functions.js"); | ||
const langs = ["tr", "en"]; | ||
const fs = require("fs"); | ||
const adapters = ["jsondb", "localstorage", "yamldb"] | ||
class CroxyDB { | ||
constructor(options) { | ||
constructor(adapter, options) { | ||
this.dbName = options["dbName"]; | ||
@@ -14,10 +12,15 @@ this.dbFolder = options["dbFolder"]; | ||
this.message = require(`./language/${this.lang.toLowerCase()}.json`); | ||
functions.fetchFiles(this.dbFolder, this.dbName); | ||
this.options = { | ||
dbName: this.dbName, | ||
dbFolder: this.dbFolder, | ||
noBlankData: this.noBlankData, | ||
readable: this.readable, | ||
language: this.lang | ||
} | ||
this.adapter = new adapter(this.options); | ||
} | ||
set(db, data) { | ||
functions.fetchFiles(this.dbFolder, this.dbName); | ||
if(!db) { | ||
if(!db) { | ||
throw new TypeError(this.message["errors"]["blankName"]); | ||
@@ -30,12 +33,3 @@ } | ||
var content = JSON.parse(fs.readFileSync(`./${this.dbFolder}/${this.dbName}.json`, "utf8")); | ||
functions.set(db, data, content); | ||
if(this.readable) { | ||
fs.writeFileSync(`./${this.dbFolder}/${this.dbName}.json`, JSON.stringify(content, null, 2)); | ||
} else { | ||
fs.writeFileSync(`./${this.dbFolder}/${this.dbName}.json`, JSON.stringify(content)); | ||
} | ||
return this.get(db); | ||
return this.adapter.set(db, data); | ||
} | ||
@@ -49,6 +43,4 @@ | ||
var content = JSON.parse(fs.readFileSync(`./${this.dbFolder}/${this.dbName}.json`, "utf8")); | ||
return this.adapter.get(db); | ||
return functions.get(content, ...db.split(".")); | ||
} | ||
@@ -62,6 +54,4 @@ | ||
var content = JSON.parse(fs.readFileSync(`./${this.dbFolder}/${this.dbName}.json`, "utf8")); | ||
return this.adapter.get(db); | ||
return functions.get(content, ...db.split(".")); | ||
} | ||
@@ -75,10 +65,7 @@ | ||
var content = JSON.parse(fs.readFileSync(`./${this.dbFolder}/${this.dbName}.json`, "utf8")); | ||
return this.adapter.get(db) ? true : false; | ||
return functions.get(content, ...db.split(".")) ? true : false; | ||
} | ||
delete(db) { | ||
functions.fetchFiles(this.dbFolder, this.dbName); | ||
@@ -89,25 +76,8 @@ if(!db) { | ||
var content = JSON.parse(fs.readFileSync(`./${this.dbFolder}/${this.dbName}.json`, "utf8")); | ||
return this.adapter.delete(db); | ||
if(!this.get(db)) { | ||
return false; | ||
} | ||
functions.delete(content, db); | ||
if(this.noBlankData === true) { | ||
functions.removeEmptyData(content); | ||
} | ||
if(this.readable) { | ||
fs.writeFileSync(`./${this.dbFolder}/${this.dbName}.json`, JSON.stringify(content, null, 2)); | ||
} else { | ||
fs.writeFileSync(`./${this.dbFolder}/${this.dbName}.json`, JSON.stringify(content)); | ||
} | ||
return true; | ||
} | ||
add(db, number) { | ||
if(!db) { | ||
@@ -125,5 +95,3 @@ throw new TypeError(this.message["errors"]["blankName"]); | ||
this.set(db, Number(this.get(db) ? (isNaN(this.get(db)) ? Number(number) : this.get(db)+Number(number)) : Number(number))); | ||
return this.get(db); | ||
return this.adapter.add(db, number); | ||
@@ -133,3 +101,3 @@ } | ||
subtract(db, number) { | ||
if(!db) { | ||
@@ -147,16 +115,4 @@ throw new TypeError(this.message["errors"]["blankName"]); | ||
if(this.get(db)-number <= 1) { | ||
this.delete(db); | ||
return (this.get(db) || 0); | ||
} | ||
return this.adapter.subtract(db, number); | ||
if(!this.get(db)) { | ||
this.delete(db); | ||
return (this.get(db) || 0); | ||
} | ||
this.set(db, this.get(db) ? (this.get(db)-Number(number) <= 1 ? 1 : (isNaN(this.get(db)) ? 1 : this.get(db)-Number(number)) || 1) : 1); | ||
return this.get(db); | ||
} | ||
@@ -166,3 +122,3 @@ | ||
if(!db) { | ||
if(!db) { | ||
throw new TypeError(this.message["errors"]["blankName"]); | ||
@@ -175,18 +131,3 @@ } | ||
var arr = []; | ||
if(this.get(db)) { | ||
if(typeof this.get(db) !== "object") { | ||
arr = []; | ||
} else { | ||
arr = this.get(db); | ||
} | ||
} | ||
arr.push(data); | ||
this.set(db, arr); | ||
return this.get(db); | ||
return this.adapter.push(db, data); | ||
} | ||
@@ -196,3 +137,3 @@ | ||
if(!db) { | ||
if(!db) { | ||
throw new TypeError(this.message["errors"]["blankName"]); | ||
@@ -205,14 +146,3 @@ } | ||
var arr = []; | ||
if(this.get(db)) { | ||
arr = this.get(db); | ||
} | ||
arr = arr.filter((x) => x !== data); | ||
this.set(db, arr); | ||
return this.get(db); | ||
return this.adapter.push(db, data); | ||
} | ||
@@ -223,7 +153,7 @@ | ||
if(!db) { | ||
throw new TypeError(this.message["errors"]["blankData"]); | ||
throw new TypeError(this.message["errors"]["blankName"]); | ||
} | ||
if(!number) { | ||
throw new TypeError(this.message["errors"]["blankNumber"]); | ||
throw new TypeError(this.message["errors"]["blankData"]); | ||
} | ||
@@ -235,22 +165,4 @@ | ||
if(!this.get(db) || this.get(db).length < 1) { | ||
return false; | ||
} | ||
return this.adapter.delByPriority(db, number); | ||
let content = this.get(db); | ||
let neww = []; | ||
if (typeof content !== "object") { | ||
return false; | ||
} | ||
for (let a = 0; a < content.length; a++) { | ||
if (a !== (number-1)) { | ||
neww.push(content[`${a}`]); | ||
} | ||
} | ||
this.set(db, neww); | ||
return this.get(db); | ||
} | ||
@@ -261,3 +173,3 @@ | ||
if(!db) { | ||
throw new TypeError(this.message["errors"]["blankData"]); | ||
throw new TypeError(this.message["errors"]["blankName"]); | ||
} | ||
@@ -270,3 +182,3 @@ | ||
if(!number) { | ||
throw new TypeError(this.message["errors"]["blankNumber"]); | ||
throw new TypeError(this.message["errors"]["blankData"]); | ||
} | ||
@@ -278,32 +190,10 @@ | ||
if(!this.get(db) || this.get(db).length < 1) { | ||
return false; | ||
} | ||
return this.adapter.delByPriority(db, number); | ||
let content = this.get(db); | ||
let neww = []; | ||
if (typeof content !== "object") { | ||
return false; | ||
} | ||
for (let a = 0; a < content.length; a++) { | ||
let val = content[`${a}`]; | ||
if(a === (number-1)) { | ||
neww.push(data); | ||
} else { | ||
neww.push(val); | ||
} | ||
} | ||
this.set(db, neww); | ||
return this.get(db); | ||
} | ||
all() { | ||
var content = JSON.parse(fs.readFileSync(`./${this.dbFolder}/${this.dbName}.json`, "utf8")); | ||
return content; | ||
return this.adapter.all(); | ||
} | ||
@@ -313,6 +203,4 @@ | ||
fs.writeFileSync(`./${this.dbFolder}/${this.dbName}.json`, JSON.stringify({})); | ||
return this.adapter.deleteAll(); | ||
return true; | ||
} | ||
@@ -319,0 +207,0 @@ |
{ | ||
"name": "croxydb", | ||
"version": "0.0.2", | ||
"description": "a JSON database module", | ||
"version": "0.0.3", | ||
"description": "a JSON/YAML/LocalStorage database module", | ||
"main": "index.js", | ||
@@ -14,2 +14,8 @@ "keywords": [ | ||
"jsondb", | ||
"yaml", | ||
"yamldb", | ||
"local", | ||
"localstorage", | ||
"local storage", | ||
"node-json-db", | ||
"db", | ||
@@ -16,0 +22,0 @@ "database" |
@@ -9,5 +9,8 @@ # CroxyDB | ||
> JsonDB Example | ||
```js | ||
const croxy = require("croxydb") | ||
const db = new croxy({ | ||
const adapter = require("croxydb/adapters/jsondb") | ||
const db = new croxy(adapter, { | ||
"dbName": "test", // Our DB file name. | ||
@@ -40,2 +43,63 @@ "dbFolder": "database", // Our DB folder name. | ||
> YamlDB Example | ||
```js | ||
const croxy = require("croxydb") | ||
const adapter = require("croxydb/adapters/yamldb") | ||
const db = new croxy(adapter, { | ||
"dbName": "test", // Our DB file name. | ||
"dbFolder": "database", // Our DB folder name. | ||
"language": "en" // You can write "tr" or "en". | ||
}) | ||
db.set("x.y.z", "abc") // abc | ||
db.get("x") // {y: {z: "abc"}} | ||
db.fetch("x") // {y: {z: "abc"}} | ||
db.all() // {x: {y: {z: "abc"}}} | ||
db.push("a", "hello") // ["hello"] | ||
db.push("a", "world") // ["hello", "world"] | ||
db.unpush("a", "hello") // ["world"] | ||
db.push("b", {test: "croxydb"}) // [{test: "croxydb"}] | ||
db.push("b", {test2: "croxydb2"}) // [{test: "croxydb"}, {test2: "croxydb2"}] | ||
db.delByPriority("b", 1) // [{test2: "croxydb"}] | ||
db.setByPriority("b", {newtest:"hey this is edited"}, 1) // [{newtest:"hey this is edited"}] | ||
db.has("x") // true | ||
db.delete("x") // true | ||
db.deleteAll() // true | ||
``` | ||
> LocalStorage Example | ||
```js | ||
const croxy = require("croxydb") | ||
const adapter = require("croxydb/adapters/localstorage") | ||
const db = new croxy(adapter, { | ||
"dbName": "test", // Our DB file name. | ||
"language": "en" // You can write "tr" or "en". | ||
}) | ||
db.set("x.y.z", "abc") // abc | ||
db.get("x") // {y: {z: "abc"}} | ||
db.fetch("x") // {y: {z: "abc"}} | ||
db.all() // {x: {y: {z: "abc"}}} | ||
db.push("a", "hello") // ["hello"] | ||
db.push("a", "world") // ["hello", "world"] | ||
db.unpush("a", "hello") // ["world"] | ||
db.push("b", {test: "croxydb"}) // [{test: "croxydb"}] | ||
db.push("b", {test2: "croxydb2"}) // [{test: "croxydb"}, {test2: "croxydb2"}] | ||
db.delByPriority("b", 1) // [{test2: "croxydb"}] | ||
db.setByPriority("b", {newtest:"hey this is edited"}, 1) // [{newtest:"hey this is edited"}] | ||
db.has("x") // true | ||
db.delete("x") // true | ||
db.deleteAll() // true | ||
``` | ||
If you've any question, you can join to my Discord server: [Click me!](https://discord.gg/mswG4px) |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
30060
10
846
104
5
4