litemap
Version:
A TypeScript library for mapping and processing data with SQLite integration
27 lines (26 loc) • 1.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const UserDatabaseManager_1 = __importDefault(require("./DatabaseManager/UserDatabaseManager"));
class DatabaseFactory {
static Instance(filename = "./db/litemap.db") {
if (!filename) {
throw new Error("Database filename must be provided");
}
if (!DatabaseFactory.instances.has(filename)) {
DatabaseFactory.instances.set(filename, new UserDatabaseManager_1.default(filename));
}
return DatabaseFactory.instances.get(filename);
}
// Optional: Method to close all database instances
static async closeAll() {
const closePromises = Array.from(DatabaseFactory.instances.values()).map((manager) => manager.close());
await Promise.all(closePromises);
DatabaseFactory.instances.clear();
}
}
// Map to store database managers by filename
DatabaseFactory.instances = new Map();
exports.default = DatabaseFactory;