(dbOpts, req, opts, api, idb, callback)
| 4929 | var changesHandler = new Changes(); |
| 4930 | |
| 4931 | function idbBulkDocs(dbOpts, req, opts, api, idb, callback) { |
| 4932 | var docInfos = req.docs; |
| 4933 | var txn; |
| 4934 | var docStore; |
| 4935 | var bySeqStore; |
| 4936 | var attachStore; |
| 4937 | var attachAndSeqStore; |
| 4938 | var metaStore; |
| 4939 | var docInfoError; |
| 4940 | var metaDoc; |
| 4941 | |
| 4942 | for (var i = 0, len = docInfos.length; i < len; i++) { |
| 4943 | var doc = docInfos[i]; |
| 4944 | if (doc._id && isLocalId(doc._id)) { |
| 4945 | continue; |
| 4946 | } |
| 4947 | doc = docInfos[i] = parseDoc(doc, opts.new_edits, dbOpts); |
| 4948 | if (doc.error && !docInfoError) { |
| 4949 | docInfoError = doc; |
| 4950 | } |
| 4951 | } |
| 4952 | |
| 4953 | if (docInfoError) { |
| 4954 | return callback(docInfoError); |
| 4955 | } |
| 4956 | |
| 4957 | var allDocsProcessed = false; |
| 4958 | var docCountDelta = 0; |
| 4959 | var results = new Array(docInfos.length); |
| 4960 | var fetchedDocs = new Map(); |
| 4961 | var preconditionErrored = false; |
| 4962 | var blobType = api._meta.blobSupport ? 'blob' : 'base64'; |
| 4963 | |
| 4964 | preprocessAttachments(docInfos, blobType, function (err) { |
| 4965 | if (err) { |
| 4966 | return callback(err); |
| 4967 | } |
| 4968 | startTransaction(); |
| 4969 | }); |
| 4970 | |
| 4971 | function startTransaction() { |
| 4972 | |
| 4973 | var stores = [ |
| 4974 | DOC_STORE, BY_SEQ_STORE, |
| 4975 | ATTACH_STORE, |
| 4976 | LOCAL_STORE, ATTACH_AND_SEQ_STORE, |
| 4977 | META_STORE |
| 4978 | ]; |
| 4979 | var txnResult = openTransactionSafely(idb, stores, 'readwrite'); |
| 4980 | if (txnResult.error) { |
| 4981 | return callback(txnResult.error); |
| 4982 | } |
| 4983 | txn = txnResult.txn; |
| 4984 | txn.onabort = idbError(callback); |
| 4985 | txn.ontimeout = idbError(callback); |
| 4986 | txn.oncomplete = complete; |
| 4987 | docStore = txn.objectStore(DOC_STORE); |
| 4988 | bySeqStore = txn.objectStore(BY_SEQ_STORE); |
no test coverage detected
searching dependent graphs…