import PouchDB = require('pouchdb'); function isString(someString: string) { } function isNumber(someNumber: number) { } function testAllDocs() { const db = new PouchDB<{ foo: number }>(); db.allDocs().then(({ offset, total_rows, rows }) => { isNumber(offset); isNumber(total_rows); rows.forEach(({ id, key, value, doc }) => { isString(id); isString(key); isString(value.rev); // check document property isNumber(doc.foo); }); }); db.allDocs({ startkey: "a", endkey: "b" }); db.allDocs({ startkey: "a", endkey: "b", inclusive_end: true }); db.allDocs({ keys: ["a", "b", "c" ]}); db.allDocs({ key: "a" }); db.allDocs({ attachments: true, binary: true, conflicts: true, descending: true, include_docs: true, limit: 5, skip: 1 }); } function testDestroy() { const db = new PouchDB(); db.destroy({}, (error) => { }); db.destroy().then(() => { }).catch((error) => { }); } function testBasics() { interface MyModel { property: 'someProperty '; } let model: PouchDB.Core.Document; const id = 'model'; let db = new PouchDB(); db = new PouchDB(null, { adapter: 'fruitdown' }); db = new PouchDB(null, { adapter: 'http' }); db = new PouchDB(null, { adapter: 'idb' }); db = new PouchDB(null, { adapter: 'leveldb' }); db = new PouchDB(null, { adapter: 'localstorage' }); db = new PouchDB(null, { adapter: 'memory' }); db = new PouchDB(null, { adapter: 'websql' }); db = new PouchDB(null, { adapter: 'websql', size: 100 }); db.post(model).then((result) => { isString(result.id); }); db.post(model, null, (error, response) => { }); db.get(id).then((result) => model = result); db.get(id, null, (error, result) => { }); db.put(model).then((error) => { }); db.put(model, null, (error) => { }); db.info().then((info) => { }); db.info((error, result) => { }); db.viewCleanup().catch((error) => { }); }