说明
Boulder 是一个旨在为验证 JavaScript 对象提供良好语法的项目。 它的目的是当开发者没有正确指定对象时提供有用的反馈. 其另一个目的是明智地处理默认的辩词和可选辩词.
被巨石所暴露的API会不断改变,但它应该始终基于 structure 财务报告和审定财务报表 field 计划. Structure 用于代表一个完整的结构 fields(如编号,数组,对象等). Field 用于代表一个单字段 object (例如:. object.alpha) (中文(简体) ). 通过结合他们, boulder 应当能够指明具有合理复杂性的物体.
安装
boulder 可作为 npm 软件包。 您可以通过 npm 软件包安装 @ephox/boulder
从 npm 安装
npm install @ephox/boulder
使用量
运行测试
boulder 用途 bedrock 进行测试。 测试通过 test 项目中的脚本. 具体来说,
$ yarn test
巨头 API
ephox.boulder.api.StructureSchema
-
setOf :: (JsObj -> Result, StructureProcessor) -> StructureProcessor -
thunkOf :: (String, () -> StructureProcessor) -> StructureProcessor -
funcOrDie :: (Array, () -> StructureProcessor) -> StructureProcessor -
asRaw :: (String, StructureProcessor, JsObj) -> Result (JsObj)
ephox.boulder.api.FieldSchema
field :: (String, String, Presence, StructureProcessor) -> FieldSchemacustomField :: (String, (JsObj -> JsObj)) -> FieldSchema
ephox.boulder.api.ValueType
anyValue :: () -> StructureProcessornumber :: () -> StructureProcessorstring :: () -> StructureProcessorboolean :: () -> StructureProcessorfunc :: () -> StructureProcessorpostMessageable :: () -> StructureProcessor
注意,还有许多其他的API,但它们往往是在这些构造器上建起的便利功能.
结构Schema.valueOf(验证器)
- 用于对任何值(阵列、对象、数字等)提供验证。 所传递的论点是
validator,它将把值当作参数并返回Result.value如果允许Result.error如果它不应该.Result是一个数据类型,由katamari。 。 。 .
结构化学式( schema)
- 用于表示该值是数组中每个项目匹配的数组
schema。 。 。 .
结构Schema.objOf(外地计划)
- 用于表示一个有匹配字段的对象
fieldSchemas。注意,对象可以有更多的字段,这些字段定义在 schema 中,如果一些字段是defaulted或者说optional,可能没有必要.
结构Schema.setOF(验证器,计划)
- 用于表示字段匹配一些对象
validator但你不知道他们的确切姓名 这个schema用于匹配每个字段的值。 对于一个服务器可能用一个对象进行响应的相位图来说,这是有用的,每个密钥匹配一些其他的ID,并且事先并不为人所知.
结构Schema.thunkOf(描述, schemathunk)
- 用于表示可以动态计算出的图案. 这对于一个孩子字段需要以与其母字段(如树)相同的处理方式进行处理的递归性计划是有用的. 这个
description用于简单描述这个计划代表什么,因为在计算DSL时试图引用它可以引起无限循环. 这个schemaThunk函数不需要参数,返回StructureSchema用来使用.
结构Schema.thunkOf(参数, schemaBacon)
- (原始内容存档于2018-09-21) (中文(简体) ). Bacon Experum dolor amet flat (简体). Mignon Beak shankle ham chock. 肉丸子T骨肉豆蔻多尔乔尔 威尼生香肠舌头多吃点心 (原始内容存档于2018-03-27). Shankle ribeye alcatra 三尖地起跑. T-bone kielbasa (英语)
pork belly花排米尼干肉卷 沙尔洛因地 玉米牛肉 猪肉卷 猪肚花花花花花花花 鸡肉花花花bacon里贝耶短腰肉 面条猪排filet mignon(原始内容存档于2019-10-12). campistick t-bone picanha.
结构Schema.asStruct(标签、 schema、 obj)
- 带一个
schema对于对象和对象(obj,并返回 [结构(https://www.npmjs.com/package/@ephox/katamari) 版本中的此天体在 aResult.value如果它符合计划。 不匹配的,请返回Result.error与验证错误。 构造只是每个属性被一个存取器函数所包裹的对象.
结构Schema.asRaw(标签、 schema、 obj)
- 带一个
schema对于对象和对象(obj中返回对象的简单版本Result.value如果它符合计划。 不匹配的,请返回Result.error与验证错误。 此输出不会是 结构。 。 。 .
FieldSchema.field(钥匙、新钥匙、存在、计划)
- 定义对象设计的字段。 出席情况
required|defaulted|asOption|asDefaultedOption)用于确定如何处理字段是否key在那里,还有schema定义与字段值相匹配的策略。 在输出对象中,newKey将用作字段名称。 注意,这种方法有许多方便方法,例如:FieldSchema.required('key')。 。 。 .
FieldSchema. Custom Field(新基,即时器)
- 定义对象的生成输出字段。 这没有计划要求,但可用于取取原始对象的快照,或为每个取出对象的版本创建某种状态,或进行自定义处理.
任何数值
- 用于表示任何值(阵列、对象、数字等).
值类型. 个数
- 用于表示数字
值类型.字符串
- 用于表示字符串
数值 Type.boole
- 用于代表布尔
数值Type.func
- 用于表示函数
价值类型. post 可删除
- 用于表示结构上的值,以便通过Message后发送