map_validation 1.2.0 copy "map_validation: ^1.2.0" to clipboard
map_validation: ^1.2.0 copied to clipboard

O pacote Map Validation fornece uma maneira flexível e extensível de validar dados de um `Map` em Dart, inspirado no Joi.js. Permite criar esquemas de validação com suporte a tipos variados, mensagens [...]

example/map_validation_example.dart

import 'package:map_validation/map_validation.dart';

void main() {
  // Definindo o esquema de validação
  final schema = ValidatorSchema({
    'is_active': BooleanValidator(
      fieldName: 'is_active',
      isRequired: true,
      requiredMessage: 'O campo ativo é obrigatório.',
      invalidMessage: 'O valor deve ser um booleano.',
    ),
    'start_date': DateValidator(
      fieldName: 'start_date',
      minDate: DateTime(2023, 1, 1),
      maxDate: DateTime(2024, 12, 31),
      isRequired: true,
      requiredMessage: 'A data de início é obrigatória.',
      minDateMessage: 'A data deve ser após {minDate}.',
      maxDateMessage: 'A data deve ser antes de {maxDate}.',
    ),
    'total_amount': NumberValidator(
      fieldName: 'total_amount',
      min: 10,
      max: 1000,
      isInteger: true,
      isRequired: true,
      requiredMessage: 'O valor total é obrigatório.',
      minMessage: 'O valor deve ser pelo menos {min}.',
      maxMessage: 'O valor não deve exceder {max}.',
    ),
    'discount_code': NumberValidator(
      fieldName: 'discount_code',
      isRequired: false, // Opcional
      isInteger: false, // Pode ser decimal
      min: 0,
      max: 100,
      minMessage: 'O desconto deve ser pelo menos {min}%',
      maxMessage: 'O desconto não deve exceder {max}%',
    ),
  }, locale: 'pt_BR');

  // Dados válidos
  final validData = {
    'is_active': true,
    'start_date': DateTime(2023, 6, 15),
    'total_amount': 150,
    'discount_code': 25,
  };

  // Dados inválidos
  final invalidData = {
    'is_active': 'yes', // Tipo inválido
    'start_date': DateTime(2025, 1, 1), // Fora do intervalo
    'total_amount': 5, // Abaixo do mínimo
    'discount_code': 150, // Acima do máximo
  };

  // Validando dados válidos
  try {
    schema.validate(validData);
    print('Dados válidos: Nenhum erro');
  } catch (e) {
    if (e is ValidatorException) {
      print('Erros com dados válidos: ${e.errors}');
    }
  }

  // Validando dados inválidos
  try {
    schema.validate(invalidData);
  } catch (e) {
    if (e is ValidatorException) {
      print('Erros com dados inválidos: ${e.errors}');
    }
  }
}
0
likes
125
points
51
downloads

Publisher

unverified uploader

Weekly Downloads

O pacote Map Validation fornece uma maneira flexível e extensível de validar dados de um `Map` em Dart, inspirado no Joi.js. Permite criar esquemas de validação com suporte a tipos variados, mensagens de erro personalizadas e internacionalização.

Repository (GitHub)
View/report issues

Documentation

API reference

License

unknown (license)

More

Packages that depend on map_validation