Skip to content

Commit 17e700b

Browse files
committed
[clean] Simplify promise chain
1 parent ec16619 commit 17e700b

File tree

1 file changed

+34
-39
lines changed

1 file changed

+34
-39
lines changed

src/scan.js

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ module.exports = function (pattern, globOptions){
2121

2222
return new Promise(function (resolve, reject) {
2323

24+
// Sanity Checks
2425
if (
2526
!_.isString(pattern) ||
2627
_.isEmpty(pattern) ||
@@ -29,50 +30,44 @@ module.exports = function (pattern, globOptions){
2930
reject(new Error('Invalid parameter type'));
3031
}
3132

32-
globAsync(pattern, globOptions)
33+
// Generate files reports promises array
34+
var filesReports = globAsync(pattern, globOptions)
35+
.map(function(file){
36+
return reportAsync(file);
37+
});
38+
39+
// when files reports promises are fulfilled,
40+
// generate a global report
41+
filesReports.then(function(results){
42+
43+
return Promise.props({
44+
45+
report : Promise
46+
.filter(results, function(result){
47+
return result.success;
48+
})
49+
.map(function(result){
50+
return result.result;
51+
})
52+
.then(function(results){
53+
return _.chain(results).sortBy('complexity').reverse().value();
54+
}),
55+
56+
fails : Promise
57+
.filter(results, function(result){
58+
return !result.success;
59+
})
60+
.map(function(result){
61+
return result.error;
62+
})
3363

34-
.then(function (files) {
35-
36-
var filesReports = [];
37-
38-
_.each(files, function(file){
39-
filesReports.push(reportAsync(file));
4064
});
4165

42-
Promise.all(filesReports)
43-
44-
.then(function(results){
45-
46-
return Promise.props({
47-
48-
report : Promise
49-
.filter(results, function(result){
50-
return result.success;
51-
})
52-
.map(function(result){
53-
return result.result;
54-
})
55-
.then(function(results){
56-
return _.chain(results).sortBy('complexity').reverse().value();
57-
}),
58-
59-
fails : Promise
60-
.filter(results, function(result){
61-
return !result.success;
62-
})
63-
.map(function(result){
64-
return result.error;
65-
})
66-
67-
});
68-
69-
})
70-
71-
.then(resolve);
72-
7366
})
67+
.then(resolve)
68+
.caught(reject)
7469

75-
.caught(reject);
70+
;
7671

7772
});
7873

0 commit comments

Comments
 (0)