nl_tokens: this is essentially the update sugar function from daleharvey / pouchdb#1388 the diffFun tells us what delta to apply to the doc . it either returns the doc or false if it doesn t need to do an update after all
pl_tokens: function upsertInner ( db , docId , diffFun ) { if ( typeof docId !== 'string' ) { return PouchPromise . reject ( new Error ( 'doc id is required' ) ) ; } return db . get ( docId ) . catch ( function ( err ) { /* istanbul ignore next */ if ( err . status !== 404 ) { throw err ; } return { } ; } ) . then ( function ( doc ) { // the user might change the _rev, so save it for posterity var docRev = doc . _rev ; var newDoc = diffFun ( doc ) ; if ( ! newDoc ) { // if the diffFun returns falsy, we short-circuit as // an optimization return { updated : <mask> , rev : docRev , id : docId } ; } // users aren't allowed to modify these values, // so reset them here newDoc . _id = docId ; newDoc . _rev = docRev ; return tryAndPut ( db , newDoc , diffFun ) ; } ) ; }