1.0.9 • Published 2 years ago

gm-database v1.0.9

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

gm-database

Este paquete no es una base de datos, el paquete te ayuda a guardar información en archivos locales simulando una base de datos. Los archivos son procesados en JSON pero se almacenan en código binario no encriptado.

Antes de usar

Antes de poder usar este paquete, tienes que crear una carpeta llamada gm-database en el primer nivel de tu proyecto, no recomendamos editar manualmente los archivos creados ya que podría fallar la conversión de binario a json al requerir estos archivos.

El paquete no retornara nunca un error, en caso de error retornará un objeto con 3 propiedades: {error: Boolean, code: Number, message: String}

La versión 1.0.3 usa el binario para guardar, la 1.0.4 lo guarda directamente como JSON

Métodos

checkDirectory(dir_name)

Verifica si una carpeta existe dentro de la carpeta principal.

createDirectory(dir_name)

Crea una carpeta dentro de la carpeta principal.

deleteDirectory(dir_name)

Elimina una carpeta y todos los archivos que contiene.

createFile(dir_name, file_name)

Crea un archivo con un objecto vacío dentro de una carpeta.

deleteFile(dir_name, file_name)

Elimina una archivo dentro de una carpeta.

updateFile(dir_name, file_name, data_object)

Actualiza las propiedades del archivo dentro de una carpeta.

rewriteFile(dir_name, file_name, data_object)

Actualiza todo el objeto del archivo.

createSingleFile(dir_name, file_name)

Crea un archivo compartido para guardar objetos que podrán ser buscados.

setSinglePage(dir_name, file_name, key, data_object)

Añade objetos a un archivo compartido.

findSinglePage(dir_name, file_name, key)

Busca objetos en un archivo compartido.

deleteSinglePage(dir_name, file_name, key)

Elimina objetos de un archivo compartido.

Plugins

plugins.expiringFiles

createStream(dir_name, file_name, time, key?)

Elimina un archivo al pasar cierto tiempo, introduce una key en caso de que el archivo sea compartido y solo se quiera eliminar un objeto de él.

fetchStreams()

Elimina todos los archivos que tendrían que ser eliminados, este método se ejecuta automáticamente cada hora.

  const db = require('gm-database');

  let directory = await db.checkDirectory('users'); // Busca la carpeta
  if(directory) await db.createDirectory('users'); // Crea la carpeta

  /* --------------------------- */

  await db.deleteDirectory('users'); // Elimina la carpeta

  /* --------------------------- */

  let user = await db.getFile('users', 'user_1'); // Obtiene los datos del usuario 1
  /*
  {
    name: 'Lucas',
    last_names: ['Garcia', 'Sanchez'],
    phone: '6271825828',
    id: '0020273617a',
    age: 18
  }
  */
  
  await db.updateFile('users', 'user_1', {name: 'Martín'}); // Actualiza solo el nombre
  /*
  {
    name: 'Martín',
    last_names: ['Garcia', 'Sanchez'],
    phone: '6271825828',
    id: '0020273617a',
    age: 18
  }
  */

  await db.rewriteFile('users', 'user_1', {name: 'Lucía'}); // Actualiza todo el documento
  /*
  {
    name: 'Lucía'
  }
  */

  /* --------------------------- */

  await db.deleteFile('users', 'user_1'); // Elimina el documento

  /* --------------------------- */

  await db.createSingleFile('users', 'user_info'); // Prepara un archivo
  await db.setSinglePage('users', 'user_names', '0020273617a', {name: 'Martín'}) // Guarda un dato en un archivo compartido con el id "0020273617a"

  let user = await db.findSinglePage('users', 'user_names', '0020273617a'); // Busca un dato de un archivo compartido
  /*
    {
      key: "0020273617a",
      name: "Martín"
    }
  */

  await db.deleteSinglePage('users', 'user_names', '0020273617a'); // Elimina un dato de un archivo compartido

  /* --------------------------- */

  let ten_hours = 10 * 60 * 60 * 1000
  await db.plugins.expiringFiles.createStream('users', 'user_1', ten_hours); // Elimina un archivo pasado cierto tiempo

  await db.plugins.expiringFiles.fetchStreams() // Se buscan los archivos que se tienen que eliminar, este método se ejecuta automáticamente cada hora

  await db.plugins.expiringFiles.createStream('users', 'user_names', ten_hours, '0020273617a'); // Si se añade un key se eliminará el dato de un archivo compartido
1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago