standard-json
Version:
Format JavaScript Standard Style output to a JSON array.
36 lines (29 loc) • 815 B
JavaScript
module.exports = jsonify
function jsonify (rawtext, opts) {
opts = opts || { noisey: false }
var lines = rawtext.split('\n')
if (lines[lines.length - 1] === '') lines.pop()
var results = []
var resultMap = {}
lines.forEach(function (line) {
var re = /\s*([A-Za-z]:)?([^:]+):([^:]+):([^:]+): (.*?)( \((.*)\))?$/.exec(line)
if (!re) return opts.noisey ? console.error(line) : null
if (re[1] === undefined) re[1] = ''
var filePath = re[1] + re[2]
var result = resultMap[filePath]
if (!result) {
result = resultMap[filePath] = {
filePath: re[1] + re[2],
messages: []
}
results.push(result)
}
result.messages.push({
line: re[3],
column: re[4],
message: re[5].trim(),
ruleId: re[7]
})
})
return results
}