diff options
| author | Michael Williamson <mike@zwobble.org> | 2013-05-06 19:31:22 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2013-05-06 19:31:22 +0100 |
| commit | 02ebf0f54ae9cc45daee49e444407bf90f07e781 (patch) | |
| tree | b84655221eb87347351b88392ab90560c7930989 /lib/results.js | |
| parent | 4c66d94408bb764d994b2f4ed6fb57519e8af5fa (diff) | |
Extract code for combining messages from different results
Diffstat (limited to 'lib/results.js')
| -rw-r--r-- | lib/results.js | 10 |
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); +} |
