UNPKG

react-native-flipper-databases

Version:

Flipper Databases plugin for React Native

109 lines (83 loc) 4.04 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; } import { DatabasesManager } from './databasesManager'; import { getInvalidDatabaseError, getInvalidRequestError, getSqlExecutionError } from './errors'; import { databaseExecuteSqlResponseToFlipperObject, databaseGetTableDataReponseToFlipperObject, databaseGetTableInfoResponseToFlipperObject, databaseGetTableStructureResponseToFlipperObject, databaseListToFlipperArray, flipperObjectToExecuteSqlRequest, flipperObjectToGetTableDataRequest, flipperObjectToGetTableInfoRequest, flipperObjectToGetTableStructureRequest } from './mappers'; const DATABASE_LIST_COMMAND = 'databaseList'; const EXECUTE_COMMAND = 'execute'; const GET_TABLE_DATA_COMMAND = 'getTableData'; const GET_TABLE_INFO_COMMAND = 'getTableInfo'; const GET_TABLE_STRUCTURE_COMMAND = 'getTableStructure'; export class DatabasesFlipperPlugin { constructor(databaseDrivers) { _defineProperty(this, "ID", 'Databases'); _defineProperty(this, "databasesManager", void 0); this.databasesManager = new DatabasesManager(databaseDrivers); } getId() { return this.ID; } onConnect(connection) { // Init DatabasesManager on connect this.databasesManager.init(); // Attach command listeners this.listenForCommands(connection); } onDisconnect() {// Nothing } runInBackground() { return false; } listenForCommands(connection) { connection.receive(DATABASE_LIST_COMMAND, async (_data, responder) => { responder.success(await databaseListToFlipperArray(await this.databasesManager.getDatabases())); }); connection.receive(GET_TABLE_STRUCTURE_COMMAND, async (data, responder) => { const req = flipperObjectToGetTableStructureRequest(data); if (!req) { return responder.error(getInvalidRequestError()); } const tableStructure = await this.databasesManager.getTableStructure(req.databaseId, req.table); if (!tableStructure) { return responder.error(getInvalidDatabaseError()); } responder.success(databaseGetTableStructureResponseToFlipperObject(tableStructure)); }); connection.receive(GET_TABLE_DATA_COMMAND, async (data, responder) => { const req = flipperObjectToGetTableDataRequest(data); if (!req) { return responder.error(getInvalidRequestError()); } const tableData = await this.databasesManager.getTableData(req.databaseId, req.table, req.order, req.reverse, req.start, req.count); if (!tableData) { return responder.error(getInvalidDatabaseError()); } responder.success(databaseGetTableDataReponseToFlipperObject(tableData)); }); connection.receive(GET_TABLE_INFO_COMMAND, async (data, responder) => { const req = flipperObjectToGetTableInfoRequest(data); if (!req) { return responder.error(getInvalidRequestError()); } const tableInfo = await this.databasesManager.getTableInfo(req.databaseId, req.table); if (!tableInfo) { return responder.error(getInvalidDatabaseError()); } responder.success(databaseGetTableInfoResponseToFlipperObject(tableInfo)); }); connection.receive(EXECUTE_COMMAND, async (data, responder) => { const executeSqlRequest = flipperObjectToExecuteSqlRequest(data); if (!executeSqlRequest) { return responder.error(getInvalidRequestError()); } try { const executeSqlResponse = await this.databasesManager.executeSql(executeSqlRequest.databaseId, executeSqlRequest.value); if (!executeSqlResponse) { return responder.error(getInvalidDatabaseError()); } responder.success(databaseExecuteSqlResponseToFlipperObject(executeSqlResponse)); } catch (err) { return responder.error(getSqlExecutionError(err)); } }); } } //# sourceMappingURL=databasesFlipperPlugin.js.map