react-native-flipper-databases
Version:
Flipper Databases plugin for React Native
80 lines (59 loc) • 2.42 kB
JavaScript
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