"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const mariadb_1 = __importDefault(require("mariadb")); let conn; class DbHandle { constructor() { } async connect() { this._conn = await mariadb_1.default.createConnection({ host: '172.16.10.18', user: 'heroes', password: 'test123', database: 'heroes' }); } async getHeroes() { var _a, _b; const result = (_b = await ((_a = this._conn) === null || _a === void 0 ? void 0 : _a.query("SELECT id, name FROM hero"))) !== null && _b !== void 0 ? _b : Promise.reject(new Error('Connection not ready 1')); return result.map((row) => { var _a; return { id: row.id, name: (_a = row.name) !== null && _a !== void 0 ? _a : 'unknown' }; }); } close() { var _a, _b; return (_b = (_a = this._conn) === null || _a === void 0 ? void 0 : _a.end()) !== null && _b !== void 0 ? _b : Promise.reject(new Error('Connection not ready 2')); } } /* const dbHandle = new DbHandle() dbHandle.connect() .then(() => dbHandle.get("SELECT * FROM hero")) .then((result) => { console.log(result) return dbHandle.close() }) .catch((err) => { console.log(err) }) */ async function exec() { const dbHandle = new DbHandle(); try { await dbHandle.connect(); const heroes = await dbHandle.getHeroes(); console.log(heroes); } finally { await dbHandle.close(); } } exec().catch((err) => console.log(err.message)); /* dbHandle.get("SELECT * FROM hero") .then((result) => { console.log(result) return dbHandle.close() }) .catch((err) => { console.log(err.message) }) */