Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

class-validator-extended

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

class-validator-extended

Additional validators for class-validator.

  • 4.0.0
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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.🔗

Keywords

FAQs

Package last updated on 19 Feb 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc