Merge pull request #23727 from birtles/pouchdb-bulkdocs-result

Fix the return type of pouchdb-core's bulkDocs to include Error values
This commit is contained in:
Daniel Rosenwasser
2018-02-18 22:46:16 -08:00
committed by GitHub
2 changed files with 12 additions and 3 deletions

View File

@@ -594,7 +594,7 @@ declare namespace PouchDB {
*/
bulkDocs<Model>(docs: Array<Core.PutDocument<Content & Model>>,
options: Core.BulkDocsOptions | null,
callback: Core.Callback<Core.Response[]>): void;
callback: Core.Callback<Array<Core.Response | Core.Error>>): void;
/**
* Create, update or delete multiple documents. The docs argument is an array of documents.
@@ -604,7 +604,7 @@ declare namespace PouchDB {
* Finally, to delete a document, include a _deleted parameter with the value true.
*/
bulkDocs<Model>(docs: Array<Core.PutDocument<Content & Model>>,
options?: Core.BulkDocsOptions): Promise<Core.Response[]>;
options?: Core.BulkDocsOptions): Promise<Array<Core.Response | Core.Error >>;
/** Compact the database */
compact(options?: Core.CompactOptions): Promise<Core.Response>;

View File

@@ -47,10 +47,19 @@ function testBulkDocs() {
const model = { property: 'test' };
const model2 = { property: 'test' };
const isError = (
result: PouchDB.Core.Response | PouchDB.Core.Error
): result is PouchDB.Core.Error => {
return !!(<PouchDB.Core.Error> result).error;
};
db.bulkDocs([model, model2]).then((result) => {
result.forEach(({ ok, id, rev }) => {
result.forEach(result => {
if (!isError(result)) {
const { ok, id, rev } = result;
isString(id);
isString(rev);
}
});
});