Skip to content

sholladay/squatter

Repository files navigation

squatter Build status for Squatter Build status for Squatter on Windows

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:

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
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.

  1. Fork it.
  2. Make a feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request.

License

MPL-2.0 © Seth Holladay

Go make something, dang it.