Livr 1.0.4

Livr 1.0.4

Felipe Marino 维护。



Livr 1.0.4

  • Felipe Lefèvre Marino 编写

Swift LIVR 验证器📏

Build Status Coverage Status Swift CocoaPods compatible License

轻量级的 Swift 验证器,支持语言无关验证规则规范 (LIVR)。

描述

请参阅 LIVR 规范 获取详细文档和受支持的规则列表。

特性

  • 规则是声明性的,且与语言无关
  • 每个字段可以有任意数量的规则
  • 为所有字段返回错误
  • 排除所有未描述验证规则的字段
  • 可以验证复杂分层结构
  • 规则易于描述和理解
  • 返回易于理解的错误代码(而不是错误消息)
  • 易于添加自己的规则
  • 规则可以更改输出结果(例如 "trim","nested_object")
  • 多用途(用户输入验证,配置验证,合约编程等)

概要

常用用法

let rules = ["first_name": "required",
             "age": "adult_age",
             "last_name": ["required"],
             "middle_name": [["required": []]],
             "salary": ["required": []]
            ]

var validator = LIVR.validator(validationRules: rules, isAutoTrim: true)

var output: Validator.Output?
do {
    output = try validator.validate(data: inputJson)
} catch { print((error as? ValidatingError)?.description) }

if let output = output {
  save(userData)
} else {
    print("Errors" + validator.errors.description)
}

您可以单独使用修饰符,也可以将它们与验证结合使用

let rules = ["email": ["required", "trim", "email", "to_lc"]]
var validator = LIVR.validator(validationRules: rules, isAutoTrim: true)

随时注册您自己的规则

您可以通过规则字典或传递别名(首选,语法由规范覆盖)来为许多情况使用别名

let rules = ["age": ["required", "adult_age"],
             "age-2": ["adult_age_with_custom_error"]
            ]
var validator = LIVR.validator(validationRules: rules)

let aliasingRules = [
                      [
                          "name": "adult_age",
                          "rules": ["positive_integer", ["min_number": 18]]
                      ],
                      [
                          "name": "adult_age_with_custom_error",
                          "rules": ["positive_integer", ["min_number": 18]],
                          "error": "WRONG_AGE"
                      ]
                    ]

validator.registerRule(aliases: aliasingRules)

或通过传递别名名称、规则和 errorCode 来使用别名

let rules = ["password": ["required", "strong_password"]]
var validator = LIVR.validator(validationRules: rules)

validator.registerRule(alias: "strong_password", rules: ["min_length": 6], errorCode: "WEAK_PASSWORD")

安装

CocoaPods

使用 pod --version 检测版本: 1.0.3

# Podfile
use_frameworks!

target 'YOUR_TARGET_NAME' do
    pod 'Livr'
end

替换 YOUR_TARGET_NAME,然后在 Podfile 目录中输入

$ pod install

贡献与未来改进

请随意分支,开放特性请求、问题单和PR。已知问题和映射活动在此存储库问题中。将很快提供 contribuiting.md

许可

Livr遵循MIT许可。有关详细信息,请参阅LICENSE

特别感谢/信誉

  • @jotafeldmann 为帮助我理解并映射创建此框架的挑战。