Home

Awesome

validator.js-asserts

A set of extra asserts for validator.js.

Status

npm version build status

Installation

Install the package via npm:

$ npm install --save validator.js-asserts

Peer dependencies

Some asserts require manually installing some peer dependencies. Failing to do so will result in runtime errors, as packages are required dynamically.

Peer dependencies are not listed on package.json because npm 2 considers them mandatory peer dependencies and, therefore, always installs them, while npm 3 follows a more consensual approach of optional peer dependencies, not installing them by default but generating warning and confusing error messages instead.

You should pin these package's peer dependencies to the ranges listed on the optionalPeerDependencies key of this package's manifest.

Asserts

The following set of extra asserts are provided by this package:

AbaRoutingNumber

Tests if the value is a valid ABA Routing Number.

BankIdentifierCode (BIC)

Tests if the value is a valid Bank Identifier Code (BIC) as defined in the ISO-9362 standard.

BigNumber

Tests if the value is a valid BigNumber.

BigNumberEqualTo

Tests if a BigNumber is equal to a given value.

Arguments

BigNumberGreaterThan

Tests if a BigNumber is greater than a given threshold.

Arguments

BigNumberGreaterThanOrEqualTo

Tests if a BigNumber is greater than or equal to a given threshold.

Arguments

BigNumberLessThan

Tests if a BigNumber is less than a given threshold.

Arguments

BigNumberLessThanOrEqualTo

Tests if a BigNumber is less than or equal to a given threshold.

Arguments

Boolean

Tests if the value is a boolean.

Callback

Allows you to add custom rules by giving a callback function and a custom class.

Arguments

CpfNumber

Tests if the value is valid CPF number.

CreditCard

Tests if the value is a valid credit card number using the Luhn10 algorithm.

CurpNumber

Tests if the value is valid CURP number.

Date

Tests if the value is a valid date.

Arguments

DateDiffGreaterThan

Tests if the difference between two dates is greater than a given threshold.

Arguments

DateDiffGreaterThanOrEqualTo

Tests if the difference between two dates is greater than or equal to a given threshold.

Arguments

DateDiffLessThan

Tests if the difference between two dates is less than a given threshold.

Arguments

DateDiffLessThanOrEqualTo

Tests if the difference between two dates is less than or equal to a given threshold.

Arguments

Email

Tests if the value is a valid email.

EqualKeys

Tests if the object has the exact given set of keys (missing or extra keys are not allowed).

Arguments

Hash

Tests if the value is a valid hash.

Arguments

Integer

Tests if the value is an integer.

InternationalBankAccountNumber (IBAN)

Tests if the value is a valid International Bank Account Number (IBAN) as defined in the 13616-1 standard.

Ip

Tests if the value is a valid ip (v4 or v6).

Iso3166Country

Tests if the value is a valid ISO-3166 country by alpha-3 code, alpha-2 code, short name or uppercase name. All officially-assigned, transitionally-assigned and user-assigned codes are considered valid.

Json

Tests if the value is valid json.

NotEmpty

Tests if the value is not an empty (empty object, empty array, empty string, etc).

NullOr

Tests if the value is a null or validates agains the assert received as an argument.

NullOrBoolean

Tests if the value is a null or boolean.

NullOrString

Tests if the value is a null or string, optionally within some boundaries.

Arguments

Phone

Tests if the phone is valid and optionally if it belongs to the given country. The phone can be in the national or E164 formats.

Arguments

PlainObject

Tests if the value is a plain object.

RfcNumber

Tests if the value is a valid RFC number.

TaxpayerIdentificationNumber

Tests if the value is a valid Taxpayer Identification Number (TIN) as defined by the U.S. IRS.

UkModulusChecking

Tests if the given accountNumber and sortCode represent a valid Faster Payment Account.

Uri

Tests if the value is a valid uri which must contain at least a protocol and a hostname.

Arguments

UsSubdivision

Tests if the value is a valid US subdivision or not. By default, codes in the short ("alpha2", e.g. CA) or full form (e.g. US-CA) are allowed. All US subdivisions categories are supported: districts (1), states (50) and outlying territories (6).

Arguments

UsZipCode

Tests if the value is a valid US zip code.

Uuid

Tests if the value is a valid uuid.

Arguments

Usage

The following is an example for the extra ip assert:

const Validator = require('validator.js').Validator;
const is = require('validator.js').Assert.extend(require('validator.js-asserts'));
const validator = new Validator();

// Validate ip `1.3.3.7`.
let violation = validator.validate('1.3.3.7', is.ip());

if (true === violation) {
  console.log('"1.3.3.7" is a valid IP'); // => "1.3.3.7" is a valid IP
}

// Validate ip `foo`.
violation = validator.validate('foo', is.ip());

if (true !== violation) {
  console.log('"foo" is not a valid IP. Violation:', violation[0].show());
  // => "foo" is not a valid IP. Violation: { assert: 'Ip', value: 'foo' }
}

// Make the validation nullable.
violation = validator.validate(null, is.nullOr(is.ip()));

if (true === violation) {
  console.log('null is null or a valid IP'); // => null is null or a valid IP
}

Tests

$ npm test

Release process

The release of a version is automated via the release GitHub workflow. Run it by clicking the "Run workflow" button.

License

MIT