11# pkg-types
22
3- > Node.js utilities and TypeScript definitions for ` package.json ` and ` tsconfig.json `
3+ <!-- automd:badges color=yellow codecov -->
44
5- ```
6- \⍩⃝/
7- ```
5+ [ ![ npm version] ( https://img.shields.io/npm/v/pkg-types?color=yellow )] ( https://npmjs.com/package/pkg-types )
6+ [ ![ npm downloads] ( https://img.shields.io/npm/dm/pkg-types?color=yellow )] ( https://npmjs.com/package/pkg-types )
7+ [ ![ codecov] ( https://img.shields.io/codecov/c/gh/unjs/pkg-types?color=yellow )] ( https://codecov.io/gh/unjs/pkg-types )
8+
9+ <!-- /automd -->
10+
11+ Node.js utilities and TypeScript definitions for ` package.json ` and ` tsconfig.json ` .
812
913## Install
1014
15+ <!-- automd:pm-i -->
16+
1117``` sh
18+ # ✨ Auto-detect
19+ npx nypm install pkg-types
20+
1221# npm
13- npm i pkg-types
22+ npm install pkg-types
1423
1524# yarn
1625yarn add pkg-types
1726
1827# pnpm
19- pnpm add pkg-types
28+ pnpm install pkg-types
29+
30+ # bun
31+ bun install pkg-types
2032```
2133
34+ <!-- /automd -->
35+
2236## Usage
2337
2438### ` readPackageJSON `
2539
2640``` js
27- import { readPackageJSON } from ' pkg-types'
28- const localPackageJson = await readPackageJSON ()
41+ import { readPackageJSON } from " pkg-types" ;
42+ const localPackageJson = await readPackageJSON ();
2943// or
30- const packageJson = await readPackageJSON (' /fully/resolved/path/to/folder' )
44+ const packageJson = await readPackageJSON (" /fully/resolved/path/to/folder" );
3145```
3246
3347### ` writePackageJSON `
3448
3549``` js
36- import { writePackageJSON } from ' pkg-types'
50+ import { writePackageJSON } from " pkg-types" ;
3751
38- await writePackageJSON (' path/to/package.json' , pkg)
52+ await writePackageJSON (" path/to/package.json" , pkg);
3953```
4054
4155### ` resolvePackageJSON `
4256
4357``` js
44- import { resolvePackageJSON } from ' pkg-types'
45- const filename = await resolvePackageJSON ()
58+ import { resolvePackageJSON } from " pkg-types" ;
59+ const filename = await resolvePackageJSON ();
4660// or
47- const packageJson = await resolvePackageJSON (' /fully/resolved/path/to/folder' )
61+ const packageJson = await resolvePackageJSON (" /fully/resolved/path/to/folder" );
4862```
4963
5064### ` readTSConfig `
5165
5266``` js
53- import { readTSConfig } from ' pkg-types'
54- const tsconfig = await readTSConfig ()
67+ import { readTSConfig } from " pkg-types" ;
68+ const tsconfig = await readTSConfig ();
5569// or
56- const tsconfig = await readTSConfig (' /fully/resolved/path/to/folder' )
70+ const tsconfig2 = await readTSConfig (" /fully/resolved/path/to/folder" );
5771```
5872
5973### ` writeTSConfig `
6074
6175``` js
62- import { writeTSConfig } from ' pkg-types'
76+ import { writeTSConfig } from " pkg-types" ;
6377
64- await writeTSConfig (' path/to/tsconfig.json' , tsconfig)
78+ await writeTSConfig (" path/to/tsconfig.json" , tsconfig);
6579```
6680
6781### ` resolveTSConfig `
6882
6983``` js
70- import { resolveTSConfig } from ' pkg-types'
71- const filename = await resolveTSConfig ()
84+ import { resolveTSConfig } from " pkg-types" ;
85+ const filename = await resolveTSConfig ();
7286// or
73- const tsconfig = await resolveTSConfig (' /fully/resolved/path/to/folder' )
87+ const tsconfig = await resolveTSConfig (" /fully/resolved/path/to/folder" );
7488```
7589
7690### ` resolveFile `
7791
7892``` js
79- import { resolveFile } from ' pkg-types'
80- const filename = await resolveFile (' README.md' , {
93+ import { resolveFile } from " pkg-types" ;
94+ const filename = await resolveFile (" README.md" , {
8195 startingFrom: id,
8296 rootPattern: / ^ node_modules$ / ,
83- matcher : filename => filename .endsWith (' .md' ),
84- })
97+ matcher : ( filename ) => filename .endsWith (" .md" ),
98+ });
8599```
86100
87101### ` resolveLockFile `
88102
89103Find path to the lock file (` yarn.lock ` , ` package-lock.json ` , ` pnpm-lock.yaml ` , ` npm-shrinkwrap.json ` ) or throws an error.
90104
91105``` js
92- import { resolveLockFile } from ' pkg-types'
93- const lockfile = await resolveLockFile (' . ' )
106+ import { resolveLockFile } from " pkg-types" ;
107+ const lockfile = await resolveLockFile (" . " );
94108```
95109
96110### ` findWorkspaceDir `
@@ -104,8 +118,8 @@ Try to detect workspace dir by in order:
104118If fails, throws an error.
105119
106120``` js
107- import { findWorkspaceDir } from ' pkg-types'
108- const workspaceDir = await findWorkspaceDir (' . ' )
121+ import { findWorkspaceDir } from " pkg-types" ;
122+ const workspaceDir = await findWorkspaceDir (" . " );
109123```
110124
111125## Types
@@ -115,7 +129,7 @@ const workspaceDir = await findWorkspaceDir('.')
115129You can directly use typed interfaces:
116130
117131``` ts
118- import type { TSConfig , PackageJSON } from ' pkg-types'
132+ import type { TSConfig , PackageJSON } from " pkg-types" ;
119133```
120134
121135You can also use define utils for type support for using in plain ` .js ` files and auto-complete in IDE.
@@ -138,4 +152,13 @@ const pkg = defineTSConfig({})
138152
139153## License
140154
141- MIT - Made with 💛
155+ <!-- automd:contributors license=MIT author="pi0,danielroe" -->
156+
157+ Published under the [ MIT] ( https://github.com/unjs/pkg-types/blob/main/LICENSE ) license.
158+ Made by [ @pi0 ] ( https://github.com/pi0 ) , [ @danielroe ] ( https://github.com/danielroe ) and [ community] ( https://github.com/unjs/pkg-types/graphs/contributors ) 💛
159+ <br ><br >
160+ <a href =" https://github.com/unjs/pkg-types/graphs/contributors " >
161+ <img src =" https://contrib.rocks/image?repo=unjs/pkg-types " />
162+ </a >
163+
164+ <!-- /automd -->
0 commit comments