alapa
Version:
A cutting-edge web development framework designed to revolutionize the way developers build modern web applications.
44 lines (43 loc) • 1.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateDBConnection = updateDBConnection;
const typeorm_1 = require("typeorm");
const typeorm_naming_strategies_1 = require("typeorm-naming-strategies");
const globals_1 = require("../shared/globals");
const model_1 = require("../data/model");
const global_config_1 = require("./global-config");
let DatabaseConnection = new typeorm_1.DataSource({
type: "sqlite",
database: "test.db",
});
async function updateDBConnection(configuration) {
// Ensure previous connection is closed before updating
if (DatabaseConnection?.isInitialized) {
await DatabaseConnection.destroy();
}
const databaseConfig = configuration ?? globals_1.GlobalConfig.database;
const config = {
...(0, global_config_1.globalConfig)(databaseConfig),
...databaseConfig.connection,
};
// Ensure that entities are handled correctly
if (Array.isArray(config.entities)) {
// Add or update entities as needed
if (!config.entities.includes(model_1.SessionDatabase)) {
config.entities.push(model_1.SessionDatabase);
}
}
else {
// If entities is not an array, initialize it with the new entity
config.entities = [model_1.SessionDatabase];
}
// Initialize the new connection
DatabaseConnection = new typeorm_1.DataSource({
...config,
namingStrategy: new typeorm_naming_strategies_1.SnakeNamingStrategy(),
});
await DatabaseConnection.initialize();
return DatabaseConnection;
// console.log("Database connection updated and initialized.");
}
exports.default = DatabaseConnection;
;