Class Validator Extended

Additional decorator and non-decorator based validation for class-validator.
Alternatives To Class Validator Extended
Select To Compare


Readme

Typescript npm GitHub Workflow Status GitHub Issues libraries.io Codecov npm bundle size Snyk Vulnerabilities for npm package

class-validator-extended

Additional validators for class-validator.

Safe and simple to use

Installation

Use your favorite package manager to install:

npm install class-validator-extended

For obvious reasons, class-validator needs to be installed.

Usage

Just use the decorators like any of the built-in ones:

import { ArrayMinSize } from 'class-validator'
import { ArrayMonotonic } from 'class-validator-extended'

class Foo {
    @ArrayMinSize(2)
    @ArrayMonotonic()
    values: [1, 13, 42]
}

If you don't have Dayjs installed you need to use the minimal export:

import { MaxBigInt } from 'class-validator-extended/dist/minimal'

Please note that Dayjs is an optional dependency and will by default be installed by npm and yarn. To avoid this use npm install --omit optional or yarn install --ignore-optional, respectively.

Validation decorators

For detailed information please read the API docs.

Decorator Description API
Type
@IsBigInt(options?) Checks if the given value is a BigInt.
@IsDayjs(options?) Checks if the given value is a valid Dayjs object.
@IsDuration(options?) Checks if the given value is a valid Dayjs Duration.
@IsNull(options?) Checks if the given value is null.
@IsMap(options?) Checks if the given value is a Map.
@IsSet(options?) Checks if the given value is a Set.
Common
@Nullable(options?) Only validates the given value if it is not null.
@Optional(options?) Only validates the given value if it is not undefined.
Array
@ArrayMonotonic(options?) Checks if the given value is an array sorted in either (strictly) ascending or (strictly) descending order.
@ArraySize(size, options?) Checks if the given value is an array with exatly size elements.
BigInt
@MaxBigInt(maximum, options?) Checks if the given value is a BigInt not greater than maximum.
@MinBigInt(minimum, options?) Checks if the given value is a BigInt not less than minimum.
@NegativeBigInt(options?) Checks if the given value is a BigInt less than zero.
@PositiveBigInt(options?) Checks if the given value is a BigInt greater than zero.
Date
@FutureDate(options?) Checks if the given value is a Date object in the future.
@PastDate(options?) Checks if the given value is a Date object in the past.
Dayjs
@FutureDayjs(options?) Checks if the given value is a valid Dayjs object in the future.
@MaxDayjs(maximum, options?) Checks if the given value is a valid Dayjs object not later than maximum.
@MaxDuration(minimum, options?) Checks if the given value is a valid Dayjs duration not longer than maximum.
@MinDayjs(minimum, options?) Checks if the given value is a valid Dayjs object not earlier than minimum.
@MinDuration(minimum, options?) Checks if the given value is a valid Dayjs duration not shorter than minimum.
@PastDayjs(options?) Checks if the given value is a valid Dayjs object in the past.
Map
@MapContains(required, options?) Checks if the given value is a Map and contains all required values.
@MapContainsKeys(required, options?) Checks if the given value is a Map and contains all required keys.
@MapMaxSize(maximum, options?) Checks if the given value is a Map with no more than maximum entries.
@MapMinSize(minimum, options?) Checks if the given value is a Map with no fewer than minimum entries.
@MapNotContains(forbidden, options?) Checks if the given value is a Map which does not contain any of the forbidden values.
@MapNotContainsKeys(forbidden, options?) Checks if the given value is a Map which does not contain any of the forbidden keys.
@MapNotEmpty(options?) Checks if the given value is a Map with at least one entry.
@MapSize(size, options?) Checks if the given value is a Map with exactly size entries.
@MapUnique(projection, options?) Checks if the given value is a Map without duplicates with regard to the given projection.
@MapUniqueKeys(projection, options?) Checks if the given value is a Map whose keys are all unique with regard to the given projection.
Number
@IsNetworkPort(options?) Checks if the given value is a valid port number.
Set
@SetContains(required, options?) Checks if the given value is a Set and contains all required values.
@SetMaxSize(maximum, options?) Checks if the given value is a Set with no more than maximum values.
@SetMinSize(minimum, options?) Checks if the given value is a Set with no fewer than minimum values.
@SetNotContains(forbidden, options?) Checks if the given value is a Set which does not contain any of the forbidden values.
@SetSize(size, options?) Checks if the given value is a Set with exactly size entries.
@SetNotEmpty(options?) Checks if the given value is a Set with at least one value.
@SetUnique(projection, options?) Checks if the given value is a Set without duplicate values with regard to the given projection.
String
@IsAwsRegion(options?) Checks if the given value is an AWS region string.
@IsAwsARN(options?) Checks if the given value is an AWS ARN string.
@NotMatches(pattern, modifiers?, options?) Checks if the given value is an string that does not match the given regular expression.
Popular Data Processing Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Typescript
Validation