Socket
Socket
Sign inDemoInstall

croxydb

Package Overview
Dependencies
0
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.2 to 0.0.3

adapters/jsondb.js

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)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc