UNPKG

@bitblit/ratchet-rdbms

Version:

Ratchet tooling for working with relational databases

57 lines 1.8 kB
import { Logger } from '@bitblit/ratchet-common/logger/logger'; export class MysqlStyleDatabaseAccess { _connection; _connectionOptions; constructor(_connection, _connectionOptions) { this._connection = _connection; this._connectionOptions = _connectionOptions; } async testConnection(logTestResults) { if (logTestResults) { Logger.info('Running connection test'); } const res = await this.query('SELECT UNIX_TIMESTAMP(now())*1000 AS test', {}); const rows = res.results; const timestamp = rows.length === 1 ? rows[0].test : null; if (logTestResults) { Logger.info('Test returned : %j', timestamp); } return timestamp; } getRawDatabase() { return this._connection; } getRawDatabaseConfig() { return this._connectionOptions; } testConnectionQueryString() { return 'SELECT UNIX_TIMESTAMP(now())*1000 AS test'; } async close() { return Promise.resolve(false); } escape(query) { return this._connection.escape(query); } async preQuery() { this._connection.config.namedPlaceholders = true; } async query(query, fields) { const [rows, outFields] = await this._connection.query(query, fields); const castRows = rows; const castFields = outFields; const rval = { results: castRows, fields: castFields, }; return rval; } async modify(query, fields) { const tmp = await this.query(query, fields); return tmp; } async onRequestSuccessOrFailure(_type) { this._connection.config.namedPlaceholders = false; } } //# sourceMappingURL=mysql-style-database-access.js.map