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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kitschpatrol/typescript-config

v8.6.0

Published

TypeScript configuration for @kitschpatrol/shared-config.

Downloads

2,025

Readme

@kitschpatrol/typescript-config

NPM Package @kitschpatrol/typescript-config License: MIT

TypeScript configuration for @kitschpatrol/shared-config.

Overview

It's a shared TypeScript tsconfig.json config, plus a command-line tool ksc-typescript to perform TypeScript-related validation and linting.

[!IMPORTANT]

You can use this package on its own, but it's recommended to use @kitschpatrol/shared-config instead for a single-dependency and single-package approach to linting and fixing your project.

This package is included as a dependency in @kitschpatrol/shared-config, which also automatically invokes the command line functionality in this package via its ksc command

Setup

[!NOTE]

The package treats typescript as a peer dependency — it expects you to have typescript installed in your project.

To use just this TypeScript config in isolation:

  1. Install the basic repository configuration files in your project root. This is required for correct PNPM behavior:

    pnpm --package=@kitschpatrol/repo-config dlx ksc-repo init
  2. Add the package:

    pnpm add -D @kitschpatrol/typescript-config
  3. Add the starter tsconfig.json and tsconfig.build.json files to your project root, and add any customizations you'd like:

    pnpm exec ksc-typescript init

Astro and Svelte projects

Framework-specific configs are also exported. Each extends the base config and overrides only what the framework requires.

In an Astro project, the entire tsconfig.json is:

{
  "extends": "@kitschpatrol/typescript-config/astro"
}

This mirrors the astro/tsconfigs/strict preset that create-astro scaffolds by default, including the .astro/types.d.ts include and dist exclude, layered over the base config.

In a SvelteKit project, extend both this config and SvelteKit's generated config, with the generated config last so its per-project paths, rootDirs, include, and exclude take precedence:

{
  "extends": ["@kitschpatrol/typescript-config/svelte", "./.svelte-kit/tsconfig.json"]
}

This mirrors the tsconfig.json that sv create scaffolds for SvelteKit projects. Standalone Svelte projects without SvelteKit (Vite's split tsconfig.app.json / tsconfig.node.json layout) aren't covered by this config.

See the Svelte and Astro caveat below for how ksc-typescript lint handles type checking in these projects.

Usage

You can call ksc-typescript directly, or use the script bundled with the config.

Integrate with your package.json scripts as you see fit, for example:

{
  "scripts": {
    "lint": "ksc-typescript lint"
  }
}

Ignoring files

See the tsconfig.json exclude key.

.gitignore files are not ignored.

Ignoring code

See the TypeScript directive comments documentation for more details.

Entire files (at top):

/* @ts-nocheck */

Next line:

/* @ts-ignore */

or

/* @ts-expect-error - reason */

CLI

Command: ksc-typescript

Kitschpatrol's TypeScript shared configuration tools.

This section lists top-level commands for ksc-typescript.

Usage:

ksc-typescript <command>

| Command | Description | | -------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | init | Initialize by copying starter config files to your project root. | | lint | Run type checking on your project. Package-scoped. In a monorepo, it will also run in all packages below the current working directory. | | print-config | Print the TypeScript configuration for the project. Package-scoped. Searches up to the root of a monorepo if necessary. |

| Option | Description | Type | | ------------------- | ------------------- | --------- | | --help-h | Show help | boolean | | --version-v | Show version number | boolean |

See the sections below for more information on each subcommand.

Subcommand: ksc-typescript init

Initialize by copying starter config files to your project root.

Usage:

ksc-typescript init

| Option | Description | Type | | ------------------- | ------------------- | --------- | | --help-h | Show help | boolean | | --version-v | Show version number | boolean |

Subcommand: ksc-typescript lint

Run type checking on your project. Package-scoped. In a monorepo, it will also run in all packages below the current working directory.

Usage:

ksc-typescript lint

| Option | Description | Type | Default | | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | ---------- | | --format | Output format: "native" streams each tool's own output, "machine" prints one parseable line per issue for editor problem matchers, "json" prints an aggregate report. | "json" "machine" "native" | "native" | | --cache | Use tool-native caches stored below node_modules/.cache/ksc at the workspace root. Disable with --no-cache. | boolean | true | | --help-h | Show help | boolean | | | --version-v | Show version number | boolean | |

Subcommand: ksc-typescript print-config

Print the TypeScript configuration for the project. Package-scoped. Searches up to the root of a monorepo if necessary.

Usage:

ksc-typescript print-config

| Option | Description | Type | | ------------------- | ------------------- | --------- | | --help-h | Show help | boolean | | --version-v | Show version number | boolean |

VS Code tasks

ksc-typescript init adds a .vscode/tasks.json with a single task:

  • ksc-typescript lint runs ksc-typescript lint --format machine, type checking the project

If you're using the complete @kitschpatrol/shared-config package, you'd more likely want to run:

  • ksc lint runs ksc lint --format machine, which runs all ksc lint tools across the whole project
  • ksc fix runs ksc fix --format machine, which applies all ksc fix auto-fixes and reports anything unfixable

Run them via the Tasks: Run Task command (or the Terminal → Run Task… menu item).

Each task's problem matcher parses the machine-format output and populates VS Code's Problems panel with every reported issue, pointing to the offending file, line, and column.

The tasks share a problem matcher owner with the other @kitschpatrol/shared-config tasks, so the panel reflects the most recent run rather than stacking duplicates.

If your project already has a .vscode/tasks.json, init merges by task label: your own tasks are left alone, and same-label tasks are replaced with the latest definitions.

Notes

Svelte and Astro caveat

The tsc command ignores .svelte and .astro files, and errors on plain .ts files that import them. So, if svelte-check or @astrojs/check is declared in your package's dependencies or devDependencies, the ksc-typescript lint command runs that checker instead of tsc --noEmit:

  • svelte-checksvelte-check --tsconfig ./tsconfig.json (covers .svelte and plain .ts / .js files)
  • @astrojs/checkastro check (covers .astro and plain .ts / .js files)
  • Both → astro check plus svelte-check scoped to .svelte files only

If neither checker is declared, tsc --noEmit runs as usual, even in projects with a svelte.config.js or astro.config.mjs file.

General

Other shared tsconfig projects

Future integrations

License

MIT © Eric Mika