parse-lcov
Version:
159 lines (130 loc) • 3.24 kB
Markdown
<div align="center">
<h1>parse-lcov</h1>
<a href="https://npmjs.com/package/parse-lcov">
<img alt="NPM" src="https://img.shields.io/npm/v/parse-lcov.svg">
</a>
<a href="https://github.com/bconnorwhite/parse-lcov">
<img alt="TypeScript" src="https://img.shields.io/github/languages/top/bconnorwhite/parse-lcov.svg">
</a>
<a href="https://coveralls.io/github/bconnorwhite/parse-lcov?branch=master">
<img alt="Coverage Status" src="https://coveralls.io/repos/github/bconnorwhite/parse-lcov/badge.svg?branch=master">
</a>
<a href="https://github.com/bconnorwhite/parse-lcov">
<img alt="GitHub Stars" src="https://img.shields.io/github/stars/bconnorwhite/parse-lcov?label=Stars%20Appreciated%21&style=social">
</a>
<a href="https://twitter.com/bconnorwhite">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/bconnorwhite.svg?label=%40bconnorwhite&style=social">
</a>
</div>
<br />
> Parse LCOV.
Full specification: http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php
## Installation
```bash
yarn add parse-lcov
```
```bash
npm install parse-lcov
```
## API
### Usage
```ts
import parseLCOV from "parse-lcov";
const lcov = `
TN:
SF:source/file.ts
FN:5,functionA
FN:8,functionB
...
`;
parseLCOV(lcov);
/* Sample Output:
[{
title: "",
file: "source/file.ts",
functions: {
found: 2,
hit: 2,
details: [{
line: 5,
hit: 2,
name: "functionA"
}, {
hit: 16,
line: 8,
name: "functionB"
}]
},
branches: {
found: 3,
hit: 3,
details: [{
block: 0,
branch: 0,
line: 5,
taken: 1
}, {
block: 1,
branch: 0,
line: 9,
taken: 0
}]
},
lines: {
found: 13,
hit: 13,
details: [{
hit: 1,
line: 1
}]
}
}]);
*/
```
### Types
```ts
import parseLCOV, { LCOVRecord, FunctionsDetails, BranchesDetails, LinesDetails } from "parse-lcov";
function parseLCOV(string?: string): LCOVRecord[];
type LCOVRecord = {
title: string;
file: string;
functions: LCOVStats & {
details: FunctionsDetails[];
};
branches: LCOVStats & {
details: BranchesDetails[];
};
lines: LCOVStats & {
details: LinesDetails[];
};
}
type LCOVStats = {
found: number;
hit: number;
}
type FunctionsDetails = {
name: string;
line: number;
hit?: number;
}
type BranchesDetails = {
line: number;
block: number;
branch: number;
taken: number;
};
type LinesDetails = {
line: number;
hit: number;
}
```
<br />
<h2>Dev Dependencies<img align="right" alt="David" src="https://img.shields.io/david/dev/bconnorwhite/parse-lcov.svg"></h2>
- [@bconnorwhite/bob](https://www.npmjs.com/package/@bconnorwhite/bob): Bob is a toolkit for TypeScript projects
<br />
<h2>License <img align="right" alt="license" src="https://img.shields.io/npm/l/parse-lcov.svg"></h2>
[MIT](https://opensource.org/licenses/MIT)
<br />
## Related Packages
- [parse-json-object](https://www.npmjs.com/package/parse-json-object): Parse a typed JSON object
- [read-lcov-safe](https://www.npmjs.com/package/read-lcov-safe): Read and parse an lcov file without try catch