summaryrefslogtreecommitdiff
path: root/lib/reflect.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/reflect.js')
-rw-r--r--lib/reflect.js26
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);
});