UNPKG

orange-orm

Version:

Object Relational Mapper

40 lines (33 loc) 872 B
var log = require('../table/log'); function wrapQuery(connection) { var runOriginalQuery = connection.query; return runQuery; function runQuery(query, onCompleted) { var params = query.parameters; var sql = query.sql(); log.emitQuery({ sql, parameters: params }); const sap = connection.msnodesqlv8; for (let i = 0; i < params.length; i++) { const parameter = params[i]; if (typeof parameter === 'string') params[i] = sap.VarChar(parameter); } runOriginalQuery.call(connection, sql, params, onInnerCompleted); let result = []; function onInnerCompleted(err, rows, hasMore) { if (err) { if (err.code) onCompleted(err); return; } result.push(rows); if (!hasMore) { if (result.length === 1) onCompleted(null, result[0]); else onCompleted(null, result); } } } } module.exports = wrapQuery;