mechdb
v0.0.3
Published
Interfaz para manejar datos en archivos JSON
Downloads
14
Maintainers
Readme
Documentación en proceso, todos los métodos están documentados con JsDoc, cualquier duda: https://discord.gg/rPaBEz4
Ejemplo:
async function main() {
let db = await mechdb.abrirDB.async("datos/usuarios"); //Si se quiere abrir de forma síncrona, usar sync
await db.establecer("clientes.390234", {nombre: "Nombre", apellido: "Apellido", edad: 18});
let cliente = db.obtener("clientes.390234"); //{ nombre: 'Nombre', apellido: 'Apellido', edad: 18 }
await db.opreacion("clientes.390234.edad", 2, "sumar");
//cliente = { nombre: 'Nombre', apellido: 'Apellido', edad: 20 }
}
main()
size(): number
Muestra la cantidad de claves principales que tiene la base de datos
establecer(): Promise
/**
* Establece un valor en la base de datos de manera asíncrona
* @param {string} clave
* @param {any} dato
* @param {{separador: ".", guardar: true}} opciones
* @example await establecer("id", 1)
* @example await establecer("usuario.dinero.cartera", 200)
* @example await establecer("usuario-dinero-cartera", 200, {separador: "-"})
* @returns {Promise<Database>} La base de datos actualizada
*/
tiene(): boolean
/**
* Comprueba si la base de datos contiene la clave indicada
* @param {string} clave Clave que se quiera comprobar
* @example .tiene("usuarios.234123");
* @param {{separador: "."}} opciones Opciones extra
* @returns {boolean}
*/
eliminar(): Promise
/**
* Elimina un elemento de la base de datos
* @param {string} clave Clave del elemento
* @param {{separador: ".", guardar: true}} opciones Opciones extra
* @example .eliminar("usuarios.12342");
* @returns {Promise<Database>} La base de datos actualizada
*/
push(): Promise
/**
* Agrega un valor al final de un array
* @param {string} clave Clave del array
* @param {*} dato Dato que se quiera agregar
* @param {{separador: ".", guardar: true}} opciones Opciones extra
* @example .push("usuarios.12341.logros", {nombre: "Logro", xp: 200});
* @returns {Promise<Database>} La base de datos actualizada
*/
buscar(): any
/**
* Adaptación de Array.prototype.find (Busca un elemento dentro de un array)
* @param {string} clave La clave del array
* @param {any} callback Callback que se usará para hacer la comprobación (valor) => void
* @example .buscar("usuarios.12341.logros", (valor) => valor.xp > 10);
* @returns {any} El resultado o undefined
*/
filtrar(): any[]
/**
* Adaptación de Array.prototype.filter (Devuelve un nuevo array, con los valores del array indicado que cumplan la condición)
* @param {string} clave La clave del array
* @param {any} callback Callback que se usará para hacer la comprobación (valor) => void
* @param {string} separador Signo que se usará para separar las claves
* @example .filtrar("usuarios.12341.logros", (valor) => valor.xp > 10);
* @returns {any[]} El array filtrado
*/
map(): any[]
/**
* Adaptación de Array.prototype.map
* @param {string} clave Clave del array que se quiere mapear
* @param {any} callback Callback que se usará para hacer el mapeo (valor) => void
* @example .map("usuarios.12341.logros", (valor) => "El logro " + valor.nombre + " otorga " + valor.xp + "experiencia")
* @param {string} separador SIgno que se usará para separar las claves
* @returns {any[]} El array mapeado
*/
ordenar(): any[]
/**
* Ordena un array, se puede indicar si se quiere ordenar de manera ascendente, o descendente
* En caso de indicar un callback, se usará para ordenar el array
* @param {string} clave Clave del array que se quere ordenar
* @param {{callback: (a, b) => void, asc: true, separador: ".", guardar: false}} opciones Opciones extra
* @example .ordenar("usuarios.12341.logros", {asc: false}) //Ordena el array de manera descendente
* @example .ordenar("usuarios.12341.logros", {callback: (a, b) => a.xp - b.xp}) //Ordena el array usando un callback
* @returns {any[]} El array ordenado
*/
some(): any
/**
* Busca un valor dentro de la base de datos, que cumpla con la condición, usando la clave
* En caso de marcar 'global' como true, se ignorará la clave y se buscará en toda la base de datos.
* También al marcar 'global' como true, se devolverá un array -> [valor, clave]
*
* @param {string} clave La calve del objeto donde se quiera buscar el valor
* @param {(valor, clave: string) => void} callback Callback que se usará para la comprobación
* @param {global: false, separador: "."} opciones Opciones extra
* @example .some("usuarios", (valor, clave) => valor.fechas.includes(20/12/2020))
* @returns {any} El valor encontrado o undefined
*/
delIndex(): Promise
/**
* Elimina un elemento que tenga la posición indicada, en el array
* @param {string} clave Clave del array
* @param {number} index Posición del array en la que se quiere eliminar
* @param {{separador: ".", guardar: true}} opciones Opciones extra
* @example .delIndex("usuarios.12341.logros", 1)
* @returns {Promise<Database>} La base de datos actualizada
*/
setIndex(): Promise
/**
* Cambia un elemento del array indicado, en la posición indicada
* @param {string} clave Clave del array
* @param {number} index Posición del array que se quiere modificar
* @param {any} valor Nuevo valor que se insertará
* @param {{separador: ".", guardar: true}} opciones Opciones extra
* @exapmle .setIndex("usuarios.12341.logros", 1, {Nombre: "Nombre", xp: 20})
* @returns {Promise<Database>} La base de datos actualizada
*/
splice(): Promise
/**
* Elimina el valor especificado, del array especificado -> Array.prototype.splice
* @param {string} clave Clave del array
* @param {any} valor Valor que se quiera eliminar
* @param {{separador: ".", guardar: true}} opciones Opciones extra
* @exapmle .splice("usuarios.12314.logros", {Nombre: "Nombre", xp: 20})
* @returns {Promise<Database>} La base de datos actualizada
*/
random(): any[]
/**
* Devuelve la cantidad especificada de objetos aleatorios, en la clave indicada
* @param {string} clave Clave del objeto
* @param {number} cantidad Cantidad que se quiera devolver
* @param {{separador: "."}} opciones Opciones extra
* @exapmle .random("usuarios", 5);
* @returns {any[]} Los objetos aleatorios
*/
obtener(): any
/**
* Devuelve el valor indicado
* @param {string} clave Clave del valor
* @param {{separador: "."}} opciones Opciones extra
* @example .obtener("usuarios.12421");
* @returns {any} El valor obtenido
*/
opreacion(): Promise
/**
* Realiza una operación matemática con dicha clave
* @param {string} clave Clave en la que se realizará la operación
* @param {number} cantidad La cantidad que se que se usará
* @param {"sumar"|"restar"|"multiplicar"|"dividir"} operacion El tipo de operación
* @param {{separador: ".", guardar: true}} opciones Opciones extra
* @exapmle .operacion("usuarios.1241.nivel", 1, "sumar");
* @returns {Promise<Database>} La base de datos actualizada
*/
vaciar(): Promise
/**
* Vacía la base de datos
* @param {boolean} guardar Si se desea guardar
* @example .guardar()
* @returns {Promise<Database>} La base de datos actualizada
*/
valores(): any[]
/**
* Devuelve todos los valores de la propiedad indicada (tiene que ser un objeto)
* @param {string} clave La calve de la propiedad
* @param {{separador: "."}} opciones Opciones extra
* @example .valores("usuarios");
* @returns {any[]} Los valores del objeto
*/
claves(): string[]
/**
* Devuelve todas las claves de la propiedad indicada (tiene que ser un objeto)
* @param {string} clave La calve de la propiedad
* @param {{separador: "."}} opciones Opciones extra
* @exapmle .claves("usuarios");
* @returns {string[]} Las claves del objeto
*/