queen_validators 0.0.1+8-beta copy "queen_validators: ^0.0.1+8-beta" to clipboard
queen_validators: ^0.0.1+8-beta copied to clipboard

outdated

validate variables with extensions , pure flutter TextFormFeild with qValidator function and DTO

Queen validators 👑 #

Table of Contents #

مقال يشرح بالعربي الفائده من المكتبة وطريقة الاستخدام

Features #

  • easily customize form validation error massages with any localization solution
  • need a new rule ? just extend QueenValidationRule
  • validate DTO s directly after instantiate them
  • extension on String and dynamic Types give you little push

Supported Rules #

Rule # default message
IsOptional allows you to skip the errors if the input is empty
IsRequired the input value must not be empty required
IsEmail the input value must be a valid email address is not valid email address
IsUrl the input value must be a valid url address not valid URL
Match(String stringToMatchWith,{bool ignoreCase = false}) the input value must match other String did not match
IsIn(List<String>) the input value must be in the provided list is not accepted
IsNotIn(List<String>) the input value must not be in the provided list is not valid email address
MaxLength(int max) the input value length must not be > the max 'max length is $max'
MinLength(int min) the input value length must not be < the min 'min length is $min'
RegExpRule(RegExp regX) the input value mush match the provided regX did not match
Contain(String value) checks if the input does contain the provided value must contain $value
NotContains(String val) checks if input does not contain the provided value must not contain $value
ContainsAny(List<String> val) check if the value contain at lest one of String form the provided list must contain any blacklisted keywords
NotContainsAny(List<String> val) check if the value does not contain any item from the provided list must contain at least one of the whitelisted keywords

installation #

dependencies:
  queen_validators: ^0.0.1+6-beta

Validate variables #

const badEmail = 'QueenRoyal.kingdom';
print(badEmail.isEmail) // false

const validEmail = 'Queen@Royal.kingdom';
print(validEmail.isEmail) // true

const badUrl = 'queen url validation';
print(badUrl.isURL) // false

const validUrl = 'https://www.abc.com';
print(validUrl.isURL) // true

Validate Forms #

import 'package/queen_validators/queen_validators.dart';
@override
Widget build(BuildContext context) {
return TextFormField(
     // use qValidator function and provider list of rules to apply on this field
    validator: qValidator([
      IsEmail(),
      MinLength(8),
      MaxLength(30, msg: "optionally you can decide which message to display if the validation fails"),
    ]),
  );
  }

Validate Dto #

import 'package:queen_validators/queen_validators.dart';
 // extends QueenDto
class LoginDto extends QueenDto {
  final String email;
  final String password;

  LoginDto({
    this.email,
    this.password,
  }) : super();
// don't forget to call the super;


// setup your keys and rules
  @override
  Map<String, List<QueenValidationRule>> get rules => {
        'email': [IsEmail()],
        'password': [MinLength(5),MaxLength(50)]
      };


// make sure to use same keys you used in the roles getter
  @override
  Map<String, dynamic> toMap() {
    return {'email': this.email,
            'password': this.password,
            };
  }
}

void main() {
  try {
     // it will throw QValidationException containing the failed rules
    LoginDto(email: 'queen@kingdom.com', password: 'bar');
   } on QValidationException catch (e) {
    print(e.errors);
  }
}

TODO #

  • ✅ example app
  • ❌ phone validation
  • ❌ color validation
  • ❌ date validation
  • ✅ tests
80
likes
0
pub points
87%
popularity

Publisher

verified publishermaxzod.com

validate variables with extensions , pure flutter TextFormFeild with qValidator function and DTO

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on queen_validators