Skip to content
/ tsconfck Public
forked from dominikg/tsconfck

A utility to find and parse tsconfig files without depending on typescript

Notifications You must be signed in to change notification settings

sxzz/tsconfck

 
 

Repository files navigation

tsconfck

npm version CI

A utility to find and parse tsconfig files without depending on typescript

Why

Because no simple official api exists and tsconfig isn't actual json.

Features

  • find closest tsconfig (tsconfig.json or jsconfig.json)
  • convert tsconfig to actual json and parse it
  • resolve "extends"
  • resolve "references" of solution-style tsconfig
  • resolve "${configDir}" variable
  • optional caching for improved performance
  • optional findNative and parseNative to use official typescript api
  • zero dependencies (typescript optional)
  • extensive testsuite
  • completely async and optimized (it's fast)
  • tiny 4.7KB gzip
  • unbundled esm js, no sourcemaps needed
  • types generated with dts-buddy

Users

Used by vite*, vite-tsconfig-paths, astro and many more

(*) vite bundles tsconfck so it is listed as a devDependency

Install

npm install --save-dev tsconfck # or pnpm, yarn

Usage

import { parse } from 'tsconfck';
const {
	tsconfigFile, // full path to found tsconfig
	tsconfig, // tsconfig object including merged values from extended configs
	extended, // separate unmerged results of all tsconfig files that contributed to tsconfig
	solution, // solution result if tsconfig is part of a solution
	referenced // referenced tsconfig results if tsconfig is a solution
} = await parse('foo/bar.ts');

Links

package readme api changelog

Develop

This repo uses

In every PR you have to add a changeset by running pnpm changeset and following the prompts

PRs are going to be squash-merged

# install dependencies
pnpm install
# run tests
pnpm test

License

MIT

About

A utility to find and parse tsconfig files without depending on typescript

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages

  • JavaScript 100.0%