Skip to content

Latest commit

 

History

History
86 lines (70 loc) · 2.91 KB

README.md

File metadata and controls

86 lines (70 loc) · 2.91 KB

CombineValidate

License Swift versions Platforms codecov Test And Coverage

What is CombineValidate?

Useful satellite for validation user inputs proposes for any SwiftUI architectures. (MVVM as basic reference)

Batteries:

  • SwiftUI native
  • Combine under the hood
  • Fully customizable
  • Validate simple fields for non empty values
  • Validate fields by predefined or your own regular expressions
  • Try input by multiple regex expressions and emerge up the result what is the regex got fired
  • Pass your own error messages
  • Localize error messages with custom localization table names
  • Use the wide validation extension library
  • Extend the set of validation possibilities as you want

Examples

Basic usage

Firstly you should define the validation publisher within your @Published property

class FormViewModel: ObservableObject {
    
    @Published var email = ""
    public lazy var emailValidator: ValidationPublisher = {
        $email.validateWithRegex(
            regex: RegularPattern.email,
            error: "Not email",
            tableName: nil
        )
    }()
}

Excellent! And then, call the validate view modifier from your SwiftUI Input

TextField("Should email", text: $viewModel.email)
        .validate(for: viewModel.emailValidator)

Enjoy!

Same steps you can apply to SecureField and Toggle.

CombineValidateExtended library

Useful set of validation publishers and regular expressions library. Validation for

  • any kind of credit card numbers
  • urls
  • hash tags
  • numbers
  • passwords
  • much more

Requirements

The CombineValidate dependes on the Combine reactive framework. Minimal requirements:

  • iOS 13
  • MacOS Catalina

Installation

Package installation occurs via SPM. Add package in your Xcode as dependency

Documentation

Look at here and explore documentation.