/
index.js
35 lines (29 loc) · 1.5 KB
/
index.js
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
/*eslint-env node*/
const _ = require('lodash');
function logIssue(issue) {
const attributes = _.chain(_.toPairs(issue))
.map((pair) => ({ key: pair[0], value: pair[1], }))
.filter((pair) => pair.key !== 'message')
.filter((pair) => pair.value !== undefined)
.map((pair) => `${pair.key}=${pair.value};`)
.value();
return `##vso[task.logissue ${attributes.join('')}]${issue.message}`;
}
module.exports = (results, options) => {
options = Object.assign({}, { severity: 'warning' }, options);
const errorLines = _.chain(results)
.filter((result) => !result.isEmpty())
.flatMap((result) => _.chain(result.getErrorList())
.map((error) => logIssue({
type: options.severity,
sourcepath: result.getFilename(),
linenumber: error.line,
columnnumber: error.column,
code: error.rule,
message: error.message,
}))
.value())
.value()
.join('\n');
console.log(errorLines);
};