npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

conectar-sqlite

v2.1.1

Published

Librería para gestionar SQLite y respaldos de bases de datos

Readme

conectar-sqlite

Librería para gestionar conexiones SQLite, backups automáticos y operaciones de base de datos en Node.js de forma sencilla y multiplataforma. El objetivo de esta libreria mantiene una base de uso limpia y entendible al momento de utilizar una base de datos en SQLITE.

npm version License: MIT

🚀 Características

  • Gestión automática de carpetas en AppData del sistema operativo // o .hiiden etc
  • Backups automáticos de la base de datos
  • Multiplataforma (Windows, macOS, Linux)
  • Verificación de integridad de archivos
  • Información detallada de ubicaciones y estado // futura actualizacion a .txt

📦 Instalación

npm install conectar-sqlite

🛠️ Importación

Importación individual

import { DatosConexion, GuardarDatos, Operaciones, PedirDatos } from 'conectar-sqlite';

Importación completa (recomendada)

import conectarSqlite from 'conectar-sqlite';

⚡ Uso rápido

Método más simple (recomendado)

import conectarSqlite from 'conectar-sqlite';

// Inicialización automática completa ( LA BASE DE DATOS DEBE ESTAR EN LA RAIZ DEL PROGRAMA Y NO SE DEBE PONER EL .db)
const operaciones = await conectarSqlite.inicializar('./MiAppDB');

// O conexión directa
const db = await conectarSqlite.obtenerConexionRapida('./MiAppDB');

// Usar la base de datos
db.run("CREATE TABLE IF NOT EXISTS usuarios (id INTEGER PRIMARY KEY, nombre TEXT)");
db.close();

Configuración paso a paso

Primera vez (configuración interactiva)

import { PedirDatos, Operaciones } from 'conectar-sqlite';

//  Configurar datos de conexión de forma interactiva
//Recomendable tener la BD en la raíz del proyecto: ./miBD.db
await PedirDatos();

//Usar las operaciones./
const operaciones = new Operaciones();
operaciones.comprobar(); // Crea estructura y muestra ubicaciones, comprueba en caso de que la misma no exista
const db = operaciones.obtenerConexion();

Configuración programática (sin interacción)

import { GuardarDatos, Operaciones } from 'conectar-sqlite';

// Guardar configuración programáticamente (en caso de no funcionar agregar el .db)
await GuardarDatos('./MiAppDB');

// Usar las operaciones
const operaciones = new Operaciones();
operaciones.comprobar(); // Automáticamente muestra ubicación de la BD
const db = operaciones.obtenerConexion();

📚 API Detallada

🔧 DatosConexion

Clase que representa los datos de conexión a la base de datos.

const datos = new DatosConexion(pathBDmain, cadenaConexion);

Parámetros:

  • pathBDmain (string) - Ruta de la base de datos inicial (desde la raiz ./mibd)
  • cadenaConexion (string) - Cadena de conexión SQLite (para poder realizar consultas)

💾 GuardarDatos

Función asíncrona que guarda los datos de conexión en datosConexion.json. //te quedan guardados los datos en un json

await GuardarDatos(pathBDmain);

Parámetros:

  • pathBDmain (string) - Ruta de la base de datos inicial

🔍 PedirDatos

Función asíncrona que solicita los datos de conexión de forma interactiva.

await PedirDatos(pathBDmain); // pathBDmain es opcional

⚙️ Operaciones

Clase principal para manejar operaciones con la base de datos SQLite.

const operaciones = new Operaciones();

Métodos principales:

comprobar()

Crea carpetas y copia la base de datos si es necesario. Automáticamente muestra la ubicación de la BD. Se recomienda iniciar el programa con esa funcion.

operaciones.comprobar();

// Salida ejemplo:
// 📍 Ubicación de la base de datos:
//    Ruta completa: /home/usuario/.local/share/Predits/MiAppDB.db
//    Tamaño: 245.67 KB
//    Estado: ✅ Archivo encontrado y accesible
mostrarUbicacionBD()

Muestra la ubicación actual de la base de datos copiada

operaciones.mostrarUbicacionBD();
mostrarInformacionCompleta()

Muestra información detallada de todas las rutas y estados de archivos .

operaciones.mostrarInformacionCompleta();
crearBackUp()

Crea un backup de la base de datos .

const rutaBackup = operaciones.crearBackUp();
obtenerConexion()

Devuelve la conexión SQLite lista para usar .

const db = operaciones.obtenerConexion();

📁 Estructura de carpetas

La librería organiza automáticamente los archivos según el sistema operativo :

Windows

%APPDATA%/Predits/
├── MiAppDB.db (copia de trabajo)
└── ...

%USERPROFILE%/.config/BackUpAllPredits/
└── MiAppDB.db (backup)

macOS

~/Library/Application Support/Predits/
├── MiAppDB.db (copia de trabajo)
└── ...

~/.config/BackUpAllPredits/
└── MiAppDB.db (backup)

Linux

~/.local/share/Predits/
├── MiAppDB.db (copia de trabajo)
└── ...

~/.config/BackUpAllPredits/
└── MiAppDB.db (backup)

💡 Ejemplos completos

Ejemplo básico con inicialización automática

import conectarSqlite from 'conectar-sqlite';

async function main() {
    try {
        // Inicializar librería completa
        const operaciones = await conectarSqlite.inicializar('./MiAppDB.db');
        
        // Mostrar información detallada
        operaciones.mostrarInformacionCompleta();
        
        // Obtener conexión
        const db = operaciones.obtenerConexion();
        
        // Usar la base de datos
        db.serialize(() => {
            db.run("CREATE TABLE IF NOT EXISTS usuarios (id INTEGER PRIMARY KEY, nombre TEXT)");
            db.run("INSERT INTO usuarios (nombre) VALUES (?)", ["Juan"]);
            
            db.each("SELECT * FROM usuarios", (err, row) => {
                console.log(`Usuario: ${row.nombre}`);
            });
        });
        
        db.close();
        console.log('✅ Operación completada');
        
    } catch (error) {
        console.error('❌ Error:', error.message);
    }
}

main();

Ejemplo con verificación de configuración existente

import { PedirDatos, Operaciones } from 'conectar-sqlite';
import fs from 'fs';

async function main() {
    try {
        // Verificar si existe configuración
        if (!fs.existsSync('datosConexion.json')) {
            console.log('🔧 Primera vez usando la librería, configurando...');
            await PedirDatos('./MiAppDB.db');
        }
        
        // Crear instancia y usar
        const operaciones = new Operaciones();
        
        // Verificar estructura de carpetas (muestra ubicaciones automáticamente)
        operaciones.comprobar();
        
        // Crear backup
        const rutaBackup = operaciones.crearBackUp();
        console.log(`💾 Backup disponible en: ${rutaBackup}`);
        
        // Obtener conexión
        const db = operaciones.obtenerConexion();
        console.log('🔗 Conexión obtenida exitosamente');
        
        // Realizar operaciones con la BD
        db.serialize(() => {
            db.run("CREATE TABLE IF NOT EXISTS productos (id INTEGER PRIMARY KEY, nombre TEXT, precio REAL)");
        });
        
        // Cerrar conexión
        db.close();
        console.log('✅ Proceso completado');
        
    } catch (error) {
        console.error('❌ Error:', error.message);
    }
}

main();

Ejemplo con conexión rápida

import conectarSqlite from 'conectar-sqlite';

// Una sola línea para obtener la conexión lista
const db = await conectarSqlite.obtenerConexionRapida('./datos.db');

// Usar directamente
db.run("INSERT INTO tabla (columna) VALUES (?)", ["valor"]);
db.close();

🧪 Testing y Demo

Ejecutar demo completo

npm run test

Ver funcionalidades disponibles

npm run demo

Ejecutar directamente

node main.js

📋 Requisitos

  • Node.js >= 14.0.0
  • SQLite3 (incluido como dependencia)

🤝 Dependencias

  • sqlite3 - ^5.1.7
  • prompt-sync - ^4.2.0

📝 Licencia

MIT © BrunoDepetris


🐛 Reportar problemas

Si encuentras algún problema o tienes sugerencias, por favor enviame un gmail:

[email protected]

🌟 Características próximas

  • [ ] Soporte para múltiples bases de datos
  • [ ] Configuración de intervalos automáticos de backup
  • [ ] Migración automática de esquemas
  • [ ] Compresión de backups

¿Te gusta esta librería? ⭐ ¡Dale una estrella en GitHub!