(db, doc, diffFun)
| 758 | } |
| 759 | |
| 760 | function tryAndPut(db, doc, diffFun) { |
| 761 | return db.put(doc).then(function (res) { |
| 762 | return { |
| 763 | updated: true, |
| 764 | rev: res.rev |
| 765 | }; |
| 766 | }, function (err) { |
| 767 | /* istanbul ignore next */ |
| 768 | if (err.status !== 409) { |
| 769 | throw err; |
| 770 | } |
| 771 | return upsert(db, doc._id, diffFun); |
| 772 | }); |
| 773 | } |
| 774 | |
| 775 | function binaryMd5(data, callback) { |
| 776 | var base64 = crypto.createHash('md5').update(data, 'binary').digest('base64'); |