What is @types/istanbul-reports?
The @types/istanbul-reports package provides TypeScript type definitions for the istanbul-reports package, which is used for generating code coverage reports in various formats as part of the Istanbul code coverage tooling. These type definitions enable TypeScript developers to work with istanbul-reports in a type-safe manner, ensuring that they use the API correctly according to the expected types.
What are @types/istanbul-reports's main functionalities?
Type definitions for creating coverage reports
This code demonstrates how to use the istanbul-api package along with type definitions from @types/istanbul-reports to create a reporter and generate coverage reports in JSON, LCOV, and text formats. The CoverageMap type is used to ensure the coverage data passed to the reporter.write method is correctly typed.
import { createReporter } from 'istanbul-api';
import { FileCoverage, CoverageMap } from 'istanbul-lib-coverage';
const reporter = createReporter();
reporter.addAll(['json', 'lcov', 'text']);
reporter.write(coverageMap);
Other packages similar to @types/istanbul-reports
nyc
nyc is a command-line-interface tool that provides a higher-level wrapper around the Istanbul code coverage tool. It simplifies the process of instrumenting code with Istanbul and generating reports. Unlike @types/istanbul-reports, which provides TypeScript types for istanbul-reports, nyc directly integrates with Istanbul and handles instrumentation, running tests, and reporting in one package.
coveralls
Coveralls is a web service that helps you track your code coverage over time, and ensure that all your new code is fully covered. It integrates with your CI environment to provide detailed reports on how your code coverage changes with each commit. While @types/istanbul-reports provides TypeScript definitions for generating reports with Istanbul, Coveralls focuses on the continuous monitoring and visibility of your coverage metrics across your project.
Installation
npm install --save @types/istanbul-reports
Summary
This package contains type definitions for istanbul-reports (https://github.com/istanbuljs/istanbuljs).
Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/istanbul-reports.
import { Node, ReportBase } from "istanbul-lib-report";
export function create<T extends keyof ReportOptions>(name: T, options?: Partial<ReportOptions[T]>): ReportBase;
export interface FileOptions {
file: string;
}
export interface ProjectOptions {
projectRoot: string;
}
export interface ReportOptions {
clover: CloverOptions;
cobertura: CoberturaOptions;
"html-spa": HtmlSpaOptions;
html: HtmlOptions;
json: JsonOptions;
"json-summary": JsonSummaryOptions;
lcov: LcovOptions;
lcovonly: LcovOnlyOptions;
none: never;
teamcity: TeamcityOptions;
text: TextOptions;
"text-lcov": TextLcovOptions;
"text-summary": TextSummaryOptions;
}
export type ReportType = keyof ReportOptions;
export interface CloverOptions extends FileOptions, ProjectOptions {}
export interface CoberturaOptions extends FileOptions, ProjectOptions {}
export interface HtmlSpaOptions extends HtmlOptions {
metricsToShow: Array<"lines" | "branches" | "functions" | "statements">;
}
export interface HtmlOptions {
verbose: boolean;
skipEmpty: boolean;
subdir: string;
linkMapper: LinkMapper;
}
export type JsonOptions = FileOptions;
export type JsonSummaryOptions = FileOptions;
export interface LcovOptions extends FileOptions, ProjectOptions {}
export interface LcovOnlyOptions extends FileOptions, ProjectOptions {}
export interface TeamcityOptions extends FileOptions {
blockName: string;
}
export interface TextOptions extends FileOptions {
maxCols: number;
skipEmpty: boolean;
skipFull: boolean;
}
export type TextLcovOptions = ProjectOptions;
export type TextSummaryOptions = FileOptions;
export interface LinkMapper {
getPath(node: string | Node): string;
relativePath(source: string | Node, target: string | Node): string;
assetPath(node: Node, name: string): string;
}
Additional Details
Credits
These definitions were written by Jason Cheatham, and Elena Shcherbakova.