(metaDoc, kvDocsRes)
| 8459 | } |
| 8460 | |
| 8461 | function processKeyValueDocs(metaDoc, kvDocsRes) { |
| 8462 | const kvDocs = []; |
| 8463 | const oldKeys = new Set(); |
| 8464 | |
| 8465 | for (const row of kvDocsRes.rows) { |
| 8466 | const doc = row.doc; |
| 8467 | if (!doc) { // deleted |
| 8468 | continue; |
| 8469 | } |
| 8470 | kvDocs.push(doc); |
| 8471 | oldKeys.add(doc._id); |
| 8472 | doc._deleted = !indexableKeysToKeyValues.has(doc._id); |
| 8473 | if (!doc._deleted) { |
| 8474 | const keyValue = indexableKeysToKeyValues.get(doc._id); |
| 8475 | if ('value' in keyValue) { |
| 8476 | doc.value = keyValue.value; |
| 8477 | } |
| 8478 | } |
| 8479 | } |
| 8480 | const newKeys = mapToKeysArray(indexableKeysToKeyValues); |
| 8481 | for (const key of newKeys) { |
| 8482 | if (!oldKeys.has(key)) { |
| 8483 | // new doc |
| 8484 | const kvDoc = { |
| 8485 | _id: key |
| 8486 | }; |
| 8487 | const keyValue = indexableKeysToKeyValues.get(key); |
| 8488 | if ('value' in keyValue) { |
| 8489 | kvDoc.value = keyValue.value; |
| 8490 | } |
| 8491 | kvDocs.push(kvDoc); |
| 8492 | } |
| 8493 | } |
| 8494 | metaDoc.keys = uniq(newKeys.concat(metaDoc.keys)); |
| 8495 | kvDocs.push(metaDoc); |
| 8496 | |
| 8497 | return kvDocs; |
| 8498 | } |
| 8499 | |
| 8500 | const metaDoc = await getMetaDoc(); |
| 8501 | const keyValueDocs = await getKeyValueDocs(metaDoc); |
no test coverage detected
searching dependent graphs…