GitHunt
CA

Track missing type coverage to ensure type safety

codechecks.io

TypeCov

Track missing type coverage in TypeScript projects to ensure type safety

Build Status Software License codechecks.io

Features

๐Ÿ‘‰ track type coverage defined as the count of symbols whose type is not any / the total count of symbols

๐Ÿ‘‰ display type coverage directly in GitHub

๐Ÿ‘‰ set minimal type coverage and automatically fail PRs

๐Ÿ‘‰ supports monorepos

Motivation

Despite using --strict mode in tsconfig you can still have anys in your codebase. This tool gives you a good overview if PR that you are going to merge increases or decreases overall type coverage and where exactly types should be improved.

Install

npm install --save-dev typecov

Usage

TypeCov is built on CodeChecks.io - open source code review automation platform.

Are you new to codechecks? Check out getting started guide (it's simple)!

Install package and then add to your codechecks.yml file:

checks:
  - name: typecov
    options:
      # atLeast: 99
      # name: webapp
      # tsconfigPath: ./tsconfig.prod.json

Under the hood it uses type-coverage package.

API

typecov(options: Options): Promise<void>

options

interface Options {
  name?: string; // will be added to check name
  tsconfigPath?: string; //defaults to tsconfig.json
  atLeast?: number;
  ignoreFiles?: string[];
  ignoreCatch?: boolean;
  strict?: boolean;
}
name

optional string

Defaults: Type Coverage

Specify the name for check. Might be useful in monorepos.

tsconfigPath

optional string

Default: tsconfig.json

Path to typescript project configuration

atLeast

optional number

Defaults: undefined

Example: atLeast: 99

Fail if coverage rate < this value.

ignoreFiles

optional string[]

Defaults: undefined

Specify the ignored for checks files.
See type-coverage's description for the reference.

ignoreCatch

optional string

Defaults: undefined

See type-coverage's description for the reference.

strict

optional string

Defaults: undefined

See type-coverage's description for the reference.

Contributing

All contributions are welcomed. Read more in CONTRIBUTING.md

Licence

MIT @ codechecks.io