Nutella Peanut-Butter Marshmallow

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

    Install

    npm i mechdb

    DownloadsWeekly Downloads

    4

    Version

    0.0.3

    License

    ISC

    Unpacked Size

    33.4 kB

    Total Files

    15

    Last publish

    Collaborators

    • mechslayer