summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-05-06 19:31:22 +0100
committerMichael Williamson <mike@zwobble.org>2013-05-06 19:31:22 +0100
commit02ebf0f54ae9cc45daee49e444407bf90f07e781 (patch)
treeb84655221eb87347351b88392ab90560c7930989
parent4c66d94408bb764d994b2f4ed6fb57519e8af5fa (diff)
Extract code for combining messages from different results
-rw-r--r--lib/results.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/results.js b/lib/results.js
index c12d194..55efd25 100644
--- a/lib/results.js
+++ b/lib/results.js
@@ -15,15 +15,15 @@ Result.prototype.map = function(func) {
};
Result.prototype.flatMapThen = function(func) {
- var messages = this.messages;
+ var that = this;
return func(this.value).then(function(otherResult) {
- return new Result(otherResult.value, messages.concat(otherResult.messages));
+ return new Result(otherResult.value, combineMessages([that, otherResult]));
});
};
Result.combine = function(results) {
var values = _.flatten(_.pluck(results, "value"));
- var messages = _.flatten(_.pluck(results, "messages"), true);
+ var messages = combineMessages(results);
return new Result(values, messages);
};
@@ -33,3 +33,7 @@ function warning(message) {
message: message
};
}
+
+function combineMessages(results) {
+ return _.flatten(_.pluck(results, "messages"), true);
+}