multibridge
Version:
A multi-database connection framework with centralized configuration
30 lines (29 loc) • 1.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeCassandraQuery = executeCassandraQuery;
const loggers_1 = __importDefault(require("../utils/loggers"));
const errors_1 = require("../utils/errors");
const envConfig_1 = require("../config/envConfig");
async function executeCassandraQuery(connection, query, params) {
try {
const timeout = envConfig_1.envConfig.CASSANDRA_QUERY_TIMEOUT_MS;
const executeOptions = { prepare: true };
if (timeout > 0) {
executeOptions.readTimeout = timeout;
}
return await connection.execute(query, params, executeOptions);
}
catch (error) {
loggers_1.default.error(`Error executing Cassandra query: ${error.message}`, {
query: query.substring(0, 100), // Log first 100 chars of query
error: error.stack,
});
throw new errors_1.QueryError(`Cassandra query execution failed: ${error.message}`, {
query: query.substring(0, 100),
originalError: error,
});
}
}