Skip to content

romnn/npm-package-validator

Repository files navigation

npm-package-validator

Build Status

PyPI version

License

Test Coverage


This python package allows you to validate npm package names. It is a python implementation of the official npm/validate-npm-package-name package for javascript.

$ pip install npm_package_validator

CLI Usage

$ npm_package_validator my-package

Programmatic usage

Validate an npm package name like this:

import npm_package_validator
# Fails! Uppercase is not allowed for new packages
assert npm_package_validator.valid_new_package('MY-package')

However, upper case once has been allowed and you can also validate old, existing packages:

assert npm_package_validator.valid_old_package('MY-package')  # Succeeds!

When using the CLI, you can use the --old flag.

If you want to know whats wrong with a name, use:

from npm_package_validator.validate import validate_package
errors, warnings = validate_package('MY-package')
print("Errors: %s" % ", ".join(errors))
print("Warnings: %s" % ", ".join(warnings))

A valid new package name must have neither errors nor warnings. Existing packages can have warnings, as the npm validation rules have become stricter over time.

Credits

This package is a port from the official npm/validate-npm-package-name

Development

For detailed instructions see CONTRIBUTING.

Tests

You can run tests with

$ invoke test
$ invoke test --min-coverage=90     # Fail when code coverage is below 90%
$ invoke type-check                 # Run mypy type checks

Linting and formatting

Lint and format the code with

$ invoke format
$ invoke lint

All of this happens when you run invoke pre-commit.

Note

This project is still in the alpha stage and should not be considered production ready.