|
|
3 сар өмнө | |
|---|---|---|
| .. | ||
| LICENSE | 3 сар өмнө | |
| README.md | 3 сар өмнө | |
| package.json | 3 сар өмнө | |
Node.js utilities and TypeScript definitions for package.json and tsconfig.json.
# ✨ 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
readPackageJSONimport { readPackageJSON } from "pkg-types";
const localPackageJson = await readPackageJSON();
// or
const packageJson = await readPackageJSON("/fully/resolved/path/to/folder");
writePackageJSONimport { writePackageJSON } from "pkg-types";
await writePackageJSON("path/to/package.json", pkg);
resolvePackageJSONimport { resolvePackageJSON } from "pkg-types";
const filename = await resolvePackageJSON();
// or
const packageJson = await resolvePackageJSON("/fully/resolved/path/to/folder");
readTSConfigimport { readTSConfig } from "pkg-types";
const tsconfig = await readTSConfig();
// or
const tsconfig2 = await readTSConfig("/fully/resolved/path/to/folder");
writeTSConfigimport { writeTSConfig } from "pkg-types";
await writeTSConfig("path/to/tsconfig.json", tsconfig);
resolveTSConfigimport { resolveTSConfig } from "pkg-types";
const filename = await resolveTSConfig();
// or
const tsconfig = await resolveTSConfig("/fully/resolved/path/to/folder");
resolveFileimport { resolveFile } from "pkg-types";
const filename = await resolveFile("README.md", {
startingFrom: id,
rootPattern: /^node_modules$/,
matcher: (filename) => filename.endsWith(".md"),
});
resolveLockFileFind path to the lock file (yarn.lock, package-lock.json, pnpm-lock.yaml, npm-shrinkwrap.json) or throws an error.
import { resolveLockFile } from "pkg-types";
const lockfile = await resolveLockFile(".");
findWorkspaceDirTry to detect workspace dir by in order:
.git directorypackage.json fileIf fails, throws an error.
import { findWorkspaceDir } from "pkg-types";
const workspaceDir = await findWorkspaceDir(".");
Note: In order to make types working, you need to install typescript as a devDependency.
You can directly use typed interfaces:
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.
import type { definePackageJSON } from 'pkg-types'
const pkg = definePackageJSON({})
import type { defineTSConfig } from 'pkg-types'
const pkg = defineTSConfig({})
Published under the MIT license.
Made by @pi0, @danielroe and community 💛