diff options
Diffstat (limited to 'lib/reflect.js')
-rw-r--r-- | lib/reflect.js | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/lib/reflect.js b/lib/reflect.js index 9e0613b..f50d817 100644 --- a/lib/reflect.js +++ b/lib/reflect.js @@ -1,5 +1,5 @@ import initialParams from './internal/initialParams'; -import rest from './internal/rest'; +import slice from './internal/slice'; import wrapAsync from './internal/wrapAsync'; /** @@ -44,23 +44,19 @@ import wrapAsync from './internal/wrapAsync'; export default function reflect(fn) { var _fn = wrapAsync(fn); return initialParams(function reflectOn(args, reflectCallback) { - args.push(rest(function callback(err, cbArgs) { - if (err) { - reflectCallback(null, { - error: err - }); + args.push(function callback(error, cbArg) { + if (error) { + reflectCallback(null, { error: error }); } else { - var value = null; - if (cbArgs.length === 1) { - value = cbArgs[0]; - } else if (cbArgs.length > 1) { - value = cbArgs; + var value; + if (arguments.length <= 2) { + value = cbArg + } else { + value = slice(arguments, 1); } - reflectCallback(null, { - value: value - }); + reflectCallback(null, { value: value }); } - })); + }); return _fn.apply(this, args); }); |