UNPKG

litemap

Version:

A TypeScript library for mapping and processing data with SQLite integration

27 lines (26 loc) 1.13 kB
"use strict"; 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;