UNPKG

@bhagat-surya-dev/dashchat-database-manager

Version:

AI-powered database schema analysis and management library

71 lines 3.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SqliteHandler = exports.MongoDbHandler = exports.MariaDbHandler = exports.MySqlHandler = exports.PostgresHandler = exports.BaseDatabaseHandler = exports.LogLevel = void 0; exports.createDatabaseHandler = createDatabaseHandler; exports.getDatabaseTypeFromUrl = getDatabaseTypeFromUrl; // Export all database handlers const base_handler_1 = require("./base-handler"); Object.defineProperty(exports, "BaseDatabaseHandler", { enumerable: true, get: function () { return base_handler_1.BaseDatabaseHandler; } }); const base_handler_2 = require("./base-handler"); Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return base_handler_2.LogLevel; } }); const postgres_handler_1 = require("./postgres-handler"); Object.defineProperty(exports, "PostgresHandler", { enumerable: true, get: function () { return postgres_handler_1.PostgresHandler; } }); const mysql_handler_1 = require("./mysql-handler"); Object.defineProperty(exports, "MySqlHandler", { enumerable: true, get: function () { return mysql_handler_1.MySqlHandler; } }); Object.defineProperty(exports, "MariaDbHandler", { enumerable: true, get: function () { return mysql_handler_1.MariaDbHandler; } }); const mongodb_handler_1 = require("./mongodb-handler"); Object.defineProperty(exports, "MongoDbHandler", { enumerable: true, get: function () { return mongodb_handler_1.MongoDbHandler; } }); const sqlite_handler_1 = require("./sqlite-handler"); Object.defineProperty(exports, "SqliteHandler", { enumerable: true, get: function () { return sqlite_handler_1.SqliteHandler; } }); /** * Factory function to create the appropriate handler for a database type */ /** * Factory function to create the appropriate handler for a database type */ function createDatabaseHandler(type, options) { switch (type.toLowerCase()) { case 'postgres': case 'postgresql': return new postgres_handler_1.PostgresHandler(options); case 'mysql': return new mysql_handler_1.MySqlHandler("mysql", options); case 'mariadb': return new mysql_handler_1.MySqlHandler("mariadb", options); case 'mongodb': return new mongodb_handler_1.MongoDbHandler(options); case 'sqlite': return new sqlite_handler_1.SqliteHandler(options); default: throw new Error(`Unsupported database type: ${type}`); } } /** * Utility function to determine database type from URL */ function getDatabaseTypeFromUrl(url) { if (!url) return null; try { const urlObj = new URL(url); // Map of protocols to database types const PROTOCOLS = { 'postgresql:': 'postgres', 'postgres:': 'postgres', 'mysql:': 'mysql', 'mariadb:': 'mariadb', 'mongodb:': 'mongodb', 'mongodb+srv:': 'mongodb', // For MongoDB Atlas 'sqlite:': 'sqlite' }; return PROTOCOLS[urlObj.protocol] || null; } catch (error) { // If URL parsing fails, try to infer from file extension for SQLite console.debug('Failed to parse URL for protocol detection:', error); if (url.endsWith('.db') || url.endsWith('.sqlite') || url.endsWith('.sqlite3')) { return 'sqlite'; } return null; } } //# sourceMappingURL=index.js.map