1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| 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 }
| }
|
|