Skip to content

Commit a3b9e78

Browse files
committed
Avoid generating useless objects on Errors.process
1 parent 8a13330 commit a3b9e78

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

lib/errors.js

+10-20
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,10 @@ exports.process = function (errors, object) {
119119
return item.options.error;
120120
}
121121

122-
const detail = {
123-
message: item.toString(),
124-
path: internals.getPath(item),
125-
type: item.type,
126-
context: item.context
127-
};
128-
122+
let itemMessage;
129123
if (parent === undefined) {
130-
message = message + (message ? '. ' : '') + detail.message;
124+
itemMessage = item.toString();
125+
message = message + (message ? '. ' : '') + itemMessage;
131126
}
132127

133128
// Do not push intermediate errors, we're only interested in leafs
@@ -139,7 +134,12 @@ exports.process = function (errors, object) {
139134
}
140135
}
141136
else {
142-
details.push(detail);
137+
details.push({
138+
message: itemMessage || item.toString(),
139+
path: internals.getPath(item),
140+
type: item.type,
141+
context: item.context
142+
});
143143
}
144144
}
145145
};
@@ -161,17 +161,7 @@ exports.process = function (errors, object) {
161161

162162
internals.getPath = function (item) {
163163

164-
const recursePath = (it) => {
165-
166-
const reachedItem = Hoek.reach(it, 'context.reason.0');
167-
if (reachedItem && reachedItem.context) {
168-
return recursePath(reachedItem);
169-
}
170-
171-
return it.path;
172-
};
173-
174-
return recursePath(item) || item.context.key;
164+
return item.path || item.context.key;
175165
};
176166

177167

0 commit comments

Comments
 (0)