New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

megadb

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

megadb - npm Package Compare versions

Comparing version 3.0.0 to 3.1.0

class/errorDB.js

106

class/crearDB.js

@@ -23,4 +23,6 @@ const { check_path_object, build_path, readJSON } = require("../utils/utilidades.js"),

{ setIndex } = require("../methods/setIndex.js"),
{ delIndex } = require("../methods/delIndex.js"),
fs = require("fs");
{ delIndex } = require("../methods/delIndex.js"),
{ findKey } = require("../methods/findKey.js"),
{ partition } = require("../methods/partition.js"),
errorDB = require("./errorDB.js");

@@ -60,5 +62,5 @@

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](establecer) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)
if(!valor && valor != 0) throw new Error(`[ERROR] El valor no fue especificado`)
if(!valor && valor != 0) throw new errorDB(`[ERROR] El valor no fue especificado`)
return establecer(clave, valor, split_object, global_object, this, true)

@@ -70,5 +72,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](set) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)
if(!valor && valor != 0) throw new Error(`[ERROR] El valor no fue especificado`)
if(!valor && valor != 0) throw new errorDB(`[ERROR] El valor no fue especificado`)
return establecer(clave, valor, split_object, global_object, this, true)

@@ -80,3 +82,3 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](obtener) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -89,3 +91,3 @@ return obtener(clave, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](get) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -97,4 +99,4 @@ return obtener(clave, split_object, global_object, this)

existeDB(database_name) {
if(!database_name) throw new Error(`[ERROR] El nombre de la base de datos no fue especificado`)
if(typeof database_name != "string") throw new Error(`[ERROR] El nombre de la base de datos debe ser un string`)
if(!database_name) throw new errorDB(`[ERROR](existeDB) El nombre de la base de datos no fue especificado`)
if(typeof database_name != "string") throw new errorDB(`[ERROR](existeDB) El nombre de la base de datos debe ser un string`)
if(!fs.existsSync(path.join(this.path_main_carpet,`${database_name}.json`))) return false

@@ -107,3 +109,3 @@ return true

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](tiene) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -116,3 +118,3 @@ return tiene(clave, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](has) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -125,3 +127,3 @@ return tiene(clave, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](eliminar) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -134,3 +136,3 @@ return eliminar(clave, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](delete) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -148,3 +150,3 @@ return eliminar(clave, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](sumar) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -157,3 +159,3 @@ return sumar(clave, number, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](add) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -166,3 +168,3 @@ return sumar(clave, number, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](restar) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -175,3 +177,3 @@ return restar(clave, number, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](substract) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -184,3 +186,3 @@ return restar(clave, number, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](push) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -193,3 +195,3 @@ return push(clave, valor, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](extract) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -207,3 +209,3 @@ return extract(clave, valor, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](ordenar) El signo que se usara para la clave debe ser un string.`)
return ordenar(clave, valor, split_object, global_object, this)

@@ -215,3 +217,3 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](sort) El signo que se usara para la clave debe ser un string.`)
return ordenar(clave, valor, split_object, global_object, this)

@@ -223,6 +225,6 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!cantidad && cantidad != 0) throw new Error(`[ERROR] Necesitas colocar la cantidad(numero)`)
if(isNaN(cantidad)) throw new Error(`[ERROR] La cantidad debe ser un numero`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](random) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](random) La clave debe ser un string o false`)
if(!cantidad && cantidad != 0) throw new errorDB(`[ERROR](random) Necesitas colocar la cantidad(numero)`)
if(isNaN(cantidad)) throw new errorDB(`[ERROR](random) La cantidad debe ser un numero`)
cantidad = cantidad > 0 ? parseInt(cantidad) : 0

@@ -240,4 +242,4 @@ return random(clave, cantidad, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](keys) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](keys) La clave debe ser un string o false`)
return keys(clave, split_object, global_object, this)

@@ -249,4 +251,4 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](values) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](values) La clave debe ser un string o false`)
return values(clave, split_object, global_object, this)

@@ -263,5 +265,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](find) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](find) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](find) El segundo argumento debe ser un callback (funcion)')
return find(clave, callback, split_object, global_object, this)

@@ -273,5 +275,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](filter) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](filter) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](filter) El segundo argumento debe ser un callback (funcion)')
return filter(clave, callback, split_object, global_object, this)

@@ -283,5 +285,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](map) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](map) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](map) El segundo argumento debe ser un callback (funcion)')
return map(clave, callback, split_object, global_object, this)

@@ -293,5 +295,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](some) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](some) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](some) El segundo argumento debe ser un callback (funcion)')
return some(clave, callback, split_object, global_object, this)

@@ -303,3 +305,3 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](setIndex) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -312,3 +314,3 @@ return setIndex(clave, index, valor, split_object, global_object, this, true)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](delIndex) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -319,4 +321,20 @@ return delIndex(clave, index, split_object, global_object, this, true)

findKey(clave, callback, split_object) {
if(!split_object) split_object = "."
if(typeof split_object != "string") throw new errorDB(`[ERROR](findKey) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](findKey) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](findKey) El segundo argumento debe ser un callback (funcion)')
return findKey(clave, callback, split_object, global_object, this)
}
partition(clave, callback, split_object) {
if(!split_object) split_object = "."
if(typeof split_object != "string") throw new errorDB(`[ERROR](partition) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](partition) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](partition) El segundo argumento debe ser un callback (funcion)')
return partition(clave, callback, split_object, global_object, this)
}
}
module.exports = crearDB

@@ -22,3 +22,6 @@ const { check_path_object } = require("../utils/utilidades.js"),

{ setIndex } = require("../methods/setIndex.js"),
{ delIndex } = require("../methods/delIndex.js");
{ delIndex } = require("../methods/delIndex.js"),
{ findKey } = require("../methods/findKey.js"),
{ partition } = require("../methods/partition.js"),
errorDB = require("./errorDB.js");

@@ -31,6 +34,6 @@ let global_object = new Object();

constructor(database_name) {
if(!database_name) throw new Error(`[ERROR] Necesitas colocar el nombre de la base de datos`)
if(typeof database_name != "string") throw new Error(`[ERROR] El nombre de la base de datos ${database_name} debe ser un string`)
if(!database_name) throw new errorDB(`[ERROR](memoDB) Necesitas colocar el nombre de la base de datos`)
if(typeof database_name != "string") throw new errorDB(`[ERROR](memoDB) El nombre de la base de datos ${database_name} debe ser un string`)
database_name = database_name.trim()
if(database_name.length <= 0) throw new Error(`[ERROR] Necesitas colocar un nombre a la base de datos`)
if(database_name.length <= 0) throw new errorDB(`[ERROR](memoDB) Necesitas colocar un nombre a la base de datos`)

@@ -47,5 +50,5 @@ this.database_name = database_name

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](establecer) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)
if(!valor && valor != 0) throw new Error(`[ERROR] El valor no fue especificado`)
if(!valor && valor != 0) throw new errorDB(`[ERROR](establecer) El valor no fue especificado`)
return establecer(clave, valor, split_object, global_object, this, false)

@@ -57,5 +60,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](set) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)
if(!valor && valor != 0) throw new Error(`[ERROR] El valor no fue especificado`)
if(!valor && valor != 0) throw new errorDB(`[ERROR](set) El valor no fue especificado`)
return establecer(clave, valor, split_object, global_object, this, false)

@@ -67,3 +70,3 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](obtener) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -76,3 +79,3 @@ return obtener(clave, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](get) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -85,3 +88,3 @@ return obtener(clave, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](tiene) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -94,3 +97,3 @@ return tiene(clave, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](has) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -103,3 +106,3 @@ return tiene(clave, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](eliminar) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -112,3 +115,3 @@ return eliminar(clave, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](delete) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -126,3 +129,3 @@ return eliminar(clave, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](sumar) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -135,3 +138,3 @@ return sumar(clave, number, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](add) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -144,3 +147,3 @@ return sumar(clave, number, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](restar) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -153,3 +156,3 @@ return restar(clave, number, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](subtract) El signo que se usara para la clave debe ser un string`)
check_path_object(clave, split_object)

@@ -162,3 +165,3 @@ return restar(clave, number, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](push) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -171,3 +174,3 @@ return push(clave, valor, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](extract) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -185,3 +188,3 @@ return extract(clave, valor, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](ordenar) El signo que se usara para la clave debe ser un string.`)
return ordenar(clave, valor, split_object, global_object, this)

@@ -193,3 +196,3 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](sort) El signo que se usara para la clave debe ser un string.`)
return ordenar(clave, valor, split_object, global_object, this)

@@ -201,6 +204,6 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!cantidad && cantidad != 0) throw new Error(`[ERROR] Necesitas colocar la cantidad(numero)`)
if(isNaN(cantidad)) throw new Error(`[ERROR] La cantidad debe ser un numero`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](random) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](random) La clave debe ser un string o false`)
if(!cantidad && cantidad != 0) throw new errorDB(`[ERROR](random) Necesitas colocar la cantidad(numero)`)
if(isNaN(cantidad)) throw new errorDB(`[ERROR](random) La cantidad debe ser un numero`)
cantidad = cantidad > 0 ? parseInt(cantidad) : 0

@@ -213,4 +216,4 @@ return random(clave, cantidad, split_object, global_object, this)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](keys) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR](keys) La clave debe ser un string o false`)
return keys(clave, split_object, global_object, this)

@@ -222,4 +225,4 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](values) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](values) La clave debe ser un string o false`)
return values(clave, split_object, global_object, this)

@@ -236,5 +239,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](find) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](find) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](find) El segundo argumento debe ser un callback (funcion)')
return find(clave, callback, split_object, global_object, this)

@@ -246,5 +249,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](filter) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](filter) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](filter) El segundo argumento debe ser un callback (funcion)')
return filter(clave, callback, split_object, global_object, this)

@@ -256,5 +259,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](map) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](map) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](map) El segundo argumento debe ser un callback (funcion)')
return map(clave, callback, split_object, global_object, this)

@@ -266,5 +269,5 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new Error(`[ERROR] La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new Error('[ERROR] El segundo argumento debe ser un callback (funcion)')
if(typeof split_object != "string") throw new errorDB(`[ERROR](some) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](some) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](some) El segundo argumento debe ser un callback (funcion)')
return some(clave, callback, split_object, global_object, this)

@@ -276,3 +279,3 @@ }

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](setIndex) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -285,3 +288,3 @@ return setIndex(clave, index, valor, split_object, global_object, this, false)

if(!split_object) split_object = "."
if(typeof split_object != "string") throw new Error(`[ERROR] El signo que se usara para la clave debe ser un string.`)
if(typeof split_object != "string") throw new errorDB(`[ERROR](delIndex) El signo que se usara para la clave debe ser un string.`)
check_path_object(clave, split_object)

@@ -292,4 +295,20 @@ return delIndex(clave, index, split_object, global_object, this, false)

findKey(clave, callback, split_object) {
if(!split_object) split_object = "."
if(typeof split_object != "string") throw new errorDB(`[ERROR](findKey) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](findKey) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](findKey) El segundo argumento debe ser un callback (funcion)')
return findKey(clave, callback, split_object, global_object, this)
}
partition(clave, callback, split_object) {
if(!split_object) split_object = "."
if(typeof split_object != "string") throw new errorDB(`[ERROR](partition) El signo que se usara para la clave debe ser un string`)
if(clave !== false && typeof clave != "string") throw new errorDB(`[ERROR](partition) La clave debe ser un string o false`)
if(!callback || typeof callback != "function") throw new errorDB('[ERROR](partition) El segundo argumento debe ser un callback (funcion)')
return partition(clave, callback, split_object, global_object, this)
}
}
module.exports = memoDB

@@ -1,17 +0,18 @@

const { readJSON } = require("../utils/utilidades.js");
const fs = require("fs");
const { readJSON } = require("../utils/utilidades.js"),
fs = require("graceful-fs"),
errorDB = require("../class/errorDB.js");
module.exports = {
convert_megadtbs: function(self) {
if(self.database_name != "mega_db") throw new Error(`[ERROR] El nombre de la base de datos del constructor crearDB debe ser "mega_db"`)
if(!fs.existsSync(`${self.path_main_carpet}/mega_db.json`)) throw new Error(`[ERROR] No se encontro el archivo mega_db.json en ${self.path_main_carpet}`)
if(self.database_name != "mega_db") throw new errorDB(`[ERROR](convert_megadtbs) El nombre de la base de datos del constructor crearDB debe ser "mega_db"`)
if(!fs.existsSync(`${self.path_main_carpet}/mega_db.json`)) throw new errorDB(`[ERROR](convert_megadtbs) No se encontro el archivo mega_db.json en ${self.path_main_carpet}`)
let mega_dtbs = readJSON(self.path_file_name)
let successful_databases = []
let invalid_databases = []
if(Object.keys(mega_dtbs).length <= 0) throw new Error(`[ERROR] El archivo ${self.database_name} no contiene ninguna base de datos`)
if(Object.keys(mega_dtbs).length <= 0) throw new errorDB(`[ERROR](convert_megadtbs) El archivo ${self.database_name} no contiene ninguna base de datos`)
for(var key in mega_dtbs) {
if(!mega_dtbs[key].hasOwnProperty("value")) throw new Error(`[ERROR] El archivo ${self.database_name} no contiene la estructura de la base de datos mega-dtbs`)
if(!mega_dtbs[key].hasOwnProperty("value")) throw new errorDB(`[ERROR](convert_megadtbs) El archivo ${self.database_name} no contiene la estructura de la base de datos mega-dtbs`)
if(!fs.existsSync(`${self.path_main_carpet}/${key}.json`)) {
fs.writeFileSync(`${self.path_main_carpet}/${key}.json`, JSON.stringify(mega_dtbs[key].value, null, 2), { flag: 'wx' }, function(err) {
if(err) throw new Error(`[ERROR] No se pudo crear la base de datos ${database_name}, error: ${err}`)
if(err) throw new errorDB(`[ERROR](convert_megadtbs) No se pudo crear la base de datos ${database_name}, error: ${err}`)
});

@@ -18,0 +19,0 @@

@@ -1,2 +0,3 @@

const { ErrorDesc, is_num, saveJSON } = require("../utils/utilidades.js")
const { ErrorDesc, is_num, saveJSON } = require("../utils/utilidades.js"),
errorDB = require("../class/errorDB.js");

@@ -6,27 +7,27 @@ module.exports = {

if(!index && index != 0) throw new Error(`[ERROR] El segundo parametro debe ser un index(numero)`)
if(!is_num(index)) throw new Error(`[ERROR] El segundo parametro debe ser un index(numero)`)
if(!index && index != 0) throw new errorDB(`[ERROR](delIndex) El segundo parametro debe ser un index(numero)`)
if(!is_num(index)) throw new errorDB(`[ERROR](delIndex) El segundo parametro debe ser un index(numero)`)
index = parseInt(index)
var split_object = clave.split(split_object)
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[delIndex] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
if(index >= object_data[key].length) return Promise.reject(ErrorDesc("ITEM NO EXISTENTE", `[delIndex] El item con el indice ${index} no existe en el array ${key}, base de datos: ${self.database_name}`))
object_data[key].splice(index, 1)
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
return Promise.reject(ErrorDesc("DATABASE NO EXISTENTE", `[delIndex] La base de datos ${self.database_name} no existe: ${self.path_main_file}`)) //tal vez ocurre algun error ?)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[delIndex] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[delIndex] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[delIndex] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
if(index >= object_data[key].length) return Promise.reject(ErrorDesc("ITEM NO EXISTENTE", `[delIndex] El item con el indice ${index} no existe en el array ${key}, base de datos: ${self.database_name}`))
object_data[key].splice(index, 1)
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
throw new errorDB(`[ERROR](delIndex) La base de datos ${self.database_name} no existe: ${self.path_main_file}`)
}
else {
object_data = object_data[key]
}
}
}
}
}

@@ -1,2 +0,2 @@

const { saveJSON } = require("../utils/utilidades.js")
const { saveJSON } = require("../utils/utilidades.js");

@@ -6,21 +6,19 @@ module.exports = {

var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
delete object_data[key]
if(!save) return true
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return true
return false
}
object_data = object_data[key]
continue
}
return false
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return false
if(key == args[args.length-1]) {
delete object_data[key]
if(!save) return true
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return true
return false
}
else {
object_data = object_data[key]
}
}
}
}

@@ -1,2 +0,2 @@

const { saveJSON, ErrorDesc } = require("../utils/utilidades.js")
const { saveJSON, ErrorDesc, isObject } = require("../utils/utilidades.js")

@@ -6,23 +6,19 @@ module.exports = {

var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(x == split_object.length-1) {
object_data[key] = valor
break
}
if(typeof object_data[key] == "undefined") {
object_data = object_data[key] = {}
continue
}
//con esto evitamos el bug del type {} == []
object_data = (Array.isArray(object_data[key]) || typeof object_data[key] != "object") ? object_data[key] = {} : object_data[key]
}
if(!save) return Promise.resolve(global_object[self.object_id])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(global_object[self.object_id])
return Promise.reject(ErrorDesc("DATABASE NO EXISTENTE", `[establecer] La base de datos ${self.database_name} no existe: ${self.path_main_file}`)) //tal vez ocurre algun error ?)
for(var key of args) {
if(key == args[args.length-1]) {
object_data[key] = valor
break
}
if(!object_data.hasOwnProperty(key)) object_data = object_data[key] = {}
else object_data = !isObject(object_data[key]) ? object_data[key] = {} : object_data[key]
}
if(!save) return Promise.resolve(global_object[self.object_id])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(global_object[self.object_id])
throw new errorDB(`[ERROR](establecer) La base de datos ${self.database_name} no existe: ${self.path_main_file}`)
}
}
}

@@ -1,2 +0,3 @@

const { ErrorDesc, saveJSON } = require("../utils/utilidades.js")
const { ErrorDesc, saveJSON } = require("../utils/utilidades.js"),
errorDB = require("../class/errorDB.js");

@@ -6,25 +7,24 @@ module.exports = {

if(!valor && valor != 0) throw new Error(`[ERROR] El valor no fue especificado`)
if(!valor && valor != 0) throw new errorDB(`[ERROR](extract) El valor no fue especificado`)
var split_object = clave.split(split_object)
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[extract] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
if(!object_data[key].includes(valor)) return Promise.reject(ErrorDesc("ITEM NO EXISTENTE", `[extract] El item ${valor} no existe en el array ${key}, base de datos: ${self.database_name}`))
object_data[key].splice(object_data[key].indexOf(valor), 1)
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
return Promise.reject(ErrorDesc("DATABASE NO EXISTENTE", `[extract] La base de datos ${self.database_name} no existe: ${self.path_main_file}`)) //tal vez ocurre algun error ?)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[extract] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[extract] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[extract] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
if(!object_data[key].includes(valor)) return Promise.reject(ErrorDesc("ITEM NO EXISTENTE", `[extract] El item ${valor} no existe en el array ${key}, base de datos: ${self.database_name}`))
object_data[key].splice(object_data[key].indexOf(valor), 1)
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
throw new errorDB(`[ERROR](extract) La base de datos ${self.database_name} no existe: ${self.path_main_file}`)
}
else {
object_data = object_data[key]
}
}
}
}
}

@@ -9,32 +9,25 @@ const { ErrorDesc, check_path_object } = require("../utils/utilidades.js")

if(clave === false) {
if(Object.keys(global_object[self.object_id]).length <= 0) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[filter] Actualmente no hay ninguna propiedad, base de datos: ${self.database_name}`))
for(var key in global_object[self.object_id]) {
if(callback(global_object[self.object_id][key], key)) filter_array[key] = global_object[self.object_id][key]
}
if(Object.keys(filter_array).length <= 0) return Promise.resolve(undefined)
return Promise.resolve(filter_array)
return Promise.resolve(Object.keys(filter_array).length <= 0 ? {} : filter_array)
}
check_path_object(clave, split_object)
var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
for(var key2 in object_data[key]) {
if(callback(object_data[key][key2], key2)) filter_array[key2] = object_data[key][key2]
}
if(Object.keys(filter_array).length <= 0) return Promise.resolve(undefined)
return Promise.resolve(filter_array)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[filter] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[filter] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
for(var key2 in object_data[key]) {
if(callback(object_data[key][key2], key2)) filter_array[key2] = object_data[key][key2]
}
return Promise.resolve(Object.keys(filter_array).length <= 0 ? {} : filter_array)
}
else {
object_data = object_data[key]
}
}
}
}
}

@@ -7,3 +7,2 @@ const { ErrorDesc, check_path_object } = require("../utils/utilidades.js")

if(clave === false) {
if(Object.keys(global_object[self.object_id]).length <= 0) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[find] Actualmente no hay ninguna propiedad, base de datos: ${self.database_name}`))
for(var key in global_object[self.object_id]) {

@@ -16,19 +15,18 @@ if(callback(global_object[self.object_id][key], key)) return Promise.resolve(global_object[self.object_id][key])

var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
for(var key2 in object_data[key]) {
if(callback(object_data[key][key2], key2)) return Promise.resolve(object_data[key][key2])
}
return Promise.resolve(undefined)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[find] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[find] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
for(var key2 in object_data[key]) {
if(callback(object_data[key][key2], key2)) return Promise.resolve(object_data[key][key2])
}
return Promise.resolve(undefined)
}
else {
object_data = object_data[key]
}
}
}
}

@@ -1,2 +0,2 @@

const { ErrorDesc, check_path_object } = require("../utils/utilidades.js")
const { ErrorDesc, check_path_object, isObject } = require("../utils/utilidades.js")

@@ -6,24 +6,19 @@ module.exports = {

if(clave === false) {
let keys = Object.keys(global_object[self.object_id])
return Promise.resolve(keys)
}
if(clave === false) return Promise.resolve(Object.keys(global_object[self.object_id]))
check_path_object(clave, split_object)
var split_object = clave.split(split_object)
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(typeof object_data[key] != "object" || Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("OBJETO NO EXISTENTE", `[keys] El valor de la propiedad ${key} no es un objeto, base de datos: ${self.database_name}`))
let keys_obj = Object.keys(object_data[key])
return Promise.resolve(keys_obj)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[keys] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[keys] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!isObject(object_data[key])) return Promise.reject(ErrorDesc("OBJETO NO EXISTENTE", `[keys] El valor de la propiedad ${key} no es un objeto, base de datos: ${self.database_name}`))
return Promise.resolve(Object.keys(object_data[key]))
}
else {
object_data = object_data[key]
}
}
}
}

@@ -6,8 +6,6 @@ const { ErrorDesc, check_path_object } = require("../utils/utilidades.js")

let map_array = new Array()
if(clave === false) {
if(Object.keys(global_object[self.object_id]).length <= 0) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[map] Actualmente no hay ninguna propiedad, base de datos: ${self.database_name}`))
let map_array = new Array()
for(var key in global_object[self.object_id]) map_array.push(callback(global_object[self.object_id][key], key))
return Promise.resolve(map_array)

@@ -17,20 +15,16 @@ }

var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
let map_array = new Array()
for(var key2 in object_data[key]) map_array.push(callback(object_data[key][key2], key2))
return Promise.resolve(map_array)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[map] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[map] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
for(var key2 in object_data[key]) map_array.push(callback(object_data[key][key2], key2))
return Promise.resolve(map_array)
}
else {
object_data = object_data[key]
}
}
}
}

@@ -6,16 +6,11 @@ const { ErrorDesc } = require("../utils/utilidades.js")

var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
return Promise.resolve(object_data[key])
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[obtener] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.resolve(undefined)
if(key == args[args.length-1]) return Promise.resolve(object_data[key])
else object_data = object_data[key]
}
}
}

@@ -1,2 +0,3 @@

const { ErrorDesc, check_path_object } = require("../utils/utilidades.js")
const { ErrorDesc, check_path_object } = require("../utils/utilidades.js"),
errorDB = require("../class/errorDB.js");

@@ -6,13 +7,10 @@ module.exports = {

if(!clave && clave != false) throw new Error("[ERROR] El nombre de la clave no fue especificado")
if(clave != false && typeof clave != "string") throw new Error("[ERROR] Formato invalido, la clave debe de ser un string o false en caso de que la clave no sea un objecto con propiedades")
if(!valor && valor != false && valor != 0) throw new Error("[ERROR] El valor no fue especificado")
if(!clave && clave != false) throw new errorDB("[ERROR](ordenar) El nombre de la clave no fue especificado")
if(clave != false && typeof clave != "string") throw new errorDB("[ERROR](ordenar) Formato invalido, la clave debe de ser un string o false en caso de que la clave no sea un objecto con propiedades")
if(!valor && valor != false && valor != 0) throw new errorDB("[ERROR](ordenar) El valor no fue especificado")
let final_array = []
if(clave == false) {
//si la clave es false
if(valor == false) {
//si la clave y valor son false
if(Object.keys(global_object[self.object_id]).length <= 0) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] Actualmente no hay ninguna propiedad, base de datos: ${self.database_name}`))
if(clave == false) { //si la clave es false
if(valor == false) { //si el valor es false
for(var key in global_object[self.object_id]) {

@@ -22,115 +20,81 @@ if(typeof global_object[self.object_id][key] != "number") return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[ordenar] El valor de la propiedad ${key} no es un numero, base de datos: ${self.database_name}`))

}
final_array.sort(function (a,b) {
return b.valor - a.valor
})
return Promise.resolve(final_array)
return Promise.resolve(final_array.sort((a,b) => b.valor - a.valor))
}
//si la clave es false y el valor es un string (path object)
if(typeof valor != "string") throw new Error("[ERROR] Formato invalido, el valor debe ser un string o false en caso de que el valor no sea un objecto con propiedades")
if(typeof valor != "string") throw new errorDB("[ERROR](ordenar) Formato invalido, el valor debe ser un string o false en caso de que el valor no sea un objecto con propiedades")
if(valor.includes(`${split_object}${split_object}`)) throw new errorDB(`[ERROR](ordenar) El nombre del valor no debe de contener el signo ${split_object} seguido de otro`)
if(valor.startsWith(split_object) || valor.endsWith(split_object)) throw new errorDB(`[ERROR](ordenar) El nombre del valor no debe empezar ni terminar con un ${split_object}`)
if(valor.includes(`${split_object}${split_object}`)) throw new Error(`[ERROR] El nombre del valor no debe de contener el signo ${split_object} seguido de otro`)
if(valor.startsWith(split_object) || valor.endsWith(split_object)) throw new Error(`[ERROR] El nombre del valor no debe empezar ni terminar con un ${split_object}`)
let [...args_value] = valor.split(split_object)
let properties = valor.split(split_object)
for(var key in global_object[self.object_id]) {
var object_data = global_object[self.object_id][key]
for(var key_value of args_value) {
if(!object_data.hasOwnProperty(key_value)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${key_value}, base de datos: ${self.database_name}`))
if(key_value == args_value[args_value.length-1]) {
if(typeof object_data[key_value] != 'number') return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[ordenar] El valor de la propiedad ${key_value} no es un numero, base de datos: ${self.database_name}`))
final_array.push({clave: key, valor: object_data})
}
else {
object_data = object_data[key_value]
}
}
}
return Promise.resolve(final_array.sort((a,b) => b.valor[args_value[args_value.length-1]] - a.valor[args_value[args_value.length-1]]))
}
for(var key1 in global_object[self.object_id]) {
var object_data = global_object[self.object_id][key1]
for(var x in properties) {
var index = properties[x]
if(typeof object_data[index] != "undefined") {
if(x == properties.length-1) {
if(typeof object_data[index] != "number") return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[ordenar] El valor de la propiedad ${index} no es un numero, base de datos: ${self.database_name}`))
final_array.push({clave: key1, valor: object_data})
}
object_data = object_data[index]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${index}, base de datos: ${self.database_name}`))
}
}
final_array.sort(function (a,b) {
return b.valor[properties[properties.length - 1]] - a.valor[properties[properties.length - 1]]
})
return Promise.resolve(final_array)
}
check_path_object(clave, split_object)
if(valor == false) { //si la clave es un string (path object) y el valor es false
let [...args] = clave.split(split_object)
if(valor == false) {
//si la clave es un string (path object) y el valor es false
check_path_object(clave, split_object)
let properties = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in properties) {
var index = properties[x]
if(typeof object_data[index] != "undefined") {
if(x == properties.length-1) {
for(var key in object_data[index]) {
if(typeof object_data[index][key] != "undefined") {
if(typeof object_data[index][key] != "number") return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[ordenar] El valor de la propiedad ${key} no es un numero, base de datos: ${self.database_name}`))
final_array.push({clave: key, valor: object_data[index][key]})
}
}
}
object_data = object_data[index]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${index}, base de datos: ${self.database_name}`))
}
final_array.sort(function (a,b) {
return b.valor - a.valor
})
return Promise.resolve(final_array)
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
for(var key2 in object_data[key]) {
if(typeof object_data[key][key2] != 'number') return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[ordenar] El valor de la propiedad ${key2} no es un numero, base de datos: ${self.database_name}`))
final_array.push({clave: key2, valor: object_data[key][key2]})
}
}
else {
object_data = object_data[key]
}
}
return Promise.resolve(final_array.sort((a,b) => b.valor - a.valor))
}
//Si la clave y valor son string (path object)
if(typeof valor != "string") throw new errorDB("[ERROR](ordenar) Formato invalido, el valor debe ser un string o false en caso de que el valor no sea un objecto con propiedades")
if(valor.includes(`${split_object}${split_object}`)) throw new errorDB(`[ERROR](ordenar) El nombre del valor no debe de contener el signo ${split_object} seguido de otro`)
if(valor.startsWith(split_object) || valor.endsWith(split_object)) throw new errorDB(`[ERROR](ordenar) El nombre del valor no debe empezar ni terminar con un ${split_object}`)
if(typeof valor != "string") throw new Error("[ERROR] Formato invalido, el valor debe ser un string o false en caso de que el valor no sea un objecto con propiedades")
let [...args] = clave.split(split_object)
let [...args_value] = valor.split(split_object)
check_path_object(clave, split_object)
check_path_object(valor, split_object)
let properties = clave.split(split_object)
let valuerties = valor.split(split_object)
var object_data = global_object[self.object_id]
for(var x = 0; x < properties.length; x++) {
let index = properties[x]
if(typeof object_data[index] != "undefined") {
if(x == properties.length - 1) {
object_data = object_data[index]
for(var key in object_data) {
let propobject = object_data[key]
for(var y = 0; y < valuerties.length; y++) {
let index_2 = valuerties[y]
if(typeof propobject[index_2] != "undefined") {
if(y == valuerties.length - 1) {
if(typeof propobject[index_2] != "undefined") {
if(typeof propobject[index_2] != "number") return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[ordenar] El valor de la propiedad ${index_2} no es un numero, base de datos: ${self.database_name}`))
final_array.push({clave: key, valor: propobject})
}
}
propobject = propobject[index_2]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${index_2}, base de datos: ${self.database_name}`))
}
}
}
object_data = object_data[index]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${index}, base de datos: ${self.database_name}`))
}
final_array.sort(function (a,b) {
return b.valor[valuerties[valuerties.length - 1]] - a.valor[valuerties[valuerties.length - 1]]
})
return Promise.resolve(final_array)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
object_data = object_data[key]
for(var key2 in object_data) {
var value_object = object_data[key2]
for(var key_value of args_value) {
if(!value_object.hasOwnProperty(key_value)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[ordenar] No se encontro la propiedad ${key_value}, base de datos: ${self.database_name}`))
if(key_value == args_value[args_value.length-1]) {
if(typeof value_object[key_value] != 'number') return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[ordenar] El valor de la propiedad ${key_value} no es un numero, base de datos: ${self.database_name}`))
final_array.push({clave: key2, valor: value_object})
}
else {
value_object = value_object[key_value]
}
}
}
}
else {
object_data = object_data[key]
}
}
return Promise.resolve(final_array.sort((a,b) => b.valor[args_value[args_value.length-1]] - a.valor[args_value[args_value.length-1]]))
}
}

@@ -1,2 +0,3 @@

const { ErrorDesc, saveJSON } = require("../utils/utilidades.js")
const { ErrorDesc, saveJSON } = require("../utils/utilidades.js"),
errorDB = require("../class/errorDB.js");

@@ -6,24 +7,22 @@ module.exports = {

if(!valor && valor != 0) throw new Error(`[ERROR] El valor no fue especificado`)
if(!valor && valor != 0) throw new errorDB(`[ERROR](push) El valor no fue especificado`)
var split_object = clave.split(split_object)
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[push] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
object_data[key].unshift(valor)
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
return Promise.reject(ErrorDesc("DATABASE NO EXISTENTE", `[push] La base de datos ${self.database_name} no existe: ${self.path_main_file}`)) //tal vez ocurre algun error ?)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[push] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[push] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[push] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
object_data[key].unshift(valor)
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
throw new errorDB(`[ERROR](push) La base de datos ${self.database_name} no existe: ${self.path_main_file}`)
}
else {
object_data = object_data[key]
}
}
}
}

@@ -1,67 +0,43 @@

const { ErrorDesc } = require("../utils/utilidades.js")
const { ErrorDesc, isObject } = require("../utils/utilidades.js")
function randomArray(object, cantidad) {
let array = []
let keys = Object.keys(object)
for (var i = 0; i < cantidad; i++) {
if(i >= keys.length) break
var random_number = parseInt((Math.random() * keys.length));
do {
var existente = array.indexOf(keys[random_number]);
if(existente >= 0) {
random_number = parseInt((Math.random() * keys.length));
}
else {
array.push(keys[random_number]);
existente = -2;
}
}
while(existente > -1);
}
return array.map(o => new Object({clave: o, valor: object[o]}))
}
module.exports = {
random: function (clave, cantidad, split_object, global_object, self) {
let array = []
if(clave === false) {
if(Object.keys(global_object[self.object_id]).length <= 0) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[random] Actualmente no hay ninguna propiedad, base de datos: ${self.database_name}`))
let keys = Object.keys(global_object[self.object_id])
for (var i = 0; i < cantidad; i++) {
if(i >= keys.length) break
var random_number = parseInt((Math.random() * keys.length));
do {
var existente = array.indexOf(keys[random_number]);
if(existente >= 0) {
random_number = parseInt((Math.random() * keys.length));
}
else {
array.push(keys[random_number]);
existente = -2;
}
}
while(existente > -1);
}
let random_array = []
if(array.length <= 0) return Promise.resolve(random_array)
array.map(r => random_array.push({clave: r, valor: global_object[self.object_id][r]}))
return Promise.resolve(random_array)
}
var split_object = clave.split(split_object)
if(clave === false) return Promise.resolve(randomArray(global_object[self.object_id], cantidad))
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(typeof object_data[key] != "object" || typeof object_data[key] == "object" && Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("OBJETO NO EXISTENTE", `[random] El valor de la propiedad ${key} no es un objeto, base de datos: ${self.database_name}`))
let keys = Object.keys(object_data[key])
for (var i = 0; i < cantidad; i++) {
if(i >= keys.length) break
var random_number = parseInt((Math.random() * keys.length));
do {
var existente = array.indexOf(keys[random_number]);
if(existente >= 0) {
random_number = parseInt((Math.random() * keys.length));
}
else {
array.push(keys[random_number]);
existente = -2;
}
}
while(existente > -1);
}
let random_array = []
if(array.length <= 0) return Promise.resolve(random_array)
array.map(r => random_array.push({clave: r, valor: object_data[key][r]}))
return Promise.resolve(random_array)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[random] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[random] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!isObject(object_data[key])) return Promise.reject(ErrorDesc("OBJETO NO EXISTENTE", `[random] El valor de la propiedad ${key} no es un objeto, base de datos: ${self.database_name}`))
return Promise.resolve(randomArray(object_data[key], cantidad))
}
else {
object_data = object_data[key]
}
}
}
}

@@ -1,2 +0,3 @@

const { ErrorDesc, is_num, is_float, saveJSON } = require("../utils/utilidades.js")
const { ErrorDesc, is_num, is_float, saveJSON } = require("../utils/utilidades.js"),
errorDB = require("../class/errorDB.js");

@@ -6,27 +7,24 @@ module.exports = {

if(!number && number != 0) throw new Error(`[ERROR] Necesitas colocar el valor(numero)`)
if(!is_num(number)) throw new Error(`[ERROR] El valor debe ser un numero`)
if(!number && number != 0) throw new errorDB(`[ERROR](restar) Necesitas colocar el valor(numero)`)
if(!is_num(number)) throw new errorDB(`[ERROR](restar) El valor debe ser un numero`)
number = is_float(number) ? parseFloat(number) : parseInt(number)
var split_object = clave.split(split_object)
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(!is_num(object_data[key])) return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[restar] El valor de la propiedad ${key} no es un numero, base de datos: ${self.database_name}`))
object_data[key] = (is_float(object_data[key]) ? parseFloat(object_data[key]) : parseInt(object_data[key])) - number
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
return Promise.reject(ErrorDesc("DATABASE NO EXISTENTE", `[restar] La base de datos ${self.database_name} no existe: ${self.path_main_file}`)) //tal vez ocurre algun error ?)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[restar] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[restar] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!is_num(object_data[key])) return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[restar] El valor de la propiedad ${key} no es un numero, base de datos: ${self.database_name}`))
object_data[key] = (is_float(object_data[key]) ? parseFloat(object_data[key]) : parseInt(object_data[key])) - number
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
throw new errorDB(`[ERROR](restar) La base de datos ${self.database_name} no existe: ${self.path_main_file}`)
}
else {
object_data = object_data[key]
}
}
}
}

@@ -1,32 +0,32 @@

const { ErrorDesc, is_num, saveJSON } = require("../utils/utilidades.js")
const { ErrorDesc, is_num, saveJSON } = require("../utils/utilidades.js"),
errorDB = require("../class/errorDB.js");
module.exports = {
setIndex: function(clave, index, valor, split_object, global_object, self, save) {
if(!index && index != 0) throw new Error(`[ERROR] El segundo parametro debe ser un index(numero)`)
if(!is_num(index)) throw new Error(`[ERROR] El segundo parametro debe ser un index(numero)`)
if(!index && index != 0) throw new errorDB(`[ERROR](setIndex) El segundo parametro debe ser un index(numero)`)
if(!is_num(index)) throw new errorDB(`[ERROR](setIndex) El segundo parametro debe ser un index(numero)`)
index = parseInt(index)
if(!valor && valor != 0) throw new Error(`[ERROR] El valor que se usará para remplazar no fue especificado`)
if(!valor && valor != 0) throw new errorDB(`[ERROR](setIndex) El valor que se usará para remplazar no fue especificado`)
var split_object = clave.split(split_object)
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[setIndex] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
if(index >= object_data[key].length) return Promise.reject(ErrorDesc("ITEM NO EXISTENTE", `[setIndex] El item con el indice ${index} no existe en el array ${key}, base de datos: ${self.database_name}`))
object_data[key][index] = valor
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
return Promise.reject(ErrorDesc("DATABASE NO EXISTENTE", `[setIndex] La base de datos ${self.database_name} no existe: ${self.path_main_file}`)) //tal vez ocurre algun error ?)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[setIndex] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[setIndex] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("ARRAY NO EXISTENTE", `[setIndex] El valor de la propiedad ${key} no es un array, base de datos: ${self.database_name}`))
if(index >= object_data[key].length) return Promise.reject(ErrorDesc("ITEM NO EXISTENTE", `[setIndex] El item con el indice ${index} no existe en el array ${key}, base de datos: ${self.database_name}`))
object_data[key][index] = valor
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
throw new errorDB(`[ERROR](setIndex) La base de datos ${self.database_name} no existe: ${self.path_main_file}`)
}
else {
object_data = object_data[key]
}
}
}
}

@@ -7,3 +7,2 @@ const { ErrorDesc, check_path_object } = require("../utils/utilidades.js")

if(clave === false) {
if(Object.keys(global_object[self.object_id]).length <= 0) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[some] Actualmente no hay ninguna propiedad, base de datos: ${self.database_name}`))
for(var key in global_object[self.object_id]) {

@@ -15,20 +14,18 @@ if(callback(global_object[self.object_id][key], key)) return true

check_path_object(clave, split_object)
var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
for(var key2 in object_data[key]) {
if(callback(object_data[key][key2], key2)) return true
}
return false
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[some] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return false
if(key == args[args.length-1]) {
for(var key2 in object_data[key]) {
if(callback(object_data[key][key2], key2)) return true
}
return false
}
else {
object_data = object_data[key]
}
}
}
}

@@ -1,2 +0,3 @@

const { ErrorDesc, is_num, is_float, saveJSON } = require("../utils/utilidades.js")
const { ErrorDesc, is_num, is_float, saveJSON } = require("../utils/utilidades.js"),
errorDB = require("../class/errorDB.js");

@@ -6,25 +7,24 @@ module.exports = {

if(!number && number != 0) throw new Error(`[ERROR] Necesitas colocar el valor(numero)`)
if(!is_num(number)) throw new Error(`[ERROR] El valor debe ser un numero`)
if(!number && number != 0) throw new errorDB(`[ERROR](sumar) Necesitas colocar el valor(numero)`)
if(!is_num(number)) throw new errorDB(`[ERROR](sumar) El valor debe ser un numero`)
number = is_float(number) ? parseFloat(number) : parseInt(number)
var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(!is_num(object_data[key])) return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[sumar] El valor de la propiedad ${key} no es un numero, base de datos: ${self.database_name}`))
object_data[key] = (is_float(object_data[key]) ? parseFloat(object_data[key]) : parseInt(object_data[key])) + number
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
return Promise.reject(ErrorDesc("DATABASE NO EXISTENTE", `[sumar] La base de datos ${self.database_name} no existe: ${self.path_main_file}`)) //tal vez ocurre algun error ?)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[sumar] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[sumar] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!is_num(object_data[key])) return Promise.reject(ErrorDesc("NUMERO NO EXISTENTE", `[sumar] El valor de la propiedad ${key} no es un numero, base de datos: ${self.database_name}`))
object_data[key] = (is_float(object_data[key]) ? parseFloat(object_data[key]) : parseInt(object_data[key])) + number
if(!save) return Promise.resolve(object_data[key])
let save_data = saveJSON(self.path_file_name, global_object[self.object_id])
if(save_data) return Promise.resolve(object_data[key])
throw new errorDB(`[ERROR](sumar) La base de datos ${self.database_name} no existe: ${self.path_main_file}`)
}
else {
object_data = object_data[key]
}
}
}
}
module.exports = {
tiene: function (clave, split_object, global_object, self) {
var split_object = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
return true
}
object_data = object_data[key]
continue
}
return false
}
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return false
if(key == args[args.length-1]) return true
else object_data = object_data[key]
}
}
}

@@ -1,2 +0,2 @@

const { ErrorDesc, check_path_object } = require("../utils/utilidades.js")
const { ErrorDesc, check_path_object, isObject } = require("../utils/utilidades.js")

@@ -6,24 +6,19 @@ module.exports = {

if(clave === false) {
let values = Object.keys(global_object[self.object_id]).map(o => global_object[self.object_id][o])
return Promise.resolve(values)
}
if(clave === false) return Promise.resolve(Object.keys(global_object[self.object_id]).map(o => global_object[self.object_id][o]))
check_path_object(clave, split_object)
var split_object = clave.split(split_object)
var [...args] = clave.split(split_object)
var object_data = global_object[self.object_id]
for(var x in split_object) {
var key = split_object[x]
if(typeof object_data[key] != "undefined") {
if(x == split_object.length-1) {
if(typeof object_data[key] != "object" || Array.isArray(object_data[key])) return Promise.reject(ErrorDesc("OBJETO NO EXISTENTE", `[values] El valor de la propiedad ${key} no es un objeto, base de datos: ${self.database_name}`))
let values_obj = Object.keys(object_data[key]).map(o => object_data[key][o])
return Promise.resolve(values_obj)
}
object_data = object_data[key]
continue
}
return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[values] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
}
for(var key of args) {
if(!object_data.hasOwnProperty(key)) return Promise.reject(ErrorDesc("PROPIEDAD NO EXISTENTE", `[values] No se encontro la propiedad ${key}, base de datos: ${self.database_name}`))
if(key == args[args.length-1]) {
if(!isObject(object_data[key])) return Promise.reject(ErrorDesc("OBJETO NO EXISTENTE", `[values] El valor de la propiedad ${key} no es un objeto, base de datos: ${self.database_name}`))
return Promise.resolve(Object.keys(object_data[key]).map(o => object_data[key][o]))
}
else {
object_data = object_data[key]
}
}
}
}
{
"name": "megadb",
"version": "3.0.0",
"version": "3.1.0",
"description": "base de datos usando JSON",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -1,10 +0,7 @@

const fs = require("fs"),
path = require("path"),
mkdirp = require('mkdirp');
const fs = require("graceful-fs"),
path = require("path"),
mkdirp = require("mkdirp"),
errorDB = require("../class/errorDB.js");
function is_float(n) {

@@ -29,3 +26,3 @@ return typeof(n, "Number") && !!(n % 1)

function readJSON(path_file_name) {
if(!fs.existsSync(path_file_name)) throw new Error(`[ERROR] El archivo ${path_file_name} no existe.`)
if(!fs.existsSync(path_file_name)) throw new errorDB(`[ERROR] El archivo ${path_file_name} no existe.`)
var obj_data;

@@ -37,3 +34,3 @@ try{

catch(error) {
throw new Error(`[ERROR] Ocurrio un problema al tratar de leer los datos del archivo ${path_file_name}, error: ${error}`)
throw new errorDB(`[ERROR] Ocurrio un problema al tratar de leer los datos del archivo ${path_file_name}, error: ${error}`)
}

@@ -48,4 +45,14 @@ return obj_data

function isObject(type_var) {
if(typeof type_var == "object" && !(type_var instanceof Array)) return true
return false
}
//--------------------------------------------------------------------------------------\\
//---------------------------------------------------------------------------------------\\
function saveJSON(path_file_name, new_object) {
if(!fs.existsSync(path_file_name)) throw new Error(`[ERROR] El archivo ${path_file_name} no existe.`)
if(!fs.existsSync(path_file_name)) throw new errorDB(`[ERROR] El archivo ${path_file_name} no existe.`)
try{

@@ -56,3 +63,3 @@ fs.writeFileSync(path_file_name, JSON.stringify(new_object, null, 2), 'utf8')

catch(error) {
throw new Error(`[ERROR] Ocurrio un error al tratar de guardar los datos en el archivo ${path_file_name}, error: ${error}`)
throw new errorDB(`[ERROR] Ocurrio un error al tratar de guardar los datos en el archivo ${path_file_name}, error: ${error}`)
}

@@ -67,6 +74,6 @@ }

function check_path_object(path_object, split_object) {
if(!path_object) throw new Error(`[ERROR] El nombre de la clave no fue especificado`)
if(typeof path_object != "string") throw new Error(`[ERROR] El nombre de la clave debe ser un string`)
if(path_object.includes(`${split_object}${split_object}`)) throw new Error(`[ERROR] El nombre de la clave no debe de contener el signo ${split_object} seguido de otro.`)
if(path_object.startsWith(split_object) || path_object.endsWith(split_object)) throw new Error(`[ERROR] El nombre de la clave no debe empezar ni terminar con un ${split_object}`)
if(!path_object) throw new errorDB(`[ERROR] El nombre de la clave no fue especificado`)
if(typeof path_object != "string") throw new errorDB(`[ERROR] El nombre de la clave debe ser un string`)
if(path_object.includes(`${split_object}${split_object}`)) throw new errorDB(`[ERROR] El nombre de la clave no debe de contener el signo ${split_object} seguido de otro.`)
if(path_object.startsWith(split_object) || path_object.endsWith(split_object)) throw new errorDB(`[ERROR] El nombre de la clave no debe empezar ni terminar con un ${split_object}`)
}

@@ -93,3 +100,3 @@

function build_path(object) {
if(typeof object != "object" || (object instanceof Array)) throw new Error("Parametros incorrectos, el constructor crearDB puede recibir un objeto o dos parametros indicando el nombre de la base de datos y el sub directorio.") //Poco probable que esta linea sea evaluada pero de igual forma..
if(typeof object != "object" || (object instanceof Array)) throw new errorDB("[ERROR](crearDB) Parametros incorrectos, el constructor crearDB puede recibir un objeto o dos parametros indicando el nombre de la base de datos y el sub directorio.") //Poco probable que esta linea sea evaluada pero de igual forma..
let nombre = object.hasOwnProperty("nombre") && typeof object.nombre == "string" ? object.nombre.replace(/[^a-zA-Z0-9_]/g, '') : ""

@@ -99,5 +106,5 @@ let carpeta = object.hasOwnProperty("carpeta") && typeof object.carpeta == "string" ? object.carpeta.replace(/[^a-zA-Z0-9_]/g, '') : "mega_databases"

if(!nombre) throw new Error(`[ERROR] Necesitas colocar el nombre de la base de datos, debe ser un string y asegurate de no usar simbolos.`)
if(!carpeta) throw new Error("[ERROR] El nombre de la carpeta donde se guardaran las bases de datos debe ser un string y asegurate de no usar simbolos.")
if(!sub_carpeta && sub_carpeta !== false) throw new Error(`[ERROR] El nombre del sub directorio ${sub_carpeta} debe ser un string y asegurate de no usar simbolos.`)
if(!nombre) throw new errorDB(`[ERROR](crearDB) Necesitas colocar el nombre de la base de datos, debe ser un string y asegurate de no usar simbolos.`)
if(!carpeta) throw new errorDB("[ERROR](crearDB) El nombre de la carpeta donde se guardaran las bases de datos debe ser un string y asegurate de no usar simbolos.")
if(!sub_carpeta && sub_carpeta !== false) throw new errorDB(`[ERROR](crearDB) El nombre del sub directorio ${sub_carpeta} debe ser un string y asegurate de no usar simbolos.`)

@@ -107,3 +114,3 @@ let root = path.join(path.dirname(require.main.filename), carpeta)

mkdirp(root, (err) => {
if(err) throw new Error(`[ERROR] No se pudo crear la carpeta ${carpeta} donde se almacenaran las base de datos, error: ${err}`)
if(err) throw new errorDB(`[ERROR] No se pudo crear la carpeta ${carpeta} donde se almacenaran las base de datos, error: ${err}`)
console.log(`[CREANDO DIRECTORIO] Acaba de crearse la carpeta ${carpeta}, en esta carpeta ${sub_carpeta != false ? "se creara tu sub directorio" : "se almacenaran tus base de datos"}.`)

@@ -115,3 +122,3 @@ })

mkdirp(`${root}/${sub_carpeta}`, (err) => {
if(err) throw new Error(`[ERROR] No se pudo crear el sub directorio ${sub_carpeta}, error: ${err}`)
if(err) throw new errorDB(`[ERROR](crearDB) No se pudo crear el sub directorio ${sub_carpeta}, error: ${err}`)
console.log(`[CREANDO SUB DIRECTORIO] Acaba de crearse el sub directorio ${sub_carpeta}, en esta carpeta se almacenaran tus base de datos.`)

@@ -124,3 +131,3 @@ })

fs.writeFileSync(`${root}/${nombre}.json`, JSON.stringify({}, null, 2), { flag: 'wx' }, function(err) {
if(err) throw new Error(`[ERROR] No se pudo crear la base de datos ${database_name}, error: ${err}`)
if(err) throw new errorDB(`[ERROR](crearDB) No se pudo crear la base de datos ${database_name}, error: ${err}`)
})

@@ -145,3 +152,4 @@ }

ErrorDesc,
build_path
build_path,
isObject
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc