UNPKG

react-native-flipper-databases

Version:

Flipper Databases plugin for React Native

65 lines (56 loc) 1.98 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 VasernDriver { constructor(database) { this.database = database; _defineProperty(this, "databaseName", 'Vasern'); } async getDatabases() { return [{ name: this.databaseName }]; } async getTableNames(_databaseDescriptor) { return this.database.docs.map(doc => doc.name); } async getTableStructure(_databaseDescriptor, table) { const { props: columns } = this.database.get(table); const columnsDef = Object.keys(columns).map(k => [k, columns[k].replaceAll('?', ''), columns[k].startsWith('?')]); return { structureColumns: ['name', 'type', 'isOptional'], structureValues: [['id', 'string', false]].concat(columnsDef), indexesColumns: ['name'], indexesValues: [['id']] }; } async getTableData(_databaseDescriptor, table, order, reverse, start, _count) { const { props: columns } = this.database.get(table); const allColumns = ['id', // All tables automatically have a string column id to uniquely identify records. ...Object.keys(columns)]; const collection = this.database.get(table); const totalCount = collection.count(); const results = collection.order(order ?? 'id', !reverse ? 'asc' : 'desc').data(); return { columns: allColumns, values: results.map(row => allColumns.map(colName => row[colName])), start, count: totalCount, total: results.length }; } async getTableInfo(_databaseDescriptor, table) { const { props } = this.database.get(table); return { definition: JSON.stringify(props, null, 2) }; } async executeSql(_databaseDescriptor, _query) { return Promise.reject('Unsupported method'); } } //# sourceMappingURL=vasern.js.map