UNPKG

sqlmongoose

Version:

Mongoose-like schemas and models for SQLite3

58 lines (57 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Schema = exports.sqlmongoose = void 0; const sqlite3_1 = require("sqlite3"); const Schema_1 = require("./Schema"); Object.defineProperty(exports, "Schema", { enumerable: true, get: function () { return Schema_1.Schema; } }); const Model_1 = require("./Model"); class SQLiteDB { constructor() { this.db = null; this.models = new Map(); } // Conectar a la base de datos async connect(path) { return new Promise((resolve, reject) => { this.db = new sqlite3_1.Database(path, (err) => { if (err) reject(err); else resolve(); }); }); } // Definir un modelo define(name, schema) { if (!this.db) throw new Error('Database not connected'); const model = new Model_1.Model(this.db, name.toLowerCase(), schema); this.models.set(name, model); return model; } // Obtener un modelo model(name) { const model = this.models.get(name); if (!model) throw new Error(`Model ${name} not found`); return model; } getDatabase() { return this.db; } async close() { if (this.db) { await new Promise((resolve, reject) => { this.db.close((err) => { if (err) reject(err); else resolve(true); }); }); this.db = null; } } } // Exportar una instancia única exports.sqlmongoose = new SQLiteDB();