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

megadb

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

megadb - npm Package Compare versions

Comparing version 1.7.0 to 1.9.0

78

index.js

@@ -249,2 +249,5 @@ const fs = require('graceful-fs'),

- convert_megadtbs
- keys
- values
- size

@@ -798,2 +801,74 @@ */

function keys(clave = false, split_object) { //retorna promesa
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) {
let keys = Object.keys(global_object[this.database_name])
return Promise.resolve(keys)
}
check_path_object(clave, split_object)
var split_object = clave.split(split_object)
var object_data = global_object[this.database_name]
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", `El valor de la propiedad ${key} no es un objeto`))
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", `No se encontro la propiedad ${key}`))
}
}
//--------------------------------------------------------------------------------------\\
//---------------------------------------------------------------------------------------\\
function values(clave = false, split_object) { //retorna promesa
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) {
let values = Object.keys(global_object[this.database_name]).map(o => global_object[this.database_name][o])
return Promise.resolve(values)
}
check_path_object(clave, split_object)
var split_object = clave.split(split_object)
var object_data = global_object[this.database_name]
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", `El valor de la propiedad ${key} no es un objeto`))
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", `No se encontro la propiedad ${key}`))
}
}
//--------------------------------------------------------------------------------------\\
//---------------------------------------------------------------------------------------\\
function size() { //retorna promesa
return Object.keys(global_object[this.database_name]).length
}
//--------------------------------------------------------------------------------------\\
//---------------------------------------------------------------------------------------\\
crearDB.prototype.existeDB = existeDB

@@ -813,1 +888,4 @@ crearDB.prototype.establecer = establecer

crearDB.prototype.convert_megadtbs = convert_megadtbs
crearDB.prototype.keys = keys
crearDB.prototype.values = values
crearDB.prototype.size = size

2

package.json
{
"name": "megadb",
"version": "1.7.0",
"version": "1.9.0",
"description": "base de datos usando JSON",

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

@@ -22,2 +22,5 @@ ```

V1.9.0
* Se agrego 3 nuevos metodos (size, keys, values)
V1.7.0

@@ -38,2 +41,3 @@ * Se agregó el metodo purgeall.

* [establecer](#establecer)
* [size](#size)
* [obtener](#obtener)

@@ -47,2 +51,4 @@ * [tiene](#tiene)

* [restar](#restar)
* [keys](#keys)
* [values](#values)
* [purgeall](#purgeall)

@@ -171,2 +177,30 @@ * [ordenar](#ordenar)

<a name="size" />
### size
```js
size()
```
Este metodo te permite obtener el numero de valores(claves/keys) de una base de datos.
__Argumentos__
Ninguno
__Retorna__
Retorna el numero de valores de la base de datos(claves/keys).
__Ejemplos__
```js
const db = require('megadb');
let niveles = new db.crearDB('niveles');
let length = niveles.size()
console.log(length) //Esto retorna 3 ya que solo hemos agregado 3 valores(claves): MegaStar, MoDeR y RatSageM
```
<a name="obtener" />

@@ -484,2 +518,3 @@ ### obtener

console.log(niveles.size()) //Esto imprime 6 ya que hemos agregado 6 valores(claves): MegaStar, MoDeR, RatSageM, MGstar, Nelson y Sun

@@ -570,2 +605,79 @@ //Estructura actual de la base de datos niveles.json:

<a name="keys" />
### keys
```js
keys(clave, clave_split)
```
Este metodo retorna un array con todos los nombres(keys) de las propiedades del objeto que especificaste.
__Argumentos__
1. clave (opcional): La clave es opcional, en el caso de que quieras obtener los nombres(keys) de un objeto especifico, puedes colocar el nombre del objecto. Si quieres obtener los nombres(keys) de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split)
En el caso de que directamente quieras obtener los nombres(keys) de una base de datos, no pongas ningun valor.
3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)
__Retorna__
Promesa con un array que contiene los nombres de las propiedades(keys).
__Error__
En caso de que ocurra un error, esto regresara un objeto con el error descriptivo *(puedes obtenerlo con un .catch(error => ))*
[Click aqui para ver los tipos de errores](#Errores)
__Ejemplos__
```js
const db = require('megadb');
let niveles = new db.crearDB('niveles');
niveles.keys() //retorna promesa: ["MegaStar", "MoDeR", "RatSageM", "MGstar", "Nelson", "Sun"]
niveles.keys('MegaStar.nivel') //retorna Error: {type: "OBJETO NO EXISTENTE", mensaje: "El valor de la propiedad nivel no es un objeto"}
niveles.keys('Sun.datos') ///retorna promesa: ["monedas"]
```
<a name="values" />
### values
```js
values(clave, clave_split)
```
Este metodo retorna un array con todos los valores de las propiedades del objeto que especificaste.
__Argumentos__
1. clave (opcional): La clave es opcional, en el caso de que quieras obtener los valores de un objeto especifico, puedes colocar el nombre del objecto. Si quieres obtener los valores de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split)
En el caso de que directamente quieras obtener los valores de una base de datos, no pongas ningun valor.
3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)
__Retorna__
Promesa con un array que contiene los valores de las propiedades.
__Error__
En caso de que ocurra un error, esto regresara un objeto con el error descriptivo *(puedes obtenerlo con un .catch(error => ))*
[Click aqui para ver los tipos de errores](#Errores)
__Ejemplos__
```js
const db = require('megadb');
let niveles = new db.crearDB('niveles');
niveles.values() //retorna promesa: [{nivel: 10}, {datos: {monedas: 200}}, [], {items: ["sandia"]}, {datos: {monedas:0}}]
niveles.values('MegaStar.nivel') //retorna Error: {type: "OBJETO NO EXISTENTE", mensaje: "El valor de la propiedad nivel no es un objeto"}
niveles.values('Sun.datos') ///retorna promesa: [{monedas: 0}]
```
<a name="purgeall" />

@@ -637,7 +749,7 @@ ### purgeall

1. clave: La clave puede recibir dos tipos de valores, en el caso de que quieras ordenar las propiedades un objeto especifico, puedes colocar el nombre del objecto. Si quieres ordenar las propiedades de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split)
Puedes usar false en caso de que tengas propiedades que no sean objetos anidados.
1. clave: La clave puede recibir dos tipos de valores, en el caso de que quieras ordenar las propiedades de un objeto especifico, puedes colocar el nombre del objecto. Si quieres ordenar las propiedades de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split)
Puedes usar false en caso de que directamente quieras ordenar las propiedades de una base de datos.
2. valor: El valor tambien puede recibir dos tipos de valores, en el caso de que las propiedades del objeto que quieres ordenar tambien sean objetos y mantengan propiedades, puedes colocar el nombre de la propiedad que se usara como referencia para ordenarlos de forma descendente, en el caso de que estas propiedades tambien sean objetos, puedes usar el . seguido del nombre del objeto y la propiedad que quieres ordenar (el . es un signo por default, puedes cambiarlo en clave_split)
Puedes usar false en caso de que los valores de las propiedades no sean objetos anidados.
Puedes usar false en caso de que el valor de la propiedad con la cual lo vas a ordenar no sea un objeto.

@@ -1111,3 +1223,3 @@ 3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave y el argumento valor (por default es el .)

Existen 5 tipos de errores que te pueden salir en el .catch, esto retorna un objeto que contiene 2 propiedades:
Existen 6 tipos de errores que te pueden salir en el .catch, esto retorna un objeto que contiene 2 propiedades:

@@ -1124,2 +1236,3 @@ 1. type: Aqui se muestra el tipo de error.

5: {type: "ITEM NO EXISTENTE",mensaje: "El item {elemento} no existe en el array {nombre_array}"}
6: {type: "OBJETO NO EXISTENTE", mensaje: "El valor de la propiedad {nombre_propiedad} no es un objeto"}
```

@@ -1265,2 +1378,39 @@

*/
/////////////////////////////////////////////////////
const db = require('megadb');
let login_db = new db.crearDB('login')
let registered_users = {
"Mario": "password1",
"MegaStar": "password2",
"MoDeR": "password3",
"RatSageM": "password4"
}
login_db.establecer('usuarios', registered_users)
/*
Estructura actual de la base de datos login.json:
{
"usuarios": {
"Mario": "password1",
"MegaStar": "password2",
"MoDeR": "password3",
"RatSageM": "password4"
}
}
*/
login_db.keys('usuarios').then(users => {
console.log(`Nombres de los usuarios registrados: ${users.join(", ")}`)
})
//resultado: "Nombres de los usuarios registrados: Mario, MegaStar, MoDeR, RatSageM"
```
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc