MCPcopy
hub / github.com/apache/pouchdb / idbBulkDocs

Function idbBulkDocs

lib/index-browser.js:4931–5299  ·  view source on GitHub ↗
(dbOpts, req, opts, api, idb, callback)

Source from the content-addressed store, hash-verified

4929var changesHandler = new Changes();
4930
4931function 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);

Callers 1

initFunction · 0.70

Calls 4

isLocalIdFunction · 0.70
parseDocFunction · 0.70
preprocessAttachmentsFunction · 0.70
startTransactionFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…