sqlmongoose
Version:
Mongoose-like schemas and models for SQLite3
58 lines (57 loc) • 1.7 kB
JavaScript
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();
;