schema-dsl 文档索引

更新时间: 2026-05-06
用途: 所有文档的快速导航
在线文档: https://schema-dsl.github.io
文档数量: README.md + docs/*.md 共 58 份


📑 目录

快速导航


🚀 快速开始

文档阅读时间说明
README.md3分钟项目介绍、安装和快速开始 ⭐
quick-start.md5分钟5分钟快速上手教程 ⭐
design-philosophy.md15分钟设计理念与性能权衡 ⭐⭐⭐
FEATURE-INDEX.md10分钟完整功能索引 ⭐
best-practices.md15分钟最佳实践指南 ⭐⭐⭐
faq.md5分钟常见问题解答

📖 核心文档

DSL 语法(核心功能)

文档说明
dsl-syntax.mdDSL语法完整指南(最重要)⭐⭐⭐
string-extensions.mdString扩展文档 ⭐⭐
plugin-system.md插件系统指南 ⭐⭐
api-reference.mdAPI完整参考 ⭐⭐
validate.mdvalidate方法详解 ⭐
validate-async.md异步验证方法详解 ⭐⭐⭐
schema-utils-chaining.mdSchema链式复用方法 ⭐⭐⭐
schema-utils-best-practices.mdSchemaUtils最佳实践与常见陷阱 ⭐⭐⭐
schema-utils-advanced-issues.mdSchemaUtils深入问题分析 ⭐⭐

🎯 功能索引

核心API

功能文档代码位置
dsl() 函数api-reference.mdsrc/index.ts / src/adapters/DslAdapter.ts
DslBuilder 类api-reference.mdsrc/core/DslBuilder.ts
String 扩展string-extensions.mdsrc/core/StringExtensions.ts
Validator 类validate.mdsrc/core/Validator.ts
validate() 函数api-reference.mdsrc/index.ts
validateAsync() 函数validate-async.mdsrc/index.ts
ValidationError 类validate-async.mdsrc/errors/ValidationError.ts
SchemaUtils 链式调用schema-utils-chaining.mdsrc/utils/SchemaUtils.ts

🗄️ 导出器

将 JSON Schema 转换为数据库 DDL 和验证规则

⚠️ 重要提示: 请先阅读 导出限制说明,了解哪些特性无法导出到数据库 Schema。

导出限制说明 ⚠️

文档说明
export-limitations.md导出限制完整说明(必读)⭐⭐⭐

主要内容:

  • ❌ 不支持导出的特性(条件验证、自定义验证器等)
  • ⚠️ 部分支持的特性(正则、范围、枚举等)
  • ✅ 完全支持的特性(基础类型、必填约束等)
  • 数据库特定限制对比(MongoDB/MySQL/PostgreSQL)
  • 最佳实践建议(分层验证、文档化约束等)

MongoDB 导出器

文档说明
mongodb-exporter.mdMongoDB 导出器完整指南

主要功能:

  • export() - 导出 $jsonSchema 验证规则
  • generateCreateCommand() - 生成创建集合命令(含验证)
  • generateCommand() - 生成完整 runCommand 命令
  • MongoDBExporter.export() - 静态快速导出方法

MySQL 导出器

文档说明
mysql-exporter.mdMySQL 导出器完整指南

主要功能:

  • export() - 导出 CREATE TABLE DDL
  • generateIndex() - 生成 CREATE INDEX DDL
  • 支持 ENGINE、CHARSET、COLLATE 配置

PostgreSQL 导出器

文档说明
postgresql-exporter.mdPostgreSQL 导出器完整指南

主要功能:

  • export() - 导出 CREATE TABLE DDL(含 CHECK 约束)
  • generateIndex() - 生成索引 DDL(支持 btree/gin/gist/hash)
  • 支持 Schema 命名空间和 COMMENT

🛠️ 工具类(Utilities)

文档说明
type-converter.mdTypeConverter - 类型转换工具
schema-helper.mdSchemaHelper - Schema 辅助工具
cache-manager.mdCacheManager - LRU缓存管理

TypeConverter 主要功能

  • toMongoDBType() - 转换为 MongoDB 类型
  • toMySQLType() - 转换为 MySQL 类型
  • toPostgreSQLType() - 转换为 PostgreSQL 类型
  • extractConstraints() - 提取约束信息
  • mergeSchemas() - 合并多个 Schema

SchemaHelper 主要功能

  • isValidSchema() - 验证 Schema 合法性
  • cloneSchema() - 深度克隆 Schema
  • flattenSchema() - 扁平化嵌套 Schema
  • getFieldPaths() - 获取所有字段路径
  • summarizeSchema() - 生成 Schema 摘要

CacheManager 主要功能

  • LRU 缓存策略(最近最少使用淘汰)
  • TTL 过期支持
  • 缓存统计(命中率、大小等)
  • 线程安全设计

📖 使用指南(Guides)

文档说明
validation-guide.md数据验证完整指南
export-guide.md数据库导出完整指南
error-handling.md错误处理最佳实践

验证指南内容

  • 基础验证流程
  • 字段类型验证(字符串/数字/布尔/数组/对象)
  • 常用业务验证模式
  • 批量验证与性能优化
  • 错误处理最佳实践

导出指南内容

  • MongoDB/MySQL/PostgreSQL 导出对比

  • 配置与自定义选项

  • 自动化迁移脚本

  • 版本管理与最佳实践

  • ⚠️ 导出限制说明 - 哪些特性无法导出 ⭐⭐⭐

  • 数据库导出概述

  • MongoDB/MySQL/PostgreSQL 导出教程

  • 多数据库同步方案

  • 类型映射参考表

  • 最佳实践与常见问题


🧩 补充文档

上方专题区主要按学习路径和主题组织;以下补充索引列出当前尚未在专题区单独展开的其余文档,确保导航覆盖 docs/*.md 全量文档。

文档标题 / 说明
add-custom-locale.md添加自定义语言包指南
add-keyword.mdaddKeyword 方法
api.mdAPI 参考入口
best-practices-project-structure.mdSchema-DSL 项目最佳实践示例
compile.mdcompile 方法
conditional-api.md链式条件 API - ConditionalBuilder
custom-extensions-guide.md自定义扩展指南
dynamic-locale.md动态多语言配置指南
enum.md枚举功能文档
frontend-i18n-guide.md前端动态切换语言 - 最佳实践指南
i18n-user-guide.md多语言支持用户指南
i18n.md多语言配置指南
index.md站点首页文案(文件内未单独声明 H1)
json-schema-basics.mdJSON Schema 基础
label-vs-description.mdlabel vs description 使用指南
markdown-exporter.mdMarkdown 导出器
multi-language.md多语言支持
multi-type-support.md多类型支持设计说明
number-operators.md数字比较运算符 (v1.1.2+)
optional-marker-guide.mdschema-dsl 可选标记 ? 支持
performance-guide.md性能优化指南
plugin-type-registration.md自定义类型注册
runtime-locale-support.md运行时多语言支持 - schema-dsl
schema-utils.mdSchema 工具函数文档
security-checklist.md安全检查清单
troubleshooting.md常见问题排查指南
type-reference.mdschema-dsl 类型参考
typescript-guide.mdTypeScript 使用指南
union-type-guide.md一个字段支持多种类型
union-types.md跨类型联合验证 - types: 语法
validate-batch.mdvalidateBatch 方法
validate-dsl-object-support.mdvalidate() 函数支持 DSL 对象说明
validator.mdValidator 类概述

📝 示例代码(Examples)

文件说明
quick-start.ts快速开始示例
dsl-syntax.tsDSL 风格完整示例
string-extensions.tsString 扩展示例
troubleshooting.ts排障与错误定位示例

❓ 常见问题(FAQ)

文档说明
faq.md常见问题与解答

热门问题:

  • DSL 语法与 Joi 语法的区别?
  • 如何自定义验证规则?
  • 如何优化验证性能?
  • 不同数据库的类型映射?
  • 如何处理验证错误?

🔧 开发指南

文档说明
CONTRIBUTING.md贡献指南

📊 版本信息

文档说明
STATUS.md项目状态(当前测试与发布状态)
CHANGELOG.md更新日志

📁 文档统计

指标当前值
docs/*.md 文档数58
README.md + docs/*.md 文档数59
文档总行数持续演进(以仓库实时内容为准)
测试文件数67
最近一次全量验证67 files / 1052 tests passed

图例说明:

  • ⭐ 重点推荐文档
  • ⭐⭐ 核心文档
  • ⭐⭐⭐ 必读文档

对应示例文件

示例入口: doc-index.ts
说明: 用一个最小入口脚本串起快速开始、编译校验和文档导出,帮助读者从索引页直接落到可运行示例。


最后更新: 2026-05-08