UNPKG

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