@rowanmanning/package-json
v2.1.0
Published
Load and parse package.json and package-lock.json files
Readme
@rowanmanning/package-json
Load and parse package.json and package-lock.json files.
Requirements
This library requires the following to run:
- Node.js 20+
Usage
Install with npm:
npm install @rowanmanning/package-jsonLoad into your code with import or require:
import { packageJson, packageLock } from '@rowanmanning/package-json';
// or
const { packageJson, packageLock } = require('@rowanmanning/package-json');The following exports are available.
packageJson.fromDirectory()
Load the package.json file present in a given directory.
(path: string) => Promise<PackageJson>The path argument is required and must be an accessible folder that contains a package.json file.
const pkg = await packageJson.fromDirectory('/path/to/my/repo');
// { name: 'my-package', version: '1.0.0', ... }packageJson.fromFile()
Load the package.json file at a given file path.
(path: string) => Promise<PackageJson>The path argument is required and must be an accessible JSON file.
const pkg = await packageJson.fromFile('/path/to/my/repo/package.json');
// { name: 'my-package', version: '1.0.0', ... }packageJson.fromString()
Parse a JSON string as a package.json file.
(jsonString: string) => PackageJsonThe jsonString argument is required and must be valid JSON.
const pkg = await packageJson.fromString('{"name": "my-package", "version": "1.0.0"}');
// { name: 'my-package', version: '1.0.0' }packageJson.fromObject()
Verify whether a JavaScript object meets the basic standards for a package.json file (e.g. has a name and version property).
(object: any) => PackageJsonThe jsonString argument is required and must be valid JSON.
const pkg = await packageJson.fromObject({
name: 'my-package',
version: '1.0.0'
});
// { name: 'my-package', version: '1.0.0' }
const pkg = await packageJson.fromObject({});
// Throws an errorpackageLock.fromDirectory()
Load the package-lock.json file present in a given directory.
(path: string) => Promise<PackageLock>The path argument is required and must be an accessible folder that contains a package-lock.json file.
const pkg = await packageLock.fromDirectory('/path/to/my/repo');
// { lockfileVersion: 3, name: 'my-package', version: '1.0.0', ... }packageLock.fromFile()
Load the package-lock.json file at a given file path.
(path: string) => Promise<PackageLock>The path argument is required and must be an accessible JSON file.
const pkg = await packageLock.fromFile('/path/to/my/repo/package-lock.json');
// { lockfileVersion: 3, name: 'my-package', version: '1.0.0', ... }packageLock.fromString()
Parse a JSON string as a package-lock.json file.
(jsonString: string) => PackageLockThe jsonString argument is required and must be valid JSON.
const pkg = await packageLock.fromString('{"lockfileVersion": 3, "name": "my-package", "version": "1.0.0"}');
// { lockfileVersion: 3, name: 'my-package', version: '1.0.0' }packageLock.fromObject()
Verify whether a JavaScript object meets the basic standards for a package-lock.json file (e.g. has a valid lockfileVersion, name and version property).
(object: any) => PackageLockThe jsonString argument is required and must be valid JSON.
const pkg = await packageLock.fromObject({
lockfileVersion: 3,
name: 'my-package',
version: '1.0.0'
});
// { lockfileVersion: 3, name: 'my-package', version: '1.0.0' }
const pkg = await packageLock.fromObject({});
// Throws an errorContributing
See the central README for a contribution guide and code of conduct.
License
Licensed under the MIT license. Copyright © 2024, Rowan Manning
