Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
pkg-types
Advanced tools
Changelog
v1.1.0
extends
as array (#151)imports
field to the types (#160)jsonc-parser
to unjs/confbox
(#174)Readme
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
readPackageJSON
import { readPackageJSON } from "pkg-types";
const localPackageJson = await readPackageJSON();
// or
const packageJson = await readPackageJSON("/fully/resolved/path/to/folder");
writePackageJSON
import { writePackageJSON } from "pkg-types";
await writePackageJSON("path/to/package.json", pkg);
resolvePackageJSON
import { resolvePackageJSON } from "pkg-types";
const filename = await resolvePackageJSON();
// or
const packageJson = await resolvePackageJSON("/fully/resolved/path/to/folder");
readTSConfig
import { readTSConfig } from "pkg-types";
const tsconfig = await readTSConfig();
// or
const tsconfig2 = await readTSConfig("/fully/resolved/path/to/folder");
writeTSConfig
import { writeTSConfig } from "pkg-types";
await writeTSConfig("path/to/tsconfig.json", tsconfig);
resolveTSConfig
import { resolveTSConfig } from "pkg-types";
const filename = await resolveTSConfig();
// or
const tsconfig = await resolveTSConfig("/fully/resolved/path/to/folder");
resolveFile
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.
import { resolveLockFile } from "pkg-types";
const lockfile = await resolveLockFile(".");
findWorkspaceDir
Try 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 💛
FAQs
Node.js utilities and TypeScript definitions for `package.json` and `tsconfig.json`
The npm package pkg-types receives a total of 4,765,076 weekly downloads. As such, pkg-types popularity was classified as popular.
We found that pkg-types demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.