A simple field validator for Flutter

Can be expanded upon fairly easily, you can create your own custom validators by inheriting the FieldValidatorCore.

How to use

It is fairly simple, you instantiate a FieldValidator, pass in the validators and call validate.

// Flutter TextFormField using the FieldValidator
return TextFormField(
      autovalidateMode: AutovalidateMode.onUserInteraction,
      validator: (text) => FieldValidator(
        [
          RequiredFieldValidator(
            errorMessage: "Field required",
          ),
          LengthFieldValidator(
            minLength: 4,
            errorMessage: "Field needs at least 4 characters",
          ),
          LengthFieldValidator(
            maxLength: 12,
            errorMessage: "Field can have up to 12 characters",
          ),
          PatternFieldValidator(
            r"(^[a-z])([a-z0-9-]*)([a-z0-9]$)",
            errorMessage: "Use only lowercase letters hyphens and numbers",
          ),
          ConditionFieldValidator(
            (field) => field == "type this",
            errorMessage: "You have to type type this",
          ),
        ],
        field: text,
      ).validate(),
    );