UNPKG

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
"use strict"; 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