UNPKG

3.31 kBTypeScriptView Raw
1// Type definitions for istanbul-lib-coverage 2.0
2// Project: https://istanbul.js.org, https://github.com/istanbuljs/istanbuljs
3// Definitions by: Jason Cheatham <https://github.com/jason0x43>
4// Lorenzo Rapetti <https://github.com/loryman>
5// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
6// TypeScript Version: 2.4
7
8export interface CoverageSummaryData {
9 lines: Totals;
10 statements: Totals;
11 branches: Totals;
12 functions: Totals;
13}
14
15export class CoverageSummary {
16 constructor(data: CoverageSummary | CoverageSummaryData);
17 merge(obj: CoverageSummary): CoverageSummary;
18 toJSON(): CoverageSummaryData;
19 isEmpty(): boolean;
20 data: CoverageSummaryData;
21 lines: Totals;
22 statements: Totals;
23 branches: Totals;
24 functions: Totals;
25}
26
27export interface CoverageMapData {
28 [key: string]: FileCoverage | FileCoverageData;
29}
30
31export class CoverageMap {
32 constructor(data: CoverageMapData | CoverageMap);
33 addFileCoverage(pathOrObject: string | FileCoverage | FileCoverageData): void;
34 files(): string[];
35 fileCoverageFor(filename: string): FileCoverage;
36 filter(callback: (key: string) => boolean): void;
37 getCoverageSummary(): CoverageSummary;
38 merge(data: CoverageMapData | CoverageMap): void;
39 toJSON(): CoverageMapData;
40 data: CoverageMapData;
41}
42
43export interface Location {
44 line: number;
45 column: number;
46}
47
48export interface Range {
49 start: Location;
50 end: Location;
51}
52
53export interface BranchMapping {
54 loc: Range;
55 type: string;
56 locations: Range[];
57 line: number;
58}
59
60export interface FunctionMapping {
61 name: string;
62 decl: Range;
63 loc: Range;
64 line: number;
65}
66
67export interface FileCoverageData {
68 path: string;
69 statementMap: { [key: string]: Range };
70 fnMap: { [key: string]: FunctionMapping };
71 branchMap: { [key: string]: BranchMapping };
72 s: { [key: string]: number };
73 f: { [key: string]: number };
74 b: { [key: string]: number[] };
75}
76
77export interface Totals {
78 total: number;
79 covered: number;
80 skipped: number;
81 pct: number;
82}
83
84export interface Coverage {
85 covered: number;
86 total: number;
87 coverage: number;
88}
89
90export class FileCoverage implements FileCoverageData {
91 constructor(data: string | FileCoverage | FileCoverageData);
92 merge(other: FileCoverageData): void;
93 getBranchCoverageByLine(): { [line: number]: Coverage };
94 getLineCoverage(): { [line: number]: number };
95 getUncoveredLines(): number[];
96 resetHits(): void;
97 computeBranchTotals(): Totals;
98 computeSimpleTotals(): Totals;
99 toSummary(): CoverageSummary;
100 toJSON(): object;
101
102 data: FileCoverageData;
103 path: string;
104 statementMap: { [key: string]: Range };
105 fnMap: { [key: string]: FunctionMapping };
106 branchMap: { [key: string]: BranchMapping };
107 s: { [key: string]: number };
108 f: { [key: string]: number };
109 b: { [key: string]: number[] };
110}
111
112export const classes: {
113 FileCoverage: FileCoverage;
114};
115
116export function createCoverageMap(data?: CoverageMap | CoverageMapData): CoverageMap;
117export function createCoverageSummary(obj?: CoverageSummary | CoverageSummaryData): CoverageSummary;
118export function createFileCoverage(pathOrObject: string | FileCoverage | FileCoverageData): FileCoverage;