typeorm
Version:
Data-Mapper ORM for TypeScript and ES2021+. Supports MySQL/MariaDB, PostgreSQL, MS SQL Server, Oracle, SAP HANA, SQLite, MongoDB databases.
76 lines (74 loc) • 2.83 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExpoLegacyDriver = void 0;
const AbstractSqliteDriver_1 = require("../../sqlite-abstract/AbstractSqliteDriver");
const ExpoLegacyQueryRunner_1 = require("./ExpoLegacyQueryRunner");
class ExpoLegacyDriver extends AbstractSqliteDriver_1.AbstractSqliteDriver {
// -------------------------------------------------------------------------
// Constructor
// -------------------------------------------------------------------------
constructor(connection) {
super(connection);
this.database = this.options.database;
// load sqlite package
this.sqlite = this.options.driver;
}
// -------------------------------------------------------------------------
// Public Methods
// -------------------------------------------------------------------------
/**
* Closes connection with database.
*/
async disconnect() {
return new Promise((ok, fail) => {
try {
this.queryRunner = undefined;
this.databaseConnection._db.close();
this.databaseConnection = undefined;
ok();
}
catch (error) {
fail(error);
}
});
}
/**
* Creates a query runner used to execute database queries.
*/
createQueryRunner(mode) {
if (!this.queryRunner)
this.queryRunner = new ExpoLegacyQueryRunner_1.ExpoLegacyQueryRunner(this);
return this.queryRunner;
}
// -------------------------------------------------------------------------
// Protected Methods
// -------------------------------------------------------------------------
/**
* Creates connection with the database.
*/
createDatabaseConnection() {
return new Promise((ok, fail) => {
try {
const databaseConnection = this.sqlite.openDatabase(this.options.database);
/*
// we need to enable foreign keys in sqlite to make sure all foreign key related features
// working properly. this also makes onDelete work with sqlite.
*/
databaseConnection.transaction((tsx) => {
tsx.executeSql(`PRAGMA foreign_keys = ON`, [], (t, result) => {
ok(databaseConnection);
}, (t, err) => {
fail({ transaction: t, error: err });
});
}, (err) => {
fail(err);
});
}
catch (error) {
fail(error);
}
});
}
}
exports.ExpoLegacyDriver = ExpoLegacyDriver;
//# sourceMappingURL=ExpoLegacyDriver.js.map
;