UNPKG

ts-sql-query

Version:

Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.

76 lines (75 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Sqlite3QueryRunner = void 0; const PromiseBasedWithSqlTransactionQueryRunner_1 = require("./PromiseBasedWithSqlTransactionQueryRunner"); class Sqlite3QueryRunner extends PromiseBasedWithSqlTransactionQueryRunner_1.PromiseBasedWithSqlTransactionQueryRunner { constructor(connection) { super(); this.connection = connection; this.database = 'sqlite'; } useDatabase(database) { if (database !== 'sqlite') { throw new Error('Unsupported database: ' + database + '. Sqlite3QueryRunner only supports sqlite databases'); } } getNativeRunner() { return this.connection; } getCurrentNativeTransaction() { return undefined; } execute(fn) { return fn(this.connection); } executeQueryReturning(query, params) { return new Promise((resolve, reject) => { this.connection.all(query, params, function (error, rows) { if (error) { reject(error); } else { resolve(rows); } }); }); } executeMutation(query, params) { return new Promise((resolve, reject) => { this.connection.run(query, params, function (error) { if (error) { reject(error); } else { resolve(this.changes); } }); }); } executeInsertReturningLastInsertedId(query, params = []) { if (this.containsInsertReturningClause(query, params)) { return super.executeInsertReturningLastInsertedId(query, params); } return new Promise((resolve, reject) => { this.connection.run(query, params, function (error) { if (error) { reject(error); } else { resolve(this.lastID); } }); }); } executeInsertReturningMultipleLastInsertedId(query, params = []) { if (this.containsInsertReturningClause(query, params)) { return super.executeInsertReturningMultipleLastInsertedId(query, params); } throw new Error("Unsupported executeInsertReturningMultipleLastInsertedId on queries thar doesn't include the returning clause"); } addParam(params, value) { params.push(value); return '?'; } } exports.Sqlite3QueryRunner = Sqlite3QueryRunner;