UNPKG

react-native-flipper-databases

Version:

Flipper Databases plugin for React Native

68 lines (59 loc) 2.07 kB
export class PouchDBDriver { constructor(databases) { this.databases = databases; } async getDatabases() { return this.databases.map(db => ({ name: db.name, database: db })); } async getTableNames(databaseDescriptor) { // Return database name as table names return [databaseDescriptor.name]; } async getTableStructure(_databaseDescriptor, _schema) { return { structureColumns: ['name', 'type'], structureValues: [['_id', 'string'], ['doc', 'JSON'], ['attachments', 'JSON'], ['_rev', 'string'], ['deleted', 'boolean']], indexesColumns: ['name', 'type'], indexesValues: [['_id', 'string']] }; } async getTableData(databaseDescriptor, _schema, order, reverse, start, count) { const pouch = databaseDescriptor.database; const results = await pouch.allDocs({ include_docs: true, attachments: true, skip: start, limit: count }); // Sort results only on _id field const sorted = order === '_id' ? results.rows.sort((a, b) => { if (a.id > b.id) { return reverse ? -1 : 1; } else { return reverse ? 1 : -1; } }) : results.rows; return { columns: ['_id', 'doc', 'attachments', '_rev', 'deleted'], values: sorted.map(row => { var _row$doc, _row$value; return [row.id, JSON.stringify(row.doc), JSON.stringify(((_row$doc = row.doc) === null || _row$doc === void 0 ? void 0 : _row$doc._attachments) ?? []), row.value.rev, ((_row$value = row.value) === null || _row$value === void 0 ? void 0 : _row$value.deleted) ?? false]; }), start, count: results.rows.length, total: results.total_rows }; } async getTableInfo(databaseDescriptor, _table) { const databaseInfo = await databaseDescriptor.database.info(); return { definition: JSON.stringify(databaseInfo, null, 2) }; } async executeSql(_databaseDescriptor, _query) { return Promise.reject('Unsupported method'); } } // IMPORTED TYPES //# sourceMappingURL=pouchdb.js.map