Skip to content

The simple nestjs library for validating graphql fields

Notifications You must be signed in to change notification settings

JaLe29/nestjs-graphql-validator

Repository files navigation

nestjs graphql validator NPM version

Would you like to validate that your string is not longer than 250 characters? Or is acceptable by regex? You can...

Example usage

In your resolver file

import NestjsGraphqlValidator from 'nestjs-graphql-validator'

@Mutation()
@UsePipes(new NestjsGraphqlValidator({
    email: { maxLen: 255, minLen: 10, rules: ['isEmail'] },
}))
public exampleA(
    @Args('email') email: string,
    @Args('name') name: string,
) {
    // ...
    return { email, name }
}

@Mutation()
@UsePipes(new NestjsGraphqlValidator({
    email: { regExp: /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/ },
}))
public exampleB(
    @Args('email') email: string,
) {
    // ...
}

@Query()
@UsePipes(new NestjsGraphqlValidator({
    number: { max: 20 },
}))
public exampleC(
    @Args('email') email: string,
) {
    // ...
}

@Query()
@UsePipes(new NestjsGraphqlValidator({
    data_email: { maxLen: 255, minLen: 10, rules: ['isEmail'] }, // nested ----> email is in object (data.email)
}))
public exampleD(
    @Args('data') data: { email: string, name: string },
) {
    // ...
}

Email field is validated before body of createUserTest is execuded.

In case of error BadRequestException from import { BadRequestException } from '@nestjs/common'the is throwed.

Supported operations

Name Type
maxLen string
minLen string
min number
max number
regExp regular expression
rules Array of strings
orNull Accept null/undefined value
enum Array of values

(for rules only isEmail is avalible right now)

About

The simple nestjs library for validating graphql fields

Resources

Stars

Watchers

Forks

Packages

No packages published