blob: c12d194c450f8f7b7964a87dfbeb7e7e050b9878 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
var _ = require("underscore");
exports.Result = Result;
exports.warning = warning;
function Result(value, messages) {
this.value = value;
this.messages = messages || [];
}
Result.prototype.map = function(func) {
return new Result(func(this.value), this.messages);
};
Result.prototype.flatMapThen = function(func) {
var messages = this.messages;
return func(this.value).then(function(otherResult) {
return new Result(otherResult.value, messages.concat(otherResult.messages));
});
};
Result.combine = function(results) {
var values = _.flatten(_.pluck(results, "value"));
var messages = _.flatten(_.pluck(results, "messages"), true);
return new Result(values, messages);
};
function warning(message) {
return {
type: "warning",
message: message
};
}
|