TypeScript icon, indicating that this package has built-in type declarations

7.6.0 • Public • Published


Find more at libraries and examples at NgServe.io.

Read More at Angular Tutorial - Sharing Validations Between Angular and NestJs

Running unit tests

Run nx test shared-api-validator to execute the unit tests via Jest.


The purpose of the @ngserveio/you-good-nest library allows developers to centralize their validations for the model in the body of the request. It can be used in conjunction with @ngserveio/you-good and @ngserveio/form-services.

Validations can be shared between both the front end and backend per a combination of the services packages listed above.

See the Video Tutorial on YouTube

Shared Validators for Angular and NestJS


Below is a sample validator that can be used between an Angular application and a NestJs application.

type ModelT = {
  firstName: string;
  email: string;
  url: string;
  jerseyNumber: number | null;

const model: ModelT = {
  firstName: 'Steve',
  email: 's@s.com',
  url: 'https://detroitredwings.com',
  jerseyNumber: null,

const modelTValidator: (item: T) => PropertyValidationErrors<T> =
    firstName: propertyValidators((p) => p.firstName, [required]),
    email: propertyValidators((p) => p.email, [required, email]),
    url: propertyValidators((p) => p.url, [url]),
    jerseyNumber: propertyValidators((p) => p.jerseyNumber, [required]),

modelTValidator(model); // { jerseyNumber: { required: true } }

To consume this in a Nest Application import the ValidatorInterceptorFactory from the @ngserveio/you-good-nest package.

import { Body, Controller, Post, UseInterceptors } from '@nestjs/common';
import { ValidatorInterceptorFactory } from '@ngserveio/you-good-nest';
import { emailValidator, EmailListSignup } from '@ng-serve-io/common';

export class AppController {
  public postData(@Body() emailList: EmailListSignup) {
    return emailList;

On the intercept of the request, the interceptor checks for a request body and that it passed validations. Client will receive a BadRequestException if the checks fail.

The client is left to interpret the friendly error message.

  "response": {
    "email": {
      // "email" is a property on the validator
      "required": true,
      "email": false // email is a validator returning a false value
  "status": 400,
  "message": "Bad Request Exception"

Package Sidebar


npm i @ngserveio/you-good-nest

Weekly Downloads






Unpacked Size

6.63 kB

Total Files


Last publish


  • ngserve