A fluent and elegant validation framework for Swift.
- iOS 8.0+
- Xcode 10.0+
- Swift 4.0+
You can install TinyValidation using CocoaPods or Carthage.
use_frameworks!
pod 'TinyValidation'
github 'royhsu/TinyValidation'
Please make sure to import the framework.
import TinyValidation
You can use the built-in rules for trivial validations.
Example: Validate an email.
let validEmail = try "hello@example.com".validated(by: EmailRule.standard)Currently supported rules.
Create your custom rules by conforming to ValidationRule protocol.
Example: Validate a password.
// Custom password rules.
enum PasswordRule: ValidationRule {
case minimumLength(Int)
case maximumLength(Int)
@discardableResult
func validate(_ value: String) throws -> String {
switch self {
case let .minimumLength(length):
if value.count < length { throw PasswordError.minimumLength(length) }
return value
case let .maximumLength(length):
if value.count > length { throw PasswordError.maximumLength(length) }
return value
}
}
}Then you can validate multiple rules at once.
let passwordRules: [PasswordRule] = [
.minimumLength(8),
.maximumLength(10)
]
let validPassword = try "12345678".validated(by: passwordRules)