npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

loose-ts-check

v2.0.0

Published

Run TS type-check and ignore certain errors in some files

Downloads

27,566

Readme

Loose TS check

Downloads badge Version badge License badge GitHub stars badge CI

The loose-ts-check utility helps ignore particular types of TS error in specified files.

This is useful when migrating to a stricter tsconfig.json configuration incrementally, where only some existing files are allowed to have TS errors.

Features

  • ignores specific TS errors from specific files
  • detects files that no longer have to be loosely type-checked
  • auto-updates the loosely type-checked list of files when a file no longer has errors
  • auto-updates the ignored error codes when there are no errors of that type
  • loosely type-checked files can be specified using globs

Why not exclude in tsconfig.json

The exclude option in tsconfig.json only tells tsc to not start type-checking from those files. If some already type-checked file imports a file listed in the exclude, it will still be type-checked.

Thus, it does not suit this use case.

Why not follow the idea from the VSCode project

The vscode team have already encountered a similar problem and solved it in another way. They created a new tsconfig.json that only included some files.

While this works great with existing files, it does not automatically enforce a stricter config for new files in the project.

Installation

Install the utility with:

npm install loose-ts-check --save-dev

Usage

Pipe the result of tsc to loose-ts-check to run the utility:

tsc --noEmit -p tsconfig.strict.json | npx loose-ts-check

To initialize the list of ignored errors and loosely type-checked files based on the current errors, run:

tsc --noEmit -p tsconfig.strict.json | npx loose-ts-check --init

To automatically update the list of loosely type-checked files, run:

tsc --noEmit -p tsconfig.strict.json | npx loose-ts-check --auto-update

Options

Display the list of options by running:

npx loose-ts-check --help

Recipes

Reusing the same tsc output

To avoid running tsc again and again when testing, save the output to a file:

tsc > errors.log;

And then, use the tool by redirecting the input:

npx loose-ts-check < errors.log

Migrating to a stricter tsconfig.json

To migrate the codebase to use a stricter tsconfig.json, you will need 2 tsconfigs:

  1. tsconfig.json - the strict tsconfig. This config will be used by the IDE and by the loose-ts-check tool.

    The aim is to see the errors in the IDE, to feel motivated to fix the errors while modifying existing files.

  2. tsconfig.loose.json - a tsconfig that extends tsconfig.json, but has the stricter options turned off.

    This config will be used by any linter, test runner, bundler you will have.

    If you are using ts-node, you need to pass tsconfig.loose.json as a TS_NODE_PROJECT variable, so it uses the correct tsconfig, e.g.

    cross-env TS_NODE_PROJECT="tsconfig.loose.json" webpack --mode=development

    To run tsc to do type-checking, pass -p tsconfig.loose.json option:

    tsc -p tsconfig.loose.json

Then, use the following command to initialize the config files:

tsc | npx loose-ts-check --init

After that, run

tsc | npx loose-ts-check

instead of tsc to do type-checking.

IDE plugin

In case you want to have the errors ignored in your IDE as well, use loose-ts-check-plugin.

Development

To verify the correctness, run:

npm run type-check
npm run lint:formatting
npm run test

Contributing

Contributions are welcome!

Make sure the CI passes on your PRs, and that your code is covered by unit tests.