Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hodfords-solutions/nestjs-validation

A utility for simplifying validation and providing translated error messages in NestJS applications
https://github.com/hodfords-solutions/nestjs-validation

nestjs nodejs validation

Last synced: 1 day ago
JSON representation

A utility for simplifying validation and providing translated error messages in NestJS applications

Awesome Lists containing this project

README

        


Hodfords Logo

nestjs-validation enhances validation in your NestJS projects by providing a customized ValidationPipe that returns custom error messages. This library simplifies error handling by offering localized and user-friendly responses

## Installation ๐Ÿค–

Install the `nestjs-validation` package with:

```bash
npm install @hodfords/nestjs-validation --save
```

## Usage ๐Ÿš€

First, create an instance of `ValidationPipe` with the desired configuration:

```typescript
import { ValidationPipe } from '@hodfords/nestjs-validation';
import { ValidateException } from '@hodfords/nestjs-exception';

export const validateConfig = new ValidationPipe({
whitelist: true,
stopAtFirstError: true,
forbidUnknownValues: false,
exceptionFactory: (errors): ValidateException => new ValidateException(errors)
});
```

Next, set the validation configuration globally in your bootstrap function:

```typescript
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(validateConfig);
await app.listen(3000);
}
```

### Customize Validation Error

The original error message provides basic information but lacks detail. With **nestjs-validation**, you can enhance these errors by adding meaningful context, such as the fieldโ€™s property name, value, and target object.

**Original Validation Error**

```javascript
ValidationError {
target: AppDto { stringValue: undefined },
value: undefined,
property: 'stringValue',
children: [],
constraints: { isString: 'stringValue must be a string' }
}
```

**Customized Validation Error**

```javascript
ValidationError {
target: AppDto { stringValue: undefined },
value: undefined,
property: 'stringValue',
children: [],
constraints: {
isString: {
message: '$property must be a string',
detail: { property: 'stringValue', target: 'AppDto', value: undefined }
}
}
}
```

### Exception

When combined with [nestjs-exception](https://www.npmjs.com/package/@hodfords/nestjs-exception), errors are translated into localized messages:

```json
{
"message": "Validate Exception",
"errors": {
"stringValue": {
"messages": ["String Value must be a string"]
}
}
}
```

## License ๐Ÿ“

This project is licensed under the MIT License