Awesome
squatter
Check if a namespace on npm is being hogged.
Why?
- Find out if a package name is worth disputing.
- Filter out low quality packages in tools (e.g. search).
- Check the quality of your own packages.
Install
npm install squatter --save
Usage
Get it into your program.
const squatter = require('squatter');
Check whether a given package name is being squatted.
squatter('foo').then((isSquatted) => {
console.log(isSquatted); // true
});
squatter('build-path').then((isSquatted) => {
console.log(isSquatted); // false
});
Algorithm
A heuristic is used to determine if a package is a squatter.
A squatter is a package that is not either exempt, useful, or high quality.
Packages are guilty until proven innocent.
Exemptions
A package is exempt (aka not a squatter) if it has at least one of:
- A new version was published within the last 30 days
- Significant download activity
Usefulness
A package is useful (aka not a squatter) if it has all of:
- A README that is at least 100 characters long
- Has a binary or is depended on by another package
- Its version is 1.0.0 or higher
Quality
A package is high quality (aka not a squatter) if it has at least 80% of:
- Uses non-dev dependencies
- Specifies required engines
- Uses a files whitelist
- Uses a test script
- Has keywords
- Has multiple maintainers
API
squatter(name)
Returns a Promise
for a boolean
of whether the name is being hogged on npm, as determined by the algorithm.
name
Type: string
<br>
Example: build-path
Any valid npm package name.
CLI
See squatter-cli to use this on the command line.
Contributing
See our contributing guidelines for more details.
- Fork it.
- Make a feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request.
License
Go make something, dang it.