Comparing version 0.1.6 to 0.1.8
188
index.js
@@ -22,2 +22,5 @@ var fs = require('fs'), | ||
- push | ||
- extract | ||
- sumar | ||
- restar | ||
- datos | ||
@@ -64,3 +67,4 @@ */ | ||
if(x == split_coords.length - 1) global_object = global_object[objecT_name] = set_value | ||
else global_object = typeof global_object[objecT_name] != "object" ? global_object[objecT_name] = {} : global_object[objecT_name] | ||
//else global_object = typeof global_object[objecT_name] != "object" ? global_object[objecT_name] = {} : global_object[objecT_name] | ||
else global_object = (Array.isArray(global_object[objecT_name]) || typeof global_object[objecT_name] != "object") ? global_object[objecT_name] = {} : global_object[objecT_name] | ||
}else{ | ||
@@ -228,7 +232,7 @@ if(x == split_coords.length - 1) global_object = global_object[objecT_name] = set_value | ||
else{ | ||
reject(null) | ||
reject("Array no encontrado.") | ||
} | ||
} | ||
}else{ | ||
reject(null) | ||
reject("Array no encontrado.") | ||
} | ||
@@ -245,3 +249,3 @@ } | ||
else{ | ||
reject(null) | ||
reject("Array no encontrado.") | ||
} | ||
@@ -251,8 +255,182 @@ | ||
else{ | ||
reject(null) | ||
reject("Array no encontrado.") | ||
} | ||
} | ||
}) | ||
}, | ||
//funcion para eliminar un elemento de una lista (array), tambien detecta propiedades a travez del punto y elimina elementos de algo especifico. | ||
this.extract = function(key_value, type_value) { | ||
if(!key_value) throw new TypeError("Clave no especificada") | ||
if (!type_value && type_value != 0) throw new TypeError("Valor no especificado.") | ||
if(typeof key_value != "string") throw new TypeError("Formato invalido, debes de poner un string (cadena de texto).") | ||
if(key_value.includes(" ")) throw new TypeError("Formato invalido, no pongas espacios.") | ||
return new Promise((resolve, reject) => { | ||
if(key_value.includes(".")) { | ||
let properties = key_value.split(".") | ||
if(properties.some(r => r.length <= 0)) throw new TypeError("Formato invalido, asegurate de no poner espacios en blanco, tampoco usar dos puntos uno seguido de otro.") | ||
let lastobject = this.value | ||
for(var x = 0; x < properties.length; x++) { | ||
let index = properties[x] | ||
if(lastobject[index] != null) { | ||
lastobject = lastobject[index] | ||
if(x === properties.length - 1) { | ||
if(Array.isArray(lastobject)) { | ||
if(lastobject.includes(type_value)) { | ||
lastobject.splice(lastobject.indexOf(type_value), 1) | ||
Save_data() | ||
resolve(lastobject) | ||
}else{ | ||
reject(`Elemento ${type_value} no encontrado.`) | ||
} | ||
} | ||
else{ | ||
reject("Array no encontrado.") | ||
} | ||
} | ||
}else{ | ||
reject("Array no encontrado.") | ||
} | ||
} | ||
} | ||
else{ | ||
if(this.value[key_value] != null) { | ||
if(Array.isArray(this.value[key_value])) { | ||
if(this.value[key_value].includes(type_value)) { | ||
this.value[key_value].splice(this.value[key_value].indexOf(type_value), 1) | ||
Save_data() | ||
resolve(this.value[key_value]) | ||
}else{ | ||
reject(`Elemento ${type_value} no encontrado.`) | ||
} | ||
} | ||
else{ | ||
reject("Array no encontrado.") | ||
} | ||
} | ||
else{ | ||
reject("Array no encontrado.") | ||
} | ||
} | ||
}) | ||
}, | ||
//funcion para restar una cierta cantidad a un valor, tambien puedes acceder a un valor especifico. | ||
this.restar = function(key_value, type_value) { | ||
if(!key_value) throw new TypeError("Clave no especificada") | ||
if (!type_value && type_value != 0) throw new TypeError("Valor no especificado.") | ||
if(typeof key_value != "string") throw new TypeError("Formato invalido, debes de poner un string (cadena de texto).") | ||
if(typeof type_value != "number") throw new TypeError("Formato invalido, debes de poner un numero.") | ||
if(key_value.includes(" ")) throw new TypeError("Formato invalido, no pongas espacios.") | ||
return new Promise((resolve, reject) => { | ||
if(key_value.includes(".")) { | ||
let properties = key_value.split(".") | ||
if(properties.some(r => r.length <= 0)) throw new TypeError("Formato invalido, asegurate de no poner espacios en blanco, tampoco usar dos puntos uno seguido de otro.") | ||
let lastobject = this.value | ||
for(var x = 0; x < properties.length; x++) { | ||
let index = properties[x] | ||
if(lastobject[index] != null) { | ||
if(x === properties.length - 1) { | ||
if(!isNaN(lastobject[index])) { | ||
lastobject[index] = lastobject[index] - type_value | ||
Save_data() | ||
resolve(lastobject) | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
lastobject = lastobject[index] | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
} | ||
else{ | ||
if(this.value[key_value] != null) { | ||
if(!isNaN(this.value[key_value])) { | ||
this.value[key_value] = this.value[key_value] - type_value | ||
Save_data() | ||
resolve(this.value[key_value]) | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
}) | ||
}, | ||
//funcion para sumar una cierta cantidad a un valor, tambien puedes acceder a un valor especifico. | ||
this.sumar = function(key_value, type_value) { | ||
if(!key_value) throw new TypeError("Clave no especificada") | ||
if (!type_value && type_value != 0) throw new TypeError("Valor no especificado.") | ||
if(typeof key_value != "string") throw new TypeError("Formato invalido, debes de poner un string (cadena de texto).") | ||
if(typeof type_value != "number") throw new TypeError("Formato invalido, debes de poner un numero.") | ||
if(key_value.includes(" ")) throw new TypeError("Formato invalido, no pongas espacios.") | ||
return new Promise((resolve, reject) => { | ||
if(key_value.includes(".")) { | ||
let properties = key_value.split(".") | ||
if(properties.some(r => r.length <= 0)) throw new TypeError("Formato invalido, asegurate de no poner espacios en blanco, tampoco usar dos puntos uno seguido de otro.") | ||
let lastobject = this.value | ||
for(var x = 0; x < properties.length; x++) { | ||
let index = properties[x] | ||
if(lastobject[index] != null) { | ||
if(x === properties.length - 1) { | ||
if(!isNaN(lastobject[index])) { | ||
lastobject[index] = lastobject[index] + type_value | ||
Save_data() | ||
resolve(lastobject) | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
lastobject = lastobject[index] | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
} | ||
else{ | ||
if(this.value[key_value] != null) { | ||
if(!isNaN(this.value[key_value])) { | ||
this.value[key_value] = this.value[key_value] + type_value | ||
Save_data() | ||
resolve(this.value[key_value]) | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
else{ | ||
reject("Numero no encontrado.") | ||
} | ||
} | ||
}) | ||
} | ||
} | ||
} |
{ | ||
"name": "mega-dtbs", | ||
"version": "0.1.6", | ||
"version": "0.1.8", | ||
"description": "simple database", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -15,4 +15,6 @@ ``` | ||
- push | ||
- extract | ||
- sumar | ||
- restar | ||
## Instalacion: | ||
@@ -123,13 +125,54 @@ | ||
Tambien te permite agregarlo en una propiedad especifica usando el . seguido del nombre de la propiedad. | ||
Esto retornara una promesa con el array actualizado, de lo contrario si la ruta donde quieres agregarlo no es un array, retornara null. | ||
Esto retornara una promesa con el array actualizado, de lo contrario si la ruta donde quieres agregarlo no es un array, retornara "Array no encontrado". | ||
``` | ||
```js | ||
niveles.push('RatSageM', 'elemento1') // retorma ["elemento1"] | ||
niveles.push('RatSageM', 'manzana') // retorna ["manzana"] | ||
niveles.agregar('MGstar', {items: ["elemento1"]}) // retorna {items: ["elemento1"]} | ||
niveles.agregar('MGstar', {items: ["platano"]}) // retorna {items: ["platano"]} | ||
niveles.push('MGstar', 'elemento2') // retorna null | ||
niveles.push('MGstar.items', 'elemento2') // retorna ["elemento1", "elemento2"] | ||
niveles.push('MGstar', 'sandia') // retorna "Array no encontrado." | ||
niveles.push('MGstar.items', 'sandia') // retorna ["platano", "sandia"] | ||
``` | ||
### extract(clave, valor) | ||
``` | ||
Esta funcion te permite remover un elemento de un array. | ||
Tambien te permite remover un elemento en una propiedad especifica usando el . seguido del nombre de la propiedad. | ||
Esto retornara una promesa con el array actualizado, si la ruta donde quieres agregarlo no es un array, retornara "Array no encontrado" y si el array no contiene el valor que pusiste, retornara "elemento {nombre_item} no encontrado" | ||
``` | ||
```js | ||
niveles.extract('MGstar', 'platano') // retorna "Array no encontrado." | ||
niveles.extract('MGstar.items', 'platano') // retorna ["sandia"] | ||
niveles.extract('MGstar.items', 'durazno') // retorna "elemento durazno no encontrado." | ||
``` | ||
### sumar(clave, numero) | ||
``` | ||
Esta funcion te permite sumar una cantidad especifica a una clave, el valor de la clave debe ser un numero. | ||
Tambien te permite sumarlo en una propiedad especifica usando el . seguido del nombre de la propiedad. | ||
Esto retornara una promesa con el valor actualizado, de lo contrario retornara "Numero no encontrado." | ||
``` | ||
```js | ||
niveles.agregar('Nelson', 20) //retorna 20 | ||
niveles.sumar('Nelson', 25) //retorna 45 | ||
niveles.agregar('Sun.datos.monedas', 10) // retorna {datos: {monedas: 10}} | ||
niveles.sumar('Sun.datos', 90) //retorna "Numero no encontrado." | ||
niveles.sumar('Sun.datos.monedas', 90) // retorna {datos: {monedas: 100}} | ||
``` | ||
### restar(clave, numero) | ||
``` | ||
Esta funcion te permite restar una cantidad especifica a una clave, el valor de la clave debe ser un numero. | ||
Tambien te permite restarlo en una propiedad especifica usando el . seguido del nombre de la propiedad. | ||
Esto retornara una promesa con el valor actualizado, de lo contrario retornara "Numero no encontrado." | ||
``` | ||
```js | ||
niveles.restar('Nelson', 40) //retorna 5 | ||
niveles.restar('Sun.datos', 100) //retorna "Numero no encontrado." | ||
niveles.restar('Sun.datos.monedas', 100) // retorna {datos: {monedas: 0}} | ||
``` | ||
## Ejemplo usando algunas funciones: | ||
@@ -153,3 +196,3 @@ ```js | ||
else{ | ||
estadisticas.agregar('MegaStar.xp', datos.xp + randomXP) | ||
estadisticas.sumar('MegaStar.xp', randomXP) | ||
} | ||
@@ -165,11 +208,11 @@ }).catch(err => console.log(err)) | ||
escuela.agregar('MegaStar', {edad: 20, profesion: ["programador"]}); | ||
escuela.agregar('MoDeR', {edad: 18, profesion: ["programador"]}); | ||
escuela.agregar('RatSageM', {edad: 25, profesion: ["maestro"]}); | ||
escuela.agregar('MegaStar', {edad: 20, profesion: ['programador']}); | ||
escuela.agregar('MoDeR', {edad: 18, profesion: ['programador']}); | ||
escuela.agregar('RatSageM', {edad: 25, profesion: ['maestro']}); | ||
escuela.datos().then(async (alumnos) => { | ||
escuela.datos().then(alumnos => { | ||
for(var alumno in alumnos) { | ||
if(alumnos[alumno].profesion.includes('programador')) { | ||
escuela.push(`${alumno}.profesion`, "javascript"); | ||
escuela.push(`${alumno}.profesion`, 'javascript'); | ||
continue; | ||
@@ -181,4 +224,4 @@ } | ||
/* | ||
resultado: | ||
//resultado final: | ||
{ | ||
@@ -194,3 +237,28 @@ "MegaStar": { | ||
} | ||
*/ | ||
///////////////////////////////////////////////////// | ||
const db = require('mega-dtbs'); | ||
let mercado_db = new db.crearDB('mercado'); | ||
let nombres = ['manzana', 'melocoton', 'sandia', 'lechuga'] | ||
mercado_db.agregar('frutas', nombres); //esto retorna ['manzana', 'melocoton', 'sandia', 'lechuga'] | ||
mercado_db.obtener('frutas').then(f => { | ||
for(var x = 0; x < f.length; x++) { | ||
if(f[x] == 'lechuga') { | ||
mercado_db.extract('lechuga') //esto retorna ['manzana', 'melocoton', 'sandia'] | ||
console.log(`La ${f[x]} no es una fruta, acabo de removerlo.`) | ||
break; | ||
} | ||
} | ||
}) | ||
//resultado final: | ||
{ | ||
"frutas": ["manzana", "melocoton", "sandia"] | ||
} | ||
``` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
26846
384
259
7