UNPKG

react-native-flipper-databases

Version:

Flipper Databases plugin for React Native

80 lines (59 loc) 2.42 kB
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; } export 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); } } } } //# sourceMappingURL=databasesManager.js.map