visulima tsconfig
Find and / or parse the tsconfig.json file from a directory path, this package is built on top of
@visulima/fs, @visulima/path, jsonc-parser and resolve-pkg-maps
[][typescript-url] [![npm-image]][npm-url] [![license-image]][license-url]
Daniel Bannert's open source work is supported by the community on GitHub Sponsors
Features
- Tested against TypeScript for correctness
- Supports comments & dangling commas in tsconfig.json
- Resolves extends
- Fully typed tsconfig.json
- Validates and throws parsing errors
Install
npm install @visulima/tsconfig
yarn add @visulima/tsconfig
pnpm add @visulima/tsconfig
Usage
findTsConfig
Retrieves the TsConfig by searching for the "tsconfig.json" file from a given current working directory.
import { findTsConfig } from "@visulima/tsconfig";
const tsconfig = await findTsConfig(); // => { path: "/Users/../Projects/visulima/packages/tsconfig/tsconfig.json", config: { compilerOptions: { ... } } }
writeTsConfig
Writes the provided TypeScript configuration object to a tsconfig.json file.
import { writeTsConfig } from '@visulima/package';
writeTsConfig({ compilerOptions: { ... } }/* ,{ cwd: "./" }*/);
readTsConfig
Reads the TypeScript configuration from a tsconfig.json file.
import { readTsConfig } from "@visulima/package";
const tsconfig = await readTsConfig("/Users/../Projects/visulima/packages/tsconfig.json" /* { tscCompatible: false } */);
tscCompatible: If true, the configuration will be parsed in a way that is compatible with the TypeScript compiler.
Api Docs
@visulima/tsconfig
File
TsConfigJson
type TsConfigJson = object;
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1
Type for TypeScript's tsconfig.json
file (TypeScript 3.7).
Properties
compileOnSave?
optional compileOnSave: boolean;
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1264
Enable Compile-on-Save for this project.
compilerOptions?
optional compilerOptions: CompilerOptions;
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1249
Instructs the TypeScript compiler how to compile .ts
files.
exclude?
optional exclude: string[];
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1281
Specifies a list of files to be excluded from compilation. The exclude
property only affects the files included via the include
property and not the files
property.
Glob patterns require TypeScript version 2.0 or later.
extends?
optional extends: string | string[];
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1269
Path to base configuration file to inherit from.
files?
optional files: string[];
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1274
If no files
or include
property is present in a tsconfig.json
, the compiler defaults to including all files in the containing directory and subdirectories except those specified by exclude
. When a files
property is specified, only those files and those specified by include
are included.
include?
optional include: string[];
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1288
Specifies a list of glob patterns that match files to be included in compilation.
If no files
or include
property is present in a tsconfig.json
, the compiler defaults to including all files in the containing directory and subdirectories except those specified by exclude
.
references?
optional references: References[];
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1293
Referenced projects.
typeAcquisition?
optional typeAcquisition: TypeAcquisition;
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1259
Auto type (.d.ts) acquisition options for this project.
watchOptions?
optional watchOptions: WatchOptions;
Defined in: node_modules/.pnpm/type-fest@4.41.0/node_modules/type-fest/source/tsconfig-json.d.ts:1254
Instructs the TypeScript compiler how to watch files.
Other
findTsConfig()
function findTsConfig(cwd?, options?): Promise<TsConfigResult>;
Defined in: packages/tsconfig/src/find-tsconfig.ts:30
An asynchronous function that retrieves the TSConfig by searching for the "tsconfig.json" first, second attempt is to look for the "jsconfig.json" file from a given current working directory.
Parameters
cwd?
Optional. The current working directory from which to search for the "tsconfig.json" file.
The type of cwd
is string
.
string
| URL
options?
FindTsConfigOptions
= {}
Returns
Promise
<TsConfigResult
>
A Promise
that resolves to the TSConfig result object.
The return type of the function is Promise<TsConfigResult>
.
Throws
An Error
when the "tsconfig.json" file is not found.
findTsConfigSync()
function findTsConfigSync(cwd?, options?): TsConfigResult;
Defined in: packages/tsconfig/src/find-tsconfig.ts:69
Parameters
cwd?
string
| URL
options?
FindTsConfigOptions
= {}
Returns
readTsConfig()
function readTsConfig(tsconfigPath, options?): object;
Defined in: packages/tsconfig/src/read-tsconfig.ts:460
Parameters
tsconfigPath
string
options?
Returns
compileOnSave?
optional compileOnSave: boolean;
Enable Compile-on-Save for this project.
compilerOptions?
optional compilerOptions: CompilerOptions;
Instructs the TypeScript compiler how to compile .ts
files.
exclude?
optional exclude: string[];
Specifies a list of files to be excluded from compilation. The exclude
property only affects the files included via the include
property and not the files
property.
Glob patterns require TypeScript version 2.0 or later.
files?
optional files: string[];
If no files
or include
property is present in a tsconfig.json
, the compiler defaults to including all files in the containing directory and subdirectories except those specified by exclude
. When a files
property is specified, only those files and those specified by include
are included.
include?
optional include: string[];
Specifies a list of glob patterns that match files to be included in compilation.
If no files
or include
property is present in a tsconfig.json
, the compiler defaults to including all files in the containing directory and subdirectories except those specified by exclude
.
references?
optional references: References[];
Referenced projects.
typeAcquisition?
optional typeAcquisition: TypeAcquisition;
Auto type (.d.ts) acquisition options for this project.
watchOptions?
optional watchOptions: WatchOptions;
Instructs the TypeScript compiler how to watch files.
writeTsConfig()
function writeTsConfig(tsConfig, options): Promise<void>;
Defined in: packages/tsconfig/src/write-tsconfig.ts:17
An asynchronous function that writes the provided TypeScript configuration object to a tsconfig.json file.
Parameters
tsConfig
The TypeScript configuration object to write. The type of tsConfig
is TsConfigJson
.
options
WriteFileOptions
& object
& object
= {}
Optional. The write options and the current working directory. The type of options
is an
intersection type of WriteOptions
and a Record type with an optional cwd
key of type string
.
Returns
Promise
<void
>
A Promise
that resolves when the tsconfig.json file has been written.
The return type of function is Promise<void>
.
writeTsConfigSync()
function writeTsConfigSync(tsConfig, options): void;
Defined in: packages/tsconfig/src/write-tsconfig.ts:35
A function that writes the provided TypeScript configuration object to a tsconfig.json file.
Parameters
tsConfig
The TypeScript configuration object to write. The type of tsConfig
is TsConfigJson
.
options
WriteFileOptions
& object
& object
= {}
Optional. The write options and the current working directory. The type of options
is an
intersection type of WriteOptions
and a Record type with an optional cwd
key of type string
.
Returns
void
A Promise
that resolves when the tsconfig.json file has been written.
The return type of function is Promise<void>
.
implicitBaseUrlSymbol
const implicitBaseUrlSymbol: typeof implicitBaseUrlSymbol;
Defined in: packages/tsconfig/src/read-tsconfig.ts:457
FindTsConfigOptions
type FindTsConfigOptions = ReadTsConfigOptions & object;
Defined in: packages/tsconfig/src/find-tsconfig.ts:10
Type declaration
cache?
optional cache:
| Map<string, TsConfigJsonResolved>
| boolean;
configFileName?
optional configFileName: string;
ReadTsConfigOptions
type ReadTsConfigOptions = object;
Defined in: packages/tsconfig/src/read-tsconfig.ts:444
Properties
tscCompatible?
optional tscCompatible: "5.3" | "5.4" | "5.5" | "5.6" | true;
Defined in: packages/tsconfig/src/read-tsconfig.ts:452
Make the configuration compatible with the specified TypeScript version.
When true
, it will make the configuration compatible with the latest TypeScript version.
Default
undefined
TsConfigJsonResolved
type TsConfigJsonResolved = Except<TsConfigJson, "extends">;
Defined in: packages/tsconfig/src/types.ts:3
TsConfigResult
type TsConfigResult = object;
Defined in: packages/tsconfig/src/find-tsconfig.ts:15
Properties
config
config: TsConfigJsonResolved;
Defined in: packages/tsconfig/src/find-tsconfig.ts:16
path
path: string;
Defined in: packages/tsconfig/src/find-tsconfig.ts:17
Related
- get-tsconfig - Get the TypeScript configuration from a project.
Supported Node.js Versions
Libraries in this ecosystem make the best effort to track Node.js’ release schedule. Here’s a post on why we think this is important.
Contributing
If you would like to help take a look at the list of issues and check our Contributing guidelines.
Note: please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Credits
License
The visulima tsconfig is open-sourced software licensed under the [MIT][license-url]
[typescript-url]: https://www.typescriptlang.org/ "TypeScript" "typescript" [license-image]: https://img.shields.io/npm/l/@visulima/tsconfig?color=blueviolet&style=for-the-badge [license-url]: LICENSE.md "license" [npm-image]: https://img.shields.io/npm/v/@visulima/tsconfig/latest.svg?style=for-the-badge&logo=npm [npm-url]: https://www.npmjs.com/package/@visulima/tsconfig/v/latest "npm"