UNPKG

react-native-flipper-databases

Version:

Flipper Databases plugin for React Native

122 lines (89 loc) 4.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DatabasesFlipperPlugin = void 0; var _databasesManager = require("./databasesManager"); var _errors = require("./errors"); var _mappers = require("./mappers"); 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; } 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'; class DatabasesFlipperPlugin { constructor(databaseDrivers) { _defineProperty(this, "ID", 'Databases'); _defineProperty(this, "databasesManager", void 0); this.databasesManager = new _databasesManager.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 (0, _mappers.databaseListToFlipperArray)(await this.databasesManager.getDatabases())); }); connection.receive(GET_TABLE_STRUCTURE_COMMAND, async (data, responder) => { const req = (0, _mappers.flipperObjectToGetTableStructureRequest)(data); if (!req) { return responder.error((0, _errors.getInvalidRequestError)()); } const tableStructure = await this.databasesManager.getTableStructure(req.databaseId, req.table); if (!tableStructure) { return responder.error((0, _errors.getInvalidDatabaseError)()); } responder.success((0, _mappers.databaseGetTableStructureResponseToFlipperObject)(tableStructure)); }); connection.receive(GET_TABLE_DATA_COMMAND, async (data, responder) => { const req = (0, _mappers.flipperObjectToGetTableDataRequest)(data); if (!req) { return responder.error((0, _errors.getInvalidRequestError)()); } const tableData = await this.databasesManager.getTableData(req.databaseId, req.table, req.order, req.reverse, req.start, req.count); if (!tableData) { return responder.error((0, _errors.getInvalidDatabaseError)()); } responder.success((0, _mappers.databaseGetTableDataReponseToFlipperObject)(tableData)); }); connection.receive(GET_TABLE_INFO_COMMAND, async (data, responder) => { const req = (0, _mappers.flipperObjectToGetTableInfoRequest)(data); if (!req) { return responder.error((0, _errors.getInvalidRequestError)()); } const tableInfo = await this.databasesManager.getTableInfo(req.databaseId, req.table); if (!tableInfo) { return responder.error((0, _errors.getInvalidDatabaseError)()); } responder.success((0, _mappers.databaseGetTableInfoResponseToFlipperObject)(tableInfo)); }); connection.receive(EXECUTE_COMMAND, async (data, responder) => { const executeSqlRequest = (0, _mappers.flipperObjectToExecuteSqlRequest)(data); if (!executeSqlRequest) { return responder.error((0, _errors.getInvalidRequestError)()); } try { const executeSqlResponse = await this.databasesManager.executeSql(executeSqlRequest.databaseId, executeSqlRequest.value); if (!executeSqlResponse) { return responder.error((0, _errors.getInvalidDatabaseError)()); } responder.success((0, _mappers.databaseExecuteSqlResponseToFlipperObject)(executeSqlResponse)); } catch (err) { return responder.error((0, _errors.getSqlExecutionError)(err)); } }); } } exports.DatabasesFlipperPlugin = DatabasesFlipperPlugin; //# sourceMappingURL=databasesFlipperPlugin.js.map