UNPKG

react-native-flipper-databases

Version:

Flipper Databases plugin for React Native

216 lines (182 loc) 4.7 kB
export async function databaseListToFlipperArray(databaseDescriptorHolderList) { const databases = []; for (const databaseDescriptorHolder of databaseDescriptorHolderList) { const { databaseDescriptor, databaseDriver, id } = databaseDescriptorHolder; const tableNameList = await databaseDriver.getTableNames(databaseDescriptor); databases.push({ id, name: databaseDescriptor.name, tables: tableNameList.sort() }); } return databases; } export function flipperObjectToGetTableStructureRequest(params) { const databaseId = params.databaseId; const table = params.table; if (databaseId <= 0 || !table) { return null; } return { databaseId, table }; } export function databaseGetTableStructureResponseToFlipperObject(databaseGetTableStructureResponse) { const structureColumns = databaseGetTableStructureResponse.structureColumns; const indexesColumns = databaseGetTableStructureResponse.indexesColumns; const structureValues = []; for (const row of databaseGetTableStructureResponse.structureValues) { const cols = []; for (const item of row) { cols.push(objectAndTypeToFlipperObject(item)); } structureValues.push(cols); } const indexesValues = []; for (const row of databaseGetTableStructureResponse.indexesValues) { const cols = []; for (const item of row) { cols.push(objectAndTypeToFlipperObject(item)); } indexesValues.push(cols); } return { structureColumns, structureValues, indexesColumns, indexesValues }; } export function flipperObjectToGetTableDataRequest(params) { const databaseId = params.databaseId; const table = params.table; const reverse = params.reverse; const order = params.order; const start = params.start; const count = params.count; if (databaseId <= 0 || !table) { return null; } return { databaseId, table, order, reverse, start, count }; } export function databaseGetTableDataReponseToFlipperObject(databaseGetTableDataResponse) { const columns = [...databaseGetTableDataResponse.columns]; const rows = []; for (const row of databaseGetTableDataResponse.values) { const rowData = []; for (const item of row) { rowData.push(objectAndTypeToFlipperObject(item)); } rows.push(rowData); } return { columns, values: rows, start: databaseGetTableDataResponse.start, count: databaseGetTableDataResponse.count, total: databaseGetTableDataResponse.total }; } export function flipperObjectToGetTableInfoRequest(params) { const databaseId = params.databaseId; const table = params.table; if (databaseId <= 0 || !table) { return null; } return { databaseId, table }; } export function databaseGetTableInfoResponseToFlipperObject(databaseGetTableInfoResponse) { return { definition: databaseGetTableInfoResponse.definition }; } export function flipperObjectToExecuteSqlRequest(params) { const databaseId = params.databaseId; const value = params.value; if (databaseId <= 0 || !value) { return null; } return { databaseId, value }; } export function databaseExecuteSqlResponseToFlipperObject(databaseExecuteSqlResponse) { const columns = []; if (databaseExecuteSqlResponse.columns !== null) { for (const columnName of databaseExecuteSqlResponse.columns) { columns.push(columnName); } } const rows = []; if (databaseExecuteSqlResponse.values !== null) { for (const row of databaseExecuteSqlResponse.values) { const values = []; for (const item of row) { values.push(objectAndTypeToFlipperObject(item)); } rows.push(values); } } return { type: databaseExecuteSqlResponse.type, columns: columns, values: rows, insertedId: databaseExecuteSqlResponse.insertedId, affectedCount: databaseExecuteSqlResponse.affectedCount }; } export function toErrorFlipperObject(code, message) { return { code, message }; } // PRIVATE function objectAndTypeToFlipperObject(obj) { if (obj === null || typeof obj === 'undefined') { return { type: 'null' }; } if (typeof obj === 'bigint') { return { type: 'integer', value: obj }; } if (typeof obj === 'number') { return { type: 'float', value: obj }; } if (typeof obj === 'string') { return { type: 'string', value: obj }; } if (typeof obj === 'boolean') { return { type: 'boolean', value: obj }; } throw new Error('type of Object is invalid'); } //# sourceMappingURL=mappers.js.map