Defra 格式模型
Defra表格模型和验证库,为形式定义、组件、验证和数据处理提供基础.
特征
- 形式 定义 - 表格、页、组件和条件的核心结构
- 构成部分库 - 有验证的预定义的形式组件
- 杰森·斯克马 - JSON用于跨平台验证的准备使用程序文件
- 条件引擎 - 确定形式流动和能见度的逻辑
- 类型定义 - 完整的类型脚本类型安全
- 元数据处理 - 支持形式元数据、版本和州管理
安装
npm install @defra/forms-model
使用量
形式 定义
import { createForm } from '@defra/forms-model';
const form = createForm({
name: 'my-form',
pages: [
{
path: '/start',
title: 'Start page',
components: [/* components */]
}
],
sections: [/* sections */]
});
组件使用量
import { ComponentType } from '@defra/forms-model';
const textField = {
type: ComponentType.TextField,
name: 'fullName',
title: 'Full name',
schema: {
min: 2,
max: 100
}
};
表格验证
JSON Schema 文件
此包包括预生成的JSON schema文件, 用于外部 JSON Schema 校验器/ IDEs 林入等 :
import formSchema from '@defra/forms-model/schemas/form-definition-schema.json';
可用的计划文件包括:
表格定义
form-definition-schema.json- 完全形式定义验证form-definition-v2-schema.json- 完整形式定义V2验证
组件外观
component-schema.json- 构成部分验证component-schema-v2.json- 构成部分验证(v2)
页示马斯
page-schema.json- 页面验证page-schema-v2.json- 页面验证(v2)
列表图
list-schema.json- 清单验证list-schema-v2.json- 清单验证(v2)
窗体元数据表
form-metadata-schema.json- 表格元数据验证form-metadata-author-schema.json- 表格元数据作者验证form-metadata-input-schema.json- 表格元数据输入验证form-metadata-state-schema.json- 表格元数据状态验证
元数据字段图
form-metadata-contact-schema.json- 联系信息验证form-metadata-email-schema.json- 电子邮件验证form-metadata-online-schema.json- 在线形式元数据验证
窗体编辑器Schems
form-editor-input-page-schema.json- 窗体编辑器输入页验证form-editor-input-check-answers-setting-schema.json- 检查答案设置验证form-editor-input-question-schema.json- 问题输入验证form-editor-input-page-settings-schema.json- 页面设置验证
窗体编辑器字段图
page-type-schema.json- 页面类型验证question-type-schema.json- 问题类型验证question-type-full-schema.json- 完全问题类型验证written-answer-sub-schema.json- 书面答复子程序验证date-sub-schema.json- 日期子基准验证
表格提交图
form-submit-payload-schema.json- 表格提交有效载荷验证form-submit-record-schema.json- 表格提交记录验证form-submit-recordset-schema.json- 表格提交记录仪验证
窗体管理器Schemas
patch-page-schema.json- 补丁页验证
斯克马斯区
question-schema.json- 问题验证
验证Schemas
min-schema.json- 最低价值验证max-schema.json- 最大值验证min-length-schema.json- 最小长度验证max-length-schema.json- 最大长度验证max-future-schema.json- 未来最大日期验证max-past-schema.json- 最大过去日期验证
常见图
search-options-schema-ui.json- 搜索选项验证(公式设计器)search-options-schema-manager.json- 搜索选项验证(窗体管理)query-options-schema-ui.json- 查询选项验证(公式设计器)query-options-schema-manager.json- 查询选项验证(形式管理)pagination-options-schema.json- 铺设选项验证sorting-options-schema.json- 排序选项验证
发展
这个软件包以前是作为 model 工作空间 窗体设计器。 。 。 .
设置
nvm use
npm install
npm run build
常见命令
| 命令 | 说明 |
|---|---|
npm run build | 构建类型声明、 JavaScript 模块和 JSON 计划 |
npm run lint | 运行编辑器Config、 ESLint 和 TypeScript 检查 |
npm run format | 用 Pretier 格式化文件 |
npm test | 进行覆盖测试 |
测试消费服务的变化
为了测试消费服务(例如表格设计器)中未公布的更改,构建此包并将其链接:
# In forms-model
npm run build
npm link
# In the consuming service
npm link @defra/forms-model
运行 npm run build 每次修改后,在表格模型中,使消费服务能够收回新的 dist 输出。 运行 npm unlink @defra/forms-model && npm install 在消费服务中返回出版的版本.
出版
合并为 main 更改为 src/, (中文(简体) ), scripts/, (中文(简体) ), babel.config.* 或者说 .browserslistrc 运行 发布 工作流程,将补丁版本递增并发布到npm.
测试范围
单位测试覆盖阈值,低于该阈值的代码覆盖将失败 使用 jest 配置 设定,此时线覆盖阈值被设定为 92%,参见 jest.config.js (英语)
JSON Schema 生成和出版
这个软件包在构建过程中生成由Joi验证计划产生的JSON Schema文件. 这些计划包含在已公布的npm包中,并可在运行时提供.
如何运作
当你跑的时候 npm run build,脚本 scripts/generate-schemas.js 执行中:
- 将Joi 验证计划转换为 JSON Schema 格式
- 强化标题和描述的策略
- 将计划文件写入
schemas/目录
已知的贵克人
- 需要第一个构建: 在新克隆后, 你必须运行
npm run build在本地获取计划文件之前 .
许可证
本资料系根据下列公开政府规定公布:
http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3 互联网档案馆的存檔,存档日期2013-12-21
在使用此信息时, 您的产品和应用程序中引用以下的归属声明 MUST . ` , `
载有根据《公开政府许可证》颁发的公共部门信息v3
关于执照
开放政府许可证(OGL)由女王陛下文具办公室(HMSO)主计长制定,目的是使公共部门的信息提供者能够根据共同开放许可证许可其信息的使用和再使用.
它旨在鼓励自由和灵活地使用和再使用信息,仅附带一些条件.