0.1.3 • Published 8 months ago

@esp-labs/validators v0.1.3

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

@esp-labs/validators

This library provides a clean and extensible way to validate data in your TypeScript/JavaScript applications.

npm version License: MIT

Features

  • 🎯 Strong TypeScript support
  • 🏗️ Hexagonal Architecture design
  • 🧩 Extensible validation system
  • 📝 Comprehensive string validation
  • 🔍 Pattern matching support
  • ⚡ Zero dependencies
  • 📚 Well-documented API
  • ✅ 100% test coverage

Installation

npm install @esp-labs/validators

or

yarn add @esp-labs/validators

Quick Start

String Validation Example

import { StringValidator } from '@esp-labs/validators';

// Create a validator for an email field
const emailValidator = new StringValidator({
  fieldName: 'email',
  minLength: 5,
  maxLength: 100,
  pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
});

try {
  // Validate an email
  emailValidator.validate('user@example.com'); // Returns true if valid
} catch (error) {
  console.error(error.message); // Handles validation errors
}

API Reference

StringValidator

The StringValidator class provides comprehensive string validation capabilities.

Constructor Options

interface StringValidationType {
  fieldName: string;
  minLength?: number;
  maxLength?: number;
  pattern?: RegExp;
}
OptionTypeDescription
fieldNamestringName of the field being validated (used in error messages)
minLengthnumber(Optional) Minimum length requirement
maxLengthnumber(Optional) Maximum length requirement
patternRegExp(Optional) Regular expression pattern to match

Methods

validate(value: unknown): boolean

Validates the provided value against the configured options.

  • Returns true if validation passes
  • Throws ValidationErrorException if validation fails

Error Handling

The library uses custom ValidationErrorException for all validation errors. Each error includes a descriptive message indicating the specific validation failure.

try {
  validator.validate('test');
} catch (error) {
  if (error instanceof ValidationErrorException) {
    console.error(error.message);
  }
}

Project Structure

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## Testing

The project maintains 100% test coverage. To run tests:

```bash
npm test

For coverage report:

npm run test:coverage

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

ESP Labs

Support

If you have any questions or need help integrating the library, please open an issue.

Changelog

0.1.3

  • Initial release
  • String validation support
  • Comprehensive test coverage
0.1.3

8 months ago

0.1.2

8 months ago

0.1.1

8 months ago

0.1.0

8 months ago

1.0.0

8 months ago