1.0.2 • Published 9 months ago

class-validator-factory v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Class Validator Factory

npm version libraries.io

A utility for creating a validated instance of a class-validator decorated object from a plain object. If validation fails, it throws a validation exception containing a detailed list of errors.

Usage

Here's a quick example to get started:

import { IsDateString, IsNotEmpty, MaxLength, MinLength } from 'class-validator';

// Import the dependency
import { ClassValidatorFactory } from 'class-validator-factory';

// Example class with class validator decorators
class Example {
    @MinLength(10, {
        message: 'Title is too short',
    })
    @MaxLength(50, {
        message: 'Title is too long',
    })
    title: string;

    @IsDateString()
    @IsNotEmpty()
    timestamp: string;
}

// Object to be converted to a validated instance
const example = {
    title: "Lorem ipsum dolor sit amet",
    timestamp: Date.now().toLocaleString()
}

// Validation
const validExample: Example = new ClassValidatorFactory<Example>(Example).createInstance(example);

In the event of a validation error, the raised ValidationError exception includes an errorList property containing the forwarded errors generated by class-validator. See Class Validator package for errors reference.

[
  {
    "target": {
      "title": "Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet",
      "timestamp": "Sun Dec 22 2024 01:07:45 GMT-0300 (Argentina Standard Time)"
    },
    "value": "Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet",
    "property": "title",
    "children": [],
    "constraints": { "maxLength": "Title is too long" }
  },
  {
    "target": {
      "title": "Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet",
      "timestamp": "Sun Dec 22 2024 01:07:45 GMT-0300 (Argentina Standard Time)"
    },
    "value": "Sun Dec 22 2024 01:07:45 GMT-0300 (Argentina Standard Time)",
    "property": "timestamp",
    "children": [],
    "constraints": { "isDateString": "timestamp must be a valid ISO 8601 date string" }
  }
]

Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/your-feature
  3. Commit your changes: git commit -m 'Add your feature'
  4. Push to the branch: git push origin feature/your-feature
  5. Open a pull request

Feel free to reach out if you have questions, feedback, or feature requests. Contributions are always welcome! 🎉

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago

0.0.9

9 months ago

0.0.8

9 months ago

0.0.7

9 months ago

0.0.6

9 months ago

0.0.5

9 months ago

0.0.4

9 months ago

0.0.3

9 months ago

0.0.2

9 months ago

0.0.1

9 months ago