Comparing version 3.0.0 to 3.1.0
@@ -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
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
140647
31
2698
1
1131