@emerson-evolution-gym/validators
v0.1.0
Published
Shared validation utilities and schemas for Evolution Gym
Maintainers
Readme
@evolution-gym/validators
Shared validation utilities and schemas for Evolution Gym microservices.
Installation
npm install @evolution-gym/validatorsUsage
Common Schemas
import { CommonSchemas, validateInput } from '@evolution-gym/validators';
// Validate email
const email = validateInput(CommonSchemas.email, '[email protected]');
// Validate login input
const loginData = validateInput(CommonSchemas.loginInput, {
email: '[email protected]',
password: 'SecurePass123!'
});CPF Validation
import { validateCPF, CPFSchema } from '@evolution-gym/validators';
// Direct validation
if (validateCPF('12345678901')) {
console.log('Valid CPF');
}
// Schema validation
const cpf = CPFSchema.parse('12345678901');CNPJ Validation
import { CNPJSchema, GymValidationSchema } from '@evolution-gym/validators';
const gymData = GymValidationSchema.parse({
name: 'My Gym',
cnpj: '12345678000190',
email: '[email protected]'
});Password Generation
import { PasswordGenerator } from '@evolution-gym/validators';
// Generate secure password
const password = PasswordGenerator.generateSecurePassword(12);
// Generate temporary password (user-friendly)
const tempPassword = PasswordGenerator.generateTemporaryPassword(10);
// Validate password strength
if (PasswordGenerator.isValidPassword('MyPass123!')) {
console.log('Strong password');
}Error Handling
import { ValidationError, validateInput } from '@evolution-gym/validators';
try {
const data = validateInput(CommonSchemas.registerInput, userInput);
} catch (error) {
if (error instanceof ValidationError) {
console.error(error.errors);
// [{ field: 'email', message: 'Invalid email format', code: 'invalid_string' }]
}
}Available Schemas
CommonSchemas.email- Email validationCommonSchemas.password- Password validation (min 8 chars)CommonSchemas.uuid- UUID validationCommonSchemas.cpf- Brazilian CPF validationCommonSchemas.registerInput- User registrationCommonSchemas.loginInput- User loginCommonSchemas.pixPaymentInput- PIX paymentCommonSchemas.subscriptionInput- Subscription creationCommonSchemas.paginationInput- Pagination paramsCommonSchemas.dateRangeFilter- Date range filtering
License
MIT
