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
JavaScript
;
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;