Awesome
TSCOV - Check the type coverage of any TypeScript project with this easy npm package
The Liftr framework provides a structure and tools to build API's with TypeScript and express. This repo/package is for the coverage of types in TypeScript.
Quick start
Globally
First globally install @liftr/tscov
by running the following in the command line.
npm i @liftr/tscov -g
cd <your-repo-location>
# To run the coverage of the types.
tscov
Project
Go to your local project in the command line.
Then install @liftr/tscov
as devDependency by running:
npm i @liftr/tscov --save-dev
And set tscov up by adding an extra npm script in your package.json
like this:
"scripts": {
"tscov": "tscov -m <number>"
},
Then you could run this with:
npm run tscov
How to use
You can use the following commands in the command line or in a project as npm script:
# Show max reachable coverage and covered/uncovered types (default 90% minimal coverage)
tscov
# Define your minimum wanted coverage % by replacing `<number>` (0-100) with `95` for example
tscov -m <number>
tscov --min-coverage <number>
# Show all uncovered types
tscov -d
tscov --details
# Test specific folder
tscov -p <path-to-folder/foldername>
tscov --project <path-to-folder/foldername>
# Testing specific files
tscov -p <path-to-folder/foldername> -f <filename>.ts
tscov --project <path-to-folder/foldername> --file <filename>.ts
# Start debugging
tscov --debug
# Show version
tscov -v
tscov --version
# Show all available options
tscov -h
tscov --help
Example output
Example by running this command: tscov --min-coverage=95
.
_____ ____ ____ ___ __ __
|_ _| / ___| / ___| / _ \ \ \ / /
| | \___ \ | | | | | | \ \ / /
| | ___) | | |___ | |_| | \ V /
|_| |____/ \____| \___/ \_/
The TypeScript CLI to calculate type coverage
----------------- coverage ------------------
3337 - max reachable type coverage
3287 - types covered
50 - types uncovered
98.50% - coverage percentage
You can run "tscov --details" to show all uncovered types.
Contributing
Want to file a bug, contribute some code, or improve documentation? Feel free to place an issue.
First fork this project.
git clone <your-forked-repo>
npm install
git checkout -b my-fix
# fix some code...
git commit -m "added this feature"
git push origin my-fix
Lastly, open a pull request on Github.
The following npm script are available
npm start
- create build, install globally and run tscovnpm run build
- create buildnpm run global
- install globally and run tscovnpm run link-upstream
- add remotenpm run sync
- fetch, checkout, merge and pushnpm run reset
- removes node modules, package-lock.json, lib and re-installs everything.