(target, src, doc)
| 9251 | } |
| 9252 | |
| 9253 | function getDocAttachmentsFromTargetOrSource(target, src, doc) { |
| 9254 | var doCheckForLocalAttachments = isRemote(src) && !isRemote(target); |
| 9255 | var filenames = Object.keys(doc._attachments); |
| 9256 | |
| 9257 | if (!doCheckForLocalAttachments) { |
| 9258 | return getDocAttachments(src, doc); |
| 9259 | } |
| 9260 | |
| 9261 | return target.get(doc._id).then(function (localDoc) { |
| 9262 | return Promise.all(filenames.map(function (filename) { |
| 9263 | if (fileHasChanged(localDoc, doc, filename)) { |
| 9264 | return src.getAttachment(doc._id, filename); |
| 9265 | } |
| 9266 | |
| 9267 | return target.getAttachment(localDoc._id, filename); |
| 9268 | })); |
| 9269 | }).catch(function (error) { |
| 9270 | /* istanbul ignore if */ |
| 9271 | if (error.status !== 404) { |
| 9272 | throw error; |
| 9273 | } |
| 9274 | |
| 9275 | return getDocAttachments(src, doc); |
| 9276 | }); |
| 9277 | } |
| 9278 | |
| 9279 | function createBulkGetOpts(diffs) { |
| 9280 | var requests = []; |
no test coverage detected
searching dependent graphs…