blob: 4e2ea5046e6199e31f60a41d5cbf5ddd04e2070f [file] [log] [blame]
function allDocsKeysQuery(api, opts) {
var keys = opts.keys;
var finalResults = {
offset: opts.skip
};
return Promise.all(keys.map(function (key) {
var subOpts = Object.assign({key: key, deleted: 'ok'}, opts);
['limit', 'skip', 'keys'].forEach(function (optKey) {
delete subOpts[optKey];
});
return new Promise(function (resolve, reject) {
api._allDocs(subOpts, function (err, res) {
/* istanbul ignore if */
if (err) {
return reject(err);
}
/* istanbul ignore if */
if (opts.update_seq && res.update_seq !== undefined) {
finalResults.update_seq = res.update_seq;
}
finalResults.total_rows = res.total_rows;
resolve(res.rows[0] || {key: key, error: 'not_found'});
});
});
})).then(function (results) {
finalResults.rows = results;
return finalResults;
});
}
export default allDocsKeysQuery;