in lib/nano.js [771:832]
function view (ddoc, viewName, meta, qs0, callback0) {
const { opts, callback } = getCallback(qs0, callback0)
if (missing(ddoc, viewName) && !meta.viewPath) {
return callbackOrRejectError(callback)
}
if (typeof meta.stream !== 'boolean') {
meta.stream = false
}
// prevent mutation of the client qs object by using a clone
const qs1 = Object.assign({}, opts)
const viewPath = meta.viewPath || '_design/' + ddoc + '/_' + meta.type +
'/' + viewName
if (meta.type === 'search') {
return relax({
db: dbName,
path: viewPath,
method: 'POST',
body: qs1,
stream: meta.stream
}, callback)
} else if (qs1 && qs1.keys) {
const body = { keys: qs1.keys }
delete qs1.keys
return relax({
db: dbName,
path: viewPath,
method: 'POST',
qs: qs1,
body,
stream: meta.stream
}, callback)
} else if (qs1 && qs1.queries) {
const body = { queries: qs1.queries }
delete qs1.queries
return relax({
db: dbName,
path: viewPath,
method: 'POST',
qs: qs1,
body
}, callback)
} else {
const req = {
db: dbName,
method: meta.method || 'GET',
path: viewPath,
qs: qs1,
stream: meta.stream
}
if (meta.body) {
req.body = meta.body
}
return relax(req, callback)
}
}