topolis / validator
基于yaml的多维数组架构验证
1.2.0
2019-10-08 09:43 UTC
This package is not auto-updated.
Last update: 2024-09-17 13:23:39 UTC
README
一个复杂的验证器,将基于yaml的架构文件应用于多维数组
语法
架构是一个层次化的Yaml文件。从文件的根开始,每个级别包含三种不同的结构之一。
属性
属性是一个包含命名属性列表的对象。每个属性可以包含其他结构。对象结构的Yaml表示形式为
选项
type
定义属性是否包含一个子结构或子结构的数组。默认:single
conditionals
条件列表(如果它们要替换基本对象,则需要包含一个properties键)。默认:undefined
default
如果没有找到内容,则使用默认值。默认:undefined
(将简单地删除属性)required
定义此属性是否必须存在。默认:false
filter
如果类型是multiple
,则此过滤器将用于验证数组键。默认:undefined
options
如果类型是multiple
,则这些是键过滤器的选项。默认:[]
properties
此对象的属性数组。默认:[]
errors
可以覆盖此验证规则的特定状态代码以使用自定义代码和消息。默认:[]
(见下文=
示例
properties:
one:
...
two:
...
three:
...
required: true
default: {one: A}
列表
这定义了一个键值数组。与对象的不同之处在于,键不是严格定义的,只需要通过过滤器。
选项
conditionals
条件列表(如果它们要替换基本对象,则需要包含一个properties键)。默认:undefined
default
如果没有找到内容,则使用默认值。默认:undefined
(将简单地删除属性)required
定义此属性是否必须存在。默认:false
min
所需的最小数组元素数。默认:false
max
所需的最大数组元素数。默认:false
key
需要包含一个具有用于数组键的过滤器的Value结构。默认:undefined
value
需要包含数组项的结构。默认:undefined
示例
listing:
required: true
min: 2
max: 10
key:
...
value:
...
值
这定义了一个单一值。
选项
filter
要使用的过滤器(@see Topolis/Filter)。默认:Passthrough
options
此过滤器的选项。默认:[]
(请注意,Validator将过滤器的默认类型设置为single
)strict
定义是否允许在可能的情况下对值进行清理。默认:false
default
如果没有找到内容,则使用默认值。默认:undefined
(将简单地删除属性)required
定义此属性是否必须存在。默认:false
示例
filter: PlainExt
options: {characters: ".-_"}
required: true
default: Pustekuchen
自定义错误
对于每个验证规则,可以针对单个状态代码指定自定义错误。但是请注意自定义代码,因为验证结果预期存在某些规则。
Positive/Negative
遵循典型的进程退出代码,任何正数都被视为成功。任何负数都被视为失败Severity
数字越负,错误越严重。大多数调用程序期望无效或清理的结果具有正确值。请小心不要破坏您的结果代码检查。
默认错误代码
ERROR = -100
关键执行或配置错误INVALID = -11
结果未通过最低要求的规则SANITIZED = -2
结果存在非关键问题。导致这些问题的值可以自动调整INFO = -1
结果是完全有效的,但有一些信息性消息VALID = 1
结果完全有效
示例
filter: PlainExt
options: {characters: ".-_"}
errors:
-2:
code: -1
message: This data could be sanitized but we think a info alone is enough
-11:
code: -192
message: This very special check failed
开放任务
- BUG:在StatusManager中的定义错误(无法重现。在哪里?)
- FR:在其他文件中的参考定义
- FR:列表中的自动递增索引