SchemaHelper Schema辅助工具
模块:
src/utils/SchemaHelper.ts
用途: 提供 JSON Schema 操作的常用辅助方法
📑 目录
概述
SchemaHelper 是一个静态工具类,提供各种 Schema 操作的辅助方法,包括验证、克隆、扁平化、比较等功能。
核心功能
- ✅ 验证 Schema 有效性
- ✅ 生成 Schema 唯一 ID
- ✅ 深度克隆 Schema
- ✅ 扁平化嵌套 Schema
- ✅ 提取所有字段路径
- ✅ 提取 required 字段
- ✅ 比较两个 Schema
- ✅ 计算 Schema 复杂度
- ✅ 生成 Schema 摘要
快速开始
API 参考
isValidSchema(schema)
检查是否为有效的 JSON Schema。
判断标准:至少包含 type、properties、items 或 $ref 之一。
generateSchemaId(schema)
生成 Schema 的唯一 ID(基于内容哈希)。
用途:缓存、去重、唯一标识。
cloneSchema(schema)
深度克隆 Schema 对象。
flattenSchema(schema, prefix)
扁平化嵌套 Schema。
getFieldPaths(schema)
获取 Schema 中所有字段路径。
数组字段:使用 [] 表示,如 items[].name
extractRequiredFields(schema)
提取 Schema 中所有 required 字段(包括嵌套)。
compareSchemas(schema1, schema2)
比较两个 Schema 是否相同。
simplifySchema(schema)
简化 Schema(移除不必要的字段)。
移除内容:$schema、空的 properties、空的 required
isValidPropertyName(name)
验证属性名是否合法。
规则:以字母或下划线开头,只能包含字母、数字、下划线、连字符。
getSchemaComplexity(schema)
获取 Schema 的复杂度(最大嵌套层级)。
summarizeSchema(schema)
生成 Schema 的摘要信息。
用途:调试、日志、文档生成。
实用示例
Schema 分析工具
Schema 版本比较
相关文档
对应示例文件
示例入口: schema-helper.ts
说明: 覆盖 isValidSchema()、generateSchemaId()、flattenSchema()、extractRequiredFields()、summarizeSchema() 与 compareSchemas()。