UNPKG

nodejs-jdbc

Version:
59 lines 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResultSet = void 0; const jinst_1 = require("./jinst"); const ResultSetMetadata_1 = require("./ResultSetMetadata"); const Helper_1 = require("./Helper"); if (!(0, jinst_1.isJvmCreated)()) { (0, jinst_1.addOption)('-Xrs'); } class ResultSet { constructor(resultSet) { this.resultSet = resultSet; } next() { return this.resultSet.nextSync(); } fetchResult(metas) { const result = {}; for (const meta of metas) { if (meta.type.name === 'BigDecimal') meta.type.name = 'Double'; const getterName = 'get' + meta.type.name + 'Sync'; if (typeof this.resultSet[getterName] !== 'function') { throw new Error(`Unknown type getter (${getterName}) for ${meta.type.name} for column ${meta.name} (${meta.label})`); } switch (true) { case meta.type.name === 'Date' || meta.type.name === 'Time' || meta.type.name === 'Timestamp': { const dateValue = this.resultSet[`${getterName}`](meta.label); result[meta.label] = dateValue ? dateValue.toStringSync() : null; break; } case meta.type.name === 'Int' && (0, Helper_1.isNull)(this.resultSet.getObjectSync(meta.label)): result[meta.label] = null; break; default: result[meta.label] = this.resultSet[`${getterName}`](meta.label); break; } } return result; } toObjArray() { const metas = this.getMetaData().getAllColumnMeta(); const results = []; while (this.next()) { results.push(this.fetchResult(metas)); } return results; } getMetaData() { return new ResultSetMetadata_1.ResultSetMetaData(this.resultSet.getMetaDataSync()); } } exports.ResultSet = ResultSet; //# sourceMappingURL=ResultSet.js.map