4.0.0 • Published 3 months ago

class-validator-extended v4.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

Typescript npm GitHub Workflow Status GitHub Issues libraries.io Codecov npm bundle size

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.

DecoratorDescriptionAPI
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 exactly 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.🔗
4.0.0

3 months ago

3.1.2

9 months ago

3.2.0

5 months ago

3.1.1

10 months ago

3.1.0

1 year ago

3.0.0

1 year ago

2.0.0

1 year ago

1.1.1

1 year ago

1.1.0

2 years ago

1.0.0

2 years ago

0.0.3

2 years ago

0.0.2-beta

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.6

2 years ago

0.0.1-beta

3 years ago