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

@kent7k/tsconfig

v1.0.1

Published

Shared TypeScript base configs (Node 22 / TS 5.9+, TS 6.0-ready)

Readme

@kent7k/tsconfig (kdot-tsconfig)

TypeScript 共通 tsconfig。Node 22 / TS 5.9+ 前提、TS 6.0 の既定値変更を先取りしてある。

プリセット

| 名前 | 用途 | キーポイント | |---|---|---| | base.json | 全プリセットの土台 | strict + safe strictness, verbatimModuleSyntax, moduleDetection: force, types: []。target/lib/module は持たない | | node-base.json | Node 用の土台 | target/lib: ES2024, module: node20, types: ["node"] | | node-esm.json | Node ライブラリ (publish 用) | composite + sourceMap。出力形式は package.json の type で決める | | scripts.json | tsx / node --experimental-strip-types で走らせるスクリプト | noEmit + erasableSyntaxOnly | | web-base.json | Web/Bundler の土台 | target: ES2023, lib: [ES2024, DOM, DOM.Iterable], module: preserve | | react.json | React ライブラリ/アプリの土台 | jsx: react-jsx | | web.json | Web/React ライブラリ (publish 用) | react.json + composite + sourceMap | | app.json | Next.js アプリ | jsx: preserve, types: ["node"], plugins: [{name: "next"}] | | figma.json | Figma プラグイン | DOM を入れず @figma/plugin-typings のみ。バンドラ前提なので noEmit |

使い方

{
  "extends": "@kent7k/tsconfig/node-esm.json",
  "compilerOptions": {
    "rootDir": "src",
    "outDir": "dist"
  },
  "include": ["src"]
}

include/exclude と rootDir/outDir は各パッケージ側で定義する。

設計方針

TS 6.0 で既定値が総入れ替えになる (strict: true, module: esnext, target: es2025, types: [], rootDir: ".", noUncheckedSideEffectImports: true)。 このリポジトリは「6.0 の既定を 5.9 で先取りする層」として機能する。 つまり 6.0 に上げた時点で 何も壊れないのが正しい状態。

  • types: [] を base で固定 — 6.0 で強制されるいちばん影響の大きい変更。 グローバル型が必要な package は "types": ["node"] / ["vitest/globals"] を明示する。
  • module: node20 (not nodenext) — nodenext は TS のバージョン更新で意味が動く。 共有 config が最も避けるべきものなので、engines (node: 22.x) に合わせて固定する。
  • composite: true だけ書く — declaration と incremental は composite に含意される。
  • baseUrl は使わない — 6.0 で解決ルートとして deprecated。paths を tsconfig 相対で書く。
  • CJS 強制の preset は持たない — moduleResolution: node10 が 7.0 で削除されるため。 CJS 出力は package.json の "type": "commonjs" で決める。
  • noUnusedLocals / noUnusedParameters は入れない(lintkit-eslint 側の担当)。
  • exactOptionalPropertyTypes は React props と相性が悪いので入れない。

TypeScript 7.0 について

7.0 (Go ネイティブ) は tsc は速いが programmatic API がない。 typescript-eslint / ts-morph / Next.js の型プラグイン / typed-scss-modules が動かないため、 API が入る 7.1 まで上げない。このリポジトリは 7.0 で削除される option を既に使っていない。

取得と publish

npmjs の public パッケージ(2026-10 に GitHub Packages の private から移した)。consumer の .npmrc に routing も auth も要らない。

pnpm add -D @kent7k/tsconfig

publish はタグ v* の push で .github/workflows/publish.yml が出す(npmjs の trusted publishing=OIDC。token は持たない・同じ版は飛ばす)。 npm login は使わない(~/.npmrc は dotfiles への symlink で、token のリテラルが git に入る)。