This commit is contained in:
44
node_modules/pkg-types/LICENSE
generated
vendored
Normal file
44
node_modules/pkg-types/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) Pooya Parsa <pooya@pi0.io> - Daniel Roe <daniel@roe.dev>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Copyright Joyent, Inc. and other Node contributors.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||
persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
167
node_modules/pkg-types/README.md
generated
vendored
Normal file
167
node_modules/pkg-types/README.md
generated
vendored
Normal file
@@ -0,0 +1,167 @@
|
||||
# pkg-types
|
||||
|
||||
<!-- automd:badges color=yellow codecov -->
|
||||
|
||||
[](https://npmjs.com/package/pkg-types)
|
||||
[](https://npm.chart.dev/pkg-types)
|
||||
[](https://codecov.io/gh/unjs/pkg-types)
|
||||
|
||||
<!-- /automd -->
|
||||
|
||||
Node.js utilities and TypeScript definitions for `package.json` and `tsconfig.json`.
|
||||
|
||||
## Install
|
||||
|
||||
<!-- automd:pm-i -->
|
||||
|
||||
```sh
|
||||
# ✨ Auto-detect
|
||||
npx nypm install pkg-types
|
||||
|
||||
# npm
|
||||
npm install pkg-types
|
||||
|
||||
# yarn
|
||||
yarn add pkg-types
|
||||
|
||||
# pnpm
|
||||
pnpm install pkg-types
|
||||
|
||||
# bun
|
||||
bun install pkg-types
|
||||
|
||||
# deno
|
||||
deno install pkg-types
|
||||
```
|
||||
|
||||
<!-- /automd -->
|
||||
|
||||
## Usage
|
||||
|
||||
### `readPackageJSON`
|
||||
|
||||
```js
|
||||
import { readPackageJSON } from "pkg-types";
|
||||
const localPackageJson = await readPackageJSON();
|
||||
// or
|
||||
const packageJson = await readPackageJSON("/fully/resolved/path/to/folder");
|
||||
```
|
||||
|
||||
### `writePackageJSON`
|
||||
|
||||
```js
|
||||
import { writePackageJSON } from "pkg-types";
|
||||
|
||||
await writePackageJSON("path/to/package.json", pkg);
|
||||
```
|
||||
|
||||
### `resolvePackageJSON`
|
||||
|
||||
```js
|
||||
import { resolvePackageJSON } from "pkg-types";
|
||||
const filename = await resolvePackageJSON();
|
||||
// or
|
||||
const packageJson = await resolvePackageJSON("/fully/resolved/path/to/folder");
|
||||
```
|
||||
|
||||
### `readTSConfig`
|
||||
|
||||
```js
|
||||
import { readTSConfig } from "pkg-types";
|
||||
const tsconfig = await readTSConfig();
|
||||
// or
|
||||
const tsconfig2 = await readTSConfig("/fully/resolved/path/to/folder");
|
||||
```
|
||||
|
||||
### `writeTSConfig`
|
||||
|
||||
```js
|
||||
import { writeTSConfig } from "pkg-types";
|
||||
|
||||
await writeTSConfig("path/to/tsconfig.json", tsconfig);
|
||||
```
|
||||
|
||||
### `resolveTSConfig`
|
||||
|
||||
```js
|
||||
import { resolveTSConfig } from "pkg-types";
|
||||
const filename = await resolveTSConfig();
|
||||
// or
|
||||
const tsconfig = await resolveTSConfig("/fully/resolved/path/to/folder");
|
||||
```
|
||||
|
||||
### `resolveFile`
|
||||
|
||||
```js
|
||||
import { resolveFile } from "pkg-types";
|
||||
const filename = await resolveFile("README.md", {
|
||||
startingFrom: id,
|
||||
rootPattern: /^node_modules$/,
|
||||
matcher: (filename) => filename.endsWith(".md"),
|
||||
});
|
||||
```
|
||||
|
||||
### `resolveLockFile`
|
||||
|
||||
Find path to the lock file (`yarn.lock`, `package-lock.json`, `pnpm-lock.yaml`, `npm-shrinkwrap.json`) or throws an error.
|
||||
|
||||
```js
|
||||
import { resolveLockFile } from "pkg-types";
|
||||
const lockfile = await resolveLockFile(".");
|
||||
```
|
||||
|
||||
### `findWorkspaceDir`
|
||||
|
||||
Try to detect workspace dir by in order:
|
||||
|
||||
1. Nearest `.git` directory
|
||||
2. Farthest lockfile
|
||||
3. Farthest `package.json` file
|
||||
|
||||
If fails, throws an error.
|
||||
|
||||
```js
|
||||
import { findWorkspaceDir } from "pkg-types";
|
||||
const workspaceDir = await findWorkspaceDir(".");
|
||||
```
|
||||
|
||||
## Types
|
||||
|
||||
**Note:** In order to make types working, you need to install `typescript` as a devDependency.
|
||||
|
||||
You can directly use typed interfaces:
|
||||
|
||||
```ts
|
||||
import type { TSConfig, PackageJSON } from "pkg-types";
|
||||
```
|
||||
|
||||
You can also use define utils for type support for using in plain `.js` files and auto-complete in IDE.
|
||||
|
||||
```js
|
||||
import type { definePackageJSON } from 'pkg-types'
|
||||
|
||||
const pkg = definePackageJSON({})
|
||||
```
|
||||
|
||||
```js
|
||||
import type { defineTSConfig } from 'pkg-types'
|
||||
|
||||
const pkg = defineTSConfig({})
|
||||
```
|
||||
|
||||
## Alternatives
|
||||
|
||||
- [dominikg/tsconfck](https://github.com/dominikg/tsconfck)
|
||||
|
||||
## License
|
||||
|
||||
<!-- automd:contributors license=MIT author="pi0,danielroe" -->
|
||||
|
||||
Published under the [MIT](https://github.com/unjs/pkg-types/blob/main/LICENSE) license.
|
||||
Made by [@pi0](https://github.com/pi0), [@danielroe](https://github.com/danielroe) and [community](https://github.com/unjs/pkg-types/graphs/contributors) 💛
|
||||
<br><br>
|
||||
<a href="https://github.com/unjs/pkg-types/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=unjs/pkg-types" />
|
||||
</a>
|
||||
|
||||
<!-- /automd -->
|
||||
47
node_modules/pkg-types/package.json
generated
vendored
Normal file
47
node_modules/pkg-types/package.json
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "pkg-types",
|
||||
"version": "1.3.1",
|
||||
"description": "Node.js utilities and TypeScript definitions for `package.json` and `tsconfig.json`",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.cjs",
|
||||
"sideEffects": false,
|
||||
"exports": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/index.mjs",
|
||||
"require": "./dist/index.cjs"
|
||||
},
|
||||
"types": "./dist/index.d.ts",
|
||||
"repository": "unjs/pkg-types",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"prepack": "pnpm build",
|
||||
"dev": "vitest --typecheck",
|
||||
"release": "pnpm test && changelogen --release && npm publish && git push --follow-tags",
|
||||
"lint": "eslint && prettier -c src test",
|
||||
"lint:fix": "automd && eslint --fix . && prettier -w src test",
|
||||
"test": "vitest run --typecheck --coverage"
|
||||
},
|
||||
"dependencies": {
|
||||
"confbox": "^0.1.8",
|
||||
"mlly": "^1.7.4",
|
||||
"pathe": "^2.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.10.6",
|
||||
"@vitest/coverage-v8": "^2.1.8",
|
||||
"automd": "^0.3.12",
|
||||
"changelogen": "^0.5.7",
|
||||
"eslint": "^9.18.0",
|
||||
"eslint-config-unjs": "^0.4.2",
|
||||
"expect-type": "^1.1.0",
|
||||
"jiti": "^2.4.2",
|
||||
"prettier": "^3.4.2",
|
||||
"typescript": "^5.7.3",
|
||||
"unbuild": "^3.3.1",
|
||||
"vitest": "^2.1.8"
|
||||
},
|
||||
"packageManager": "pnpm@9.15.4"
|
||||
}
|
||||
Reference in New Issue
Block a user