Gathering detailed insights and metrics for nice-package
Gathering detailed insights and metrics for nice-package
Gathering detailed insights and metrics for nice-package
Gathering detailed insights and metrics for nice-package
grunt-nice-package
Opinionated package.json validator
@nice-move/prettier-plugin-package-json
A `prettier` plugin to make `package.json` prettier
@nice-move/prettier-config
A `prettier` config created by personal preferences
nice-package-json
[](https://travis-ci.org/bentruyman/nice-package-json)
📦 Clean up messy package metadata from the npm registry
npm install nice-package
Typescript
Module System
Min. Node Version
Node Version
NPM Version
77.1
Supply Chain
98.3
Quality
79.3
Maintenance
100
Vulnerability
99.6
License
JavaScript (100%)
Total Downloads
43,434
Last Day
1
Last Week
17
Last Month
116
Last Year
3,115
37 Stars
87 Commits
7 Forks
1 Watchers
6 Branches
12 Contributors
Updated on May 02, 2025
Minified
Minified + Gzipped
Latest Version
3.1.2
Package Id
nice-package@3.1.2
Unpacked Size
762.90 kB
Size
48.97 kB
File Count
12
NPM Version
6.14.4
Node Version
12.16.1
Cumulative downloads
Total Downloads
Last Day
-66.7%
1
Compared to previous day
Last Week
-26.1%
17
Compared to previous week
Last Month
-54.3%
116
Compared to previous month
Last Year
37.2%
3,115
Compared to previous year
Clean up messy package metadata from the npm registry
The package data served by the npm registry is messy and confusing. The folks at npm, Inc maintain a tool called normalize-package-data which does a lot of work to clean this data up, but the resulting object is still a bit confusing.
nice-package
uses normalize-package-data
as a starter, then does even more
package cleanup:
doc['dist-tags'].latest
as the baseline for package metadatastarsCount
from the users
objectversions
array from the time
object_npmUser
to lastPublisher
, because it's a more intuitive name.maintainers
to owners
, for consistency with the CLI commands.https
format_id
and _from
into an other
object that can easily be omitted.1npm install nice-package --save
nice-package
exports a class. To create a new package instance,
call new Package(doc)
, where doc
is a JSON package object from the npm registry:
1const got = require('got') 2const Package = require('nice-package') 3 4got('https://registry.npmjs.com/express', {json: true}) 5 .then(function (doc) { 6 var pkg = new Package(doc) 7 console.log(JSON.stringify(pkg, null, 2)) 8 })
You can also instantiate a nice package from package.json
data:
1const Package = require('nice-package')
2const pkg = new Package(require('node_modules/express/package.json'))
3
4pkg.dependsOn('array-flatten')
5// => true
You can pick specific properties to return:
1const pkg = new Package(pkgData, {pick: ['name', 'description']}) 2 3// { 4// name: 'tlds', 5// description: 'List of TLDs' 6// }
or you can omit properties.
Sometimes you don't want the other
data, the readme
, etc.
1const pkg = new Package(pkgData, {omit: ['other', 'readme', 'versions']})
Note: pick
and omit
will also accept comma-delimited strings instead
of arrays. This works nicely if you're using query params from a URL as options
to
nice-package
:
1const pkg = new Package(pkgData, {omit: 'other,readme,versions'})
A nice package comes with convenience methods:
pkg.mentions(query)
query
StringPerforms a case-insensitive search against the JSON-stringified object. Returns a Boolean indicating whether the given query is present in the object.
pkg.dependsOn(pkgName)
pkgName
String - The name of another packageReturns a Boolean indicating whether the given pkgName
is listed in dependencies
.
pkg.devDependsOn(pkgName)
pkgName
String - The name of another packageReturns a Boolean indicating whether the given pkgName
is listed in devDependencies
.
pkg.somehowDependsOn(pkgName)
pkgName
String - The name of another packageReturns a Boolean indicating whether the given pkgName
is listed in
dependencies
or devDependencies
.
pkg.depNames
A getter method that returns an array of the dependencies
keys.
pkg.devDepNames
A getter method that returns an array of the devDependencies
keys.
pkg.allDepNames
A getter method that returns an array of all the dependencies
and
devDependencies
keys.
nice-package
uses a JSON schema to validate packages.
The following properties are required:
name
Stringdescription
Stringversion
StringTo determine if a package is valid, use the pkg.valid
getter method:
1pkg.valid 2// => false
To see validation errors on a package, use the pkg.validationErrors
getter method:
1pkg.validationErrors
The result is an array of revalidator errors.
1npm install 2npm test
MIT
💛 Thanks to emilyrose for giving up
the nice-package
name on npm.
Generated by package-json-to-readme
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
0 existing vulnerabilities detected
Reason
Found 3/25 approved changesets -- score normalized to 1
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
license file not detected
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Score
Last Scanned on 2025-06-23
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More