mechdb

0.0.3 • Public • Published

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
 */

Dependents (0)

Package Sidebar

Install

npm i mechdb

Weekly Downloads

2

Version

0.0.3

License

ISC

Unpacked Size

33.4 kB

Total Files

15

Last publish

Collaborators

  • mechslayer