parse-lcov
Version:
79 lines (77 loc) • 1.89 kB
JavaScript
;
exports.__esModule = true;
exports.transform = transform;
var transformers = {
TN: function TN(record, data) {
record.title = data[0];
},
SF: function SF(record, data) {
record.file = data[0];
},
// Functions
FNF: function FNF(record, data) {
record.functions.found = parseInt(data[0]);
},
FNH: function FNH(record, data) {
record.functions.hit = parseInt(data[0]);
},
FN: function FN(record, data) {
var line = data[0],
name = data[1];
record.functions.details.push({
name: name,
line: parseInt(line)
});
},
FNDA: function FNDA(record, data) {
var hit = data[0],
name = data[1];
record.functions.details.some(function (item) {
if (item.name === name && item.hit === undefined) {
item.hit = parseInt(hit);
return true;
} else {
return undefined;
}
});
},
// Branches
BRF: function BRF(record, data) {
record.branches.found = parseInt(data[0]);
},
BRH: function BRH(record, data) {
record.branches.hit = parseInt(data[0]);
},
BRDA: function BRDA(record, data) {
var line = data[0],
block = data[1],
branch = data[2],
taken = data[3];
record.branches.details.push({
line: parseInt(line),
block: parseInt(block),
branch: parseInt(branch),
taken: taken === "-" ? 0 : parseInt(taken)
});
},
// Lines
LF: function LF(record, data) {
record.lines.found = parseInt(data[0]);
},
LH: function LH(record, data) {
record.lines.hit = parseInt(data[0]);
},
DA: function DA(record, data) {
var line = data[0],
hit = data[1];
record.lines.details.push({
line: parseInt(line),
hit: parseInt(hit)
});
}
};
function transform(record, lineType, data) {
if (lineType) {
transformers[lineType](record, data);
}
}