| 123456789101112131415161718192021222324252627282930 | 
							- module.exports = parseArguments
 
- function isWritable(stream) {
 
-     return typeof stream.write === "function" &&
 
-         typeof stream.end === "function"
 
- }
 
- function parseArguments(req, res, opts, callback) {
 
-     // (req, cb)
 
-     if (typeof res === "function") {
 
-         callback = res
 
-         opts = {}
 
-         res = null
 
-     }
 
-     // (req, res, cb)
 
-     if (typeof opts === "function") {
 
-         callback = opts
 
-         opts = {}
 
-     }
 
-     // (req, opts, cb)
 
-     if (res && !isWritable(res)) {
 
-         opts = res
 
-         res = null
 
-     }
 
-     // default (req, res, opts, cb)
 
-     return { req: req, res: res, opts: opts, callback: callback }
 
- }
 
 
  |