@@ -85,7 +85,7 @@ exports.createWrapperMethod = function (name, original, handler, db) {
8585function createWrapper ( name , original , handler , theWrapperBuilders , thisVal ) {
8686 //thisVal is optional
8787 var buildWrapper = theWrapperBuilders [ name ] ;
88- if ( typeof createWrapper === "undefined" ) {
88+ if ( typeof buildWrapper === "undefined" ) {
8989 throw new Error ( "No known wrapper for method name: " + name ) ; //coverage: ignore
9090 }
9191 var handlers = [ handler ] ;
@@ -105,15 +105,14 @@ wrapperBuilders.destroy = function (db, destroy, handlers) {
105105} ;
106106
107107wrapperBuilders . put = function ( db , put , handlers ) {
108- return function ( doc , docId , docRev , options , callback ) {
108+ return function ( /* doc, docId, docRev, options, callback*/ ) {
109109 var args = { } ;
110110 args . base = db || this ;
111- args . db = db || this ; //backwards compatibility
112111 var argsList = Array . prototype . slice . call ( arguments ) ;
113112 //parsing code borrowed from PouchDB (adapted).
114113 args . doc = argsList . shift ( ) ;
115114 var id = '_id' in args . doc ;
116- while ( true ) {
115+ do {
117116 var temp = argsList . shift ( ) ;
118117 var temptype = typeof temp ;
119118 if ( temptype === "string" && ! id ) {
@@ -126,10 +125,7 @@ wrapperBuilders.put = function (db, put, handlers) {
126125 } else if ( temptype === "function" ) {
127126 args . callback = temp ;
128127 }
129- if ( ! argsList . length ) {
130- break ;
131- }
132- }
128+ } while ( argsList . length ) ;
133129 args . options = args . options || { } ;
134130 return callHandlers ( handlers , args , function ( ) {
135131 return put . call ( this , args . doc , args . options ) ;
@@ -148,7 +144,7 @@ wrapperBuilders.post = function (db, post, handlers) {
148144} ;
149145
150146wrapperBuilders . get = function ( db , get , handlers ) {
151- return function ( docId , options , callback ) {
147+ return function ( docId , options , callback ) {
152148 var args = parseBaseArgs ( db , this , options , callback ) ;
153149 args . docId = docId ;
154150 return callHandlers ( handlers , args , function ( ) {
@@ -185,7 +181,7 @@ wrapperBuilders.bulkDocs = function (db, bulkDocs, handlers) {
185181 return function ( docs , options , callback ) {
186182 var args = parseBaseArgs ( db , this , options , callback ) ;
187183 //support the deprecated signature.
188- if ( 'new_edits' in docs ) {
184+ if ( typeof ( docs ) === 'object' && 'new_edits' in docs ) {
189185 args . options . new_edits = docs . new_edits ;
190186 }
191187 args . docs = docs . docs || docs ;
@@ -201,6 +197,7 @@ wrapperBuilders.allDocs = function (db, allDocs, handlers) {
201197 return callHandlers ( handlers , args , makeCallWithOptions ( allDocs , args ) ) ;
202198 } ;
203199} ;
200+ wrapperBuilders . bulkGet = wrapperBuilders . allDocs ;
204201
205202wrapperBuilders . changes = function ( db , changes , handlers ) {
206203 return function ( options , callback ) {
@@ -297,13 +294,37 @@ wrapperBuilders.viewCleanup = function (db, viewCleanup, handlers) {
297294 } ;
298295} ;
299296
297+ wrapperBuilders . createIndex = function ( db , createIndex , handlers ) {
298+ return function ( index , options , callback ) {
299+ var args = parseBaseArgs ( db , this , options , callback ) ;
300+ args . index = index ;
301+ return callHandlers ( handlers , args , function ( ) {
302+ return createIndex . call ( this , args . index ) ;
303+ } ) ;
304+ } ;
305+ } ;
306+ wrapperBuilders . deleteIndex = wrapperBuilders . createIndex ;
307+
308+
309+ wrapperBuilders . find = function ( db , find , handlers ) {
310+ return function ( request , options , callback ) {
311+ var args = parseBaseArgs ( db , this , options , callback ) ;
312+ args . request = request ;
313+ return callHandlers ( handlers , args , function ( ) {
314+ return find . call ( this , args . request ) ;
315+ } ) ;
316+ } ;
317+ } ;
318+ wrapperBuilders . explain = wrapperBuilders . find ;
319+
300320wrapperBuilders . info = function ( db , info , handlers ) {
301321 return function ( options , callback ) {
302322 //see note on the options argument at putAttachment.
303323 var args = parseBaseArgs ( db , this , options , callback ) ;
304324 return callHandlers ( handlers , args , makeCall ( info ) ) ;
305325 } ;
306326} ;
327+ wrapperBuilders . getIndexes = wrapperBuilders . info ;
307328
308329wrapperBuilders . compact = function ( db , compact , handlers ) {
309330 return function ( options , callback ) {
@@ -427,7 +448,6 @@ function parseBaseArgs(thisVal1, thisVal2, options, callback) {
427448 }
428449 return {
429450 base : thisVal1 || thisVal2 ,
430- db : thisVal1 || thisVal2 , //backwards compatibility
431451 options : options || { } ,
432452 callback : callback
433453 } ;
0 commit comments