lib/index.js
function login (opener, prompter, opts) {
  validate('FFO', arguments)
  opts = ProfileConfig(opts)
  return loginWeb(opener, opts).catch(er => {
    if (er instanceof WebLoginNotSupported) {
      process.emit('log', 'verbose', 'web login not supported, trying couch')
      return prompter(opts.creds)
        .then(data => loginCouch(data.username, data.password, opts))
    } else {
      throw er
    }
  })
}
function login (opener, prompter, opts) {
  validate('FFO', arguments)
  opts = ProfileConfig(opts)
  return loginWeb(opener, opts).catch(er => {
    if (er instanceof WebLoginNotSupported) {
      process.emit('log', 'verbose', 'web login not supported, trying couch')
      return prompter(opts.creds)
        .then(data => loginCouch(data.username, data.password, opts))
    } else {
      throw er
    }
  })
}
function login ( opener , prompter , opts ) { validate ( 'FFO' , arguments ) opts = ProfileConfig ( opts ) return loginWeb ( opener , opts ) . catch ( er => { if ( er instanceof WebLoginNotSupported ) { process . emit ( 'log' , 'verbose' , 'web login not supported, trying couch' ) return prompter ( opts . creds ) . then ( data => loginCouch ( data . username , data . password , opts ) ) } else { throw er } } ) }
try loginWeb, catch the "not supported" message and fall back to couch
try loginWeb catch the not supported message and fall back to couch