Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alexcanessa/typescript-coverage-report

Node command tool to generate TypeScript coverage report
https://github.com/alexcanessa/typescript-coverage-report

coverage coverage-report ts type-coverage typescript typescript-coverage

Last synced: about 2 months ago
JSON representation

Node command tool to generate TypeScript coverage report

Awesome Lists containing this project

README

        

# TypeScript Coverage Report

[![npm version](https://badge.fury.io/js/typescript-coverage-report.svg)](https://badge.fury.io/js/typescript-coverage-report)
[![npm downloads](https://img.shields.io/npm/dw/typescript-coverage-report.svg)](https://www.npmjs.com/package/typescript-coverage-report)
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)
[![Automated Release Notes by gren](https://img.shields.io/badge/%F0%9F%A4%96-release%20notes-00B2EE.svg)](https://github-tools.github.io/github-release-notes/)

[![All Contributors](https://img.shields.io/badge/all_contributors-17-orange.svg?style=flat-square)](#contributors-)

Node command line tool for generating TypeScript coverage reports โœจ

## Overview

This package fills the gap of a missing type coverage reporting tool which is present in the Flow ecosystem, strongly inspired by the amazing work done by [`flow-coverage-report`](https://github.com/rpl/flow-coverage-report) and using data generated by [`type-coverage`](https://github.com/plantain-00/type-coverage).

[See an example of the coverage report](https://alexcanessa.github.io/typescript-coverage-report/).

### Background

To learn more about the reasoning behind this project and its roadmap, please refer to the following article: [**How I built a TS coverage reportย tool**](https://medium.com/@alexcanessa/how-did-i-build-a-ts-coverage-report-tool-af34e110d02c?sk=de2eb6c78e581aa8d9979629300873b3)

## Install

`typescript-coverage-report` can be installed locally or globally.

Users are advised to install it as a project _(dev)_ dependency and create a script in `package.json`.

```shell
$ yarn add --dev typescript-coverage-report

# OR

$ npm install --save-dev typescript-coverage-report
```

## Usage

If installed locally, add the following to the _scripts_ section of `package.json`.

```json
"scripts": {
"ts-coverage": "typescript-coverage-report"
}
```

Then run:

```shell
$ yarn ts-coverage

# OR

$ npm run ts-coverage
```

To set the minimum threshold _(80% by default)_, use the `--threshold` option.

```shell
$ yarn ts-coverage --threshold=99
```

As an alternative, options may be provided through the `type-coverage` [configuration](https://github.com/plantain-00/type-coverage#config-in-packagejson), specified in `package.json`.

```json
"typeCoverage": {
"atLeast": 90
}
```

![terminal table](images/screenshot-table.png)

![summary page](images/screenshot-summary.png)

![details page](images/screenshot-details.png)

## Options

The CLI accepts a list of arguments:

| Option | Description | Default value |
| ------------------------------- | -------------------------------------------------------------------------------------- | ------------- |
| `-t, --threshold [number]` | The minimum percentage of coverage required. | 80 |
| `-o, --outputDir [string]` | The output directory where to generate the report. | coverage-ts |
| `-s, --strict [boolean]` | Run the check in strict mode. | false |
| `-d, --debug [boolean]` | Show debug information. | false |
| `-c, --cache [boolean]` | Save and reuse type check result from cache. | false |
| `-p, --project [string]` | File path to tsconfig file, eg: --project "./app/tsconfig.app.json" | . |
| `-i, --ignore-files [boolean]` | Ignore specified files, eg: --ignore-files "demo1/\*.ts" --ignore-files "demo2/foo.ts" | false |
| `-u, --ignore-unread [boolean]` | Allow writes to variables with implicit any types | false |

## Maintainers

[@alexcanessa](https://github.com/alexcanessa)

## Contributing

Feel free to dive in! [Open an issue](https://github.com/alexcanessa/typescript-coverage-report/issues/new/choose) or submit PRs.

On this project we follow the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/1/3/0/code-of-conduct/).

### Developing

Thanks for contributing!

Remember to run the following commands to link your version of this package and build the TypeScript files.

```bash
#ย Link the package globally, so you'll be able to test it in other projects.
$ yarn link
# Builds the TypeScript files and watches for changes
$ yarn build --watch
```

### Commit messages

This project follows the [Angular commit messages](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit), but it's very open to emojis ๐Ÿคฏ.

### Contributors โœจ

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



David Tsai
David Tsai

๐Ÿ“– ๐Ÿ›
Alexis Tyler
Alexis Tyler

๐Ÿ›
Dan Vanderkam
Dan Vanderkam

๐Ÿ’ป
Daniel Edholm Ignat
Daniel Edholm Ignat

๐Ÿ’ป
Kyโ„“e Hensel
Kyโ„“e Hensel

๐Ÿ’ป
Danilo Cabello
Danilo Cabello

๐Ÿ’ป
Sanjay Guruprasad
Sanjay Guruprasad

๐Ÿ›


Luis Helder
Luis Helder

๐Ÿ›
Tom Ardern
Tom Ardern

๐Ÿ› ๐Ÿ’ป
lroskoshin
lroskoshin

๐Ÿ’ป
Max Burmagin
Max Burmagin

๐Ÿ’ป
Alexander Skvortsov
Alexander Skvortsov

๐Ÿ’ป
Adi Cucolaศ™
Adi Cucolaศ™

๐Ÿ’ป
Stanislav Golyshev
Stanislav Golyshev

๐Ÿ’ป


roikoren755
roikoren755

๐Ÿ’ป
jinphic
jinphic

๐Ÿ’ป
Brandon Barker
Brandon Barker

๐Ÿ’ป

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

## Licence

[MIT](https://spdx.org/licenses/MIT.html) @ Alessandro Canessa

[![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)](https://forthebadge.com)