UNPKG

react-native-flipper-databases

Version:

Flipper Databases plugin for React Native

89 lines (65 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DatabasesManager = void 0; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } class DatabasesManager { constructor(dbDrivers) { this.dbDrivers = dbDrivers; _defineProperty(this, "ddHolderMap", new Map()); } init() { // Precache databases this.preloadDatabases(); } async getDatabases() { return this.ddHolderMap.values(); } async getTableStructure(databaseId, tableName) { const databaseDescriptorHolder = this.ddHolderMap.get(databaseId); if (!databaseDescriptorHolder) { return null; } return databaseDescriptorHolder.databaseDriver.getTableStructure(databaseDescriptorHolder.databaseDescriptor, tableName); } async getTableData(databaseId, tableName, order, reverse, start, count) { const databaseDescriptorHolder = this.ddHolderMap.get(databaseId); if (!databaseDescriptorHolder) { return null; } return databaseDescriptorHolder.databaseDriver.getTableData(databaseDescriptorHolder.databaseDescriptor, tableName, order, reverse, start, count); } async getTableInfo(databaseId, tableName) { const databaseDescriptorHolder = this.ddHolderMap.get(databaseId); if (!databaseDescriptorHolder) { return null; } return databaseDescriptorHolder.databaseDriver.getTableInfo(databaseDescriptorHolder.databaseDescriptor, tableName); } async executeSql(databaseId, sqlString) { const databaseDescriptorHolder = this.ddHolderMap.get(databaseId); if (!databaseDescriptorHolder) { return null; } return databaseDescriptorHolder.databaseDriver.executeSql(databaseDescriptorHolder.databaseDescriptor, sqlString); } async preloadDatabases() { let databaseId = 1; // Reset cached databases this.ddHolderMap.clear(); // Retrieve all DBs from the provided Drivers for (const databaseDriver of this.dbDrivers) { const databaseDescriptorList = await databaseDriver.getDatabases(); for (const databaseDescriptor of databaseDescriptorList) { const id = databaseId++; const databaseDescriptorHolder = { id, databaseDriver, databaseDescriptor }; this.ddHolderMap.set(id, databaseDescriptorHolder); } } } } exports.DatabasesManager = DatabasesManager; //# sourceMappingURL=databasesManager.js.map