Additional validators for class-validator.
npm install class-validator-extended!Typescript

!GitHub Workflow Status




> Additional validators for class-validator.
#### Safe and simple to use
- 🕵️♀️ Thoroughly tested
- 📝 Well documented
- ✨ No additional dependencies (Day.js is supported but optional)
- 😊 Uses Semantic Versioning and keeps a nice Changelog
Use your favorite package manager to install:
``bash`
npm install class-validator-extended
For obvious reasons, class-validator needs to be installed.
Just use the decorators like any of the built-in ones:
`typescript
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:
`typescript`
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.
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. | 🔗 |@Nullable(options?)
| Common | | |
| | Only validates the given value if it is not null. | 🔗 |@Optional(options?)
| | Only validates the given value if it is not undefined. | 🔗 |@ArrayMonotonic(options?)
| Array | | |
| | 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. | 🔗 |@MaxBigInt(maximum, options?)
| BigInt | | |
| | 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. | 🔗 |@FutureDate(options?)
| Date | | |
| | 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. | 🔗 |@FutureDayjs(options?)
| Dayjs | | |
| | 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. | 🔗 |@MapContains(required, options?)
| Map | | |
| | 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. | 🔗 |@IsNetworkPort(options?)
| Number | | |
| | Checks if the given value is a valid port number. | 🔗 |@SetContains(required, options?)
| Set | | |
| | 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. | 🔗 |@IsAwsRegion(options?)
| String | | |
| | Checks if the given value is an AWS region string. deprecated | 🔗 |@IsAwsARN(options?)
| | Checks if the given value is an AWS ARN string. deprecated | 🔗 |@NotMatches(pattern, modifiers?, options?)` | Checks if the given value is an string that does not match the given regular expression. | 🔗 |
|