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.
52 lines (51 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SqliteQueryRunner = void 0;
const PromiseBasedWithSqlTransactionQueryRunner_1 = require("./PromiseBasedWithSqlTransactionQueryRunner");
/**
* @deprecated https://www.npmjs.com/package/sqlite is not maintained anymore. Use another QueryRunner for Sqlite instead.
*/
class SqliteQueryRunner extends PromiseBasedWithSqlTransactionQueryRunner_1.PromiseBasedWithSqlTransactionQueryRunner {
constructor(connection) {
super();
this.connection = connection;
this.database = 'sqlite';
}
useDatabase(database) {
if (database !== 'sqlite') {
throw new Error('Unsupported database: ' + database + '. SqliteQueryRunner only supports sqlite databases');
}
}
getNativeRunner() {
return this.connection;
}
getCurrentNativeTransaction() {
return undefined;
}
execute(fn) {
return fn(this.connection);
}
executeQueryReturning(query, params) {
return this.connection.all(query, params);
}
executeMutation(query, params) {
return this.connection.run(query, params).then(result => result.changes);
}
executeInsertReturningLastInsertedId(query, params = []) {
if (this.containsInsertReturningClause(query, params)) {
return super.executeInsertReturningLastInsertedId(query, params);
}
return this.connection.run(query, params).then(result => result.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.SqliteQueryRunner = SqliteQueryRunner;