schema-dsl 1.0.9 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +325 -2
- package/README.md +419 -189
- package/STATUS.md +65 -3
- package/docs/FEATURE-INDEX.md +1 -1
- package/docs/best-practices.md +3 -3
- package/docs/cache-manager.md +1 -1
- package/docs/conditional-api.md +1278 -0
- package/docs/dsl-syntax.md +1 -1
- package/docs/dynamic-locale.md +2 -2
- package/docs/error-handling.md +2 -2
- package/docs/export-guide.md +2 -2
- package/docs/export-limitations.md +3 -3
- package/docs/faq.md +6 -6
- package/docs/frontend-i18n-guide.md +1 -1
- package/docs/mongodb-exporter.md +3 -3
- package/docs/multi-type-support.md +12 -2
- package/docs/mysql-exporter.md +1 -1
- package/docs/plugin-system.md +4 -4
- package/docs/postgresql-exporter.md +1 -1
- package/docs/quick-start.md +4 -4
- package/docs/troubleshooting.md +2 -2
- package/docs/type-reference.md +5 -5
- package/docs/typescript-guide.md +5 -6
- package/docs/union-type-guide.md +147 -0
- package/docs/union-types.md +277 -0
- package/docs/validate-async.md +1 -1
- package/examples/array-dsl-example.js +1 -1
- package/examples/conditional-example.js +288 -0
- package/examples/conditional-non-object.js +129 -0
- package/examples/conditional-validate-example.js +321 -0
- package/examples/i18n-error.examples.js +181 -0
- package/examples/union-type-example.js +127 -0
- package/examples/union-types-example.js +77 -0
- package/index.d.ts +655 -7
- package/index.js +54 -3
- package/lib/adapters/DslAdapter.js +14 -5
- package/lib/core/ConditionalBuilder.js +503 -0
- package/lib/core/DslBuilder.js +113 -0
- package/lib/core/Locale.js +13 -8
- package/lib/core/Validator.js +250 -2
- package/lib/errors/I18nError.js +222 -0
- package/lib/locales/en-US.js +39 -0
- package/lib/locales/es-ES.js +4 -0
- package/lib/locales/fr-FR.js +4 -0
- package/lib/locales/ja-JP.js +9 -0
- package/lib/locales/zh-CN.js +39 -0
- package/package.json +3 -1
package/STATUS.md
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# schema-dsl 项目状态
|
|
2
2
|
|
|
3
|
-
> **最后更新**: 2026-01-
|
|
4
|
-
> **当前版本**: v1.
|
|
5
|
-
> **项目状态**: ✅ 全部完成,测试100%通过(
|
|
3
|
+
> **最后更新**: 2026-01-06
|
|
4
|
+
> **当前版本**: v1.1.1
|
|
5
|
+
> **项目状态**: ✅ 全部完成,测试100%通过(921个测试)
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## 📋 目录
|
|
10
10
|
|
|
11
|
+
- [v1.1.1](#v111) - 2026-01-06 ✅ 已完成
|
|
12
|
+
- [v1.1.0](#v110) - 2026-01-05 ✅ 已完成
|
|
11
13
|
- [v1.0.9](#v109) - 2026-01-04 ✅ 已完成
|
|
12
14
|
- [v1.0.8](#v108) - 2026-01-04 ✅ 已完成
|
|
13
15
|
- [v1.0.7](#v107) - 2026-01-04 ✅ 已完成
|
|
@@ -23,6 +25,66 @@
|
|
|
23
25
|
|
|
24
26
|
## 版本发布计划
|
|
25
27
|
|
|
28
|
+
### v1.1.1
|
|
29
|
+
|
|
30
|
+
**发布日期**: 2026-01-06
|
|
31
|
+
**状态**: ✅ 已完成
|
|
32
|
+
**类型**: 🎉 新功能 - ConditionalBuilder 独立消息 + I18nError 多语言错误
|
|
33
|
+
**进度**: 100%完成 | 测试: 921个通过 | 新增: 52个测试
|
|
34
|
+
|
|
35
|
+
| 需求标题 | 状态 | 优先级 | 详细 |
|
|
36
|
+
|---------|------|--------|------|
|
|
37
|
+
| ConditionalBuilder 独立消息 | ✅ 完成 | P1 | `.and()/.or()` 后可调用 `.message()` |
|
|
38
|
+
| I18nError 多语言错误 | ✅ 完成 | P1 | 统一的多语言错误抛出机制 |
|
|
39
|
+
| dsl.error 快捷方法 | ✅ 完成 | P1 | create/throw/assert 三个方法 |
|
|
40
|
+
| TypeScript 类型定义 | ✅ 完成 | P0 | I18nError + dsl.error 类型 |
|
|
41
|
+
| 测试用例 | ✅ 完成 | P0 | 52个新测试(24+28) |
|
|
42
|
+
| 文档更新 | ✅ 完成 | P0 | README + CHANGELOG + examples |
|
|
43
|
+
| 语言包扩充 | ✅ 完成 | P1 | 中英文 20+ 错误消息 |
|
|
44
|
+
|
|
45
|
+
**实现状态统计**:
|
|
46
|
+
- ✅ 完成: 7个
|
|
47
|
+
- 🔄 进行中: 0个
|
|
48
|
+
- ⏳ 待完成: 0个
|
|
49
|
+
|
|
50
|
+
**核心变更**:
|
|
51
|
+
- ✅ **新增**: ConditionalBuilder 支持 `.and()/.or()` 独立消息
|
|
52
|
+
- ✅ **新增**: I18nError 类 (lib/errors/I18nError.js)
|
|
53
|
+
- ✅ **新增**: dsl.error 快捷方法 (create/throw/assert)
|
|
54
|
+
- ✅ **新增**: 20+ 内置错误代码(通用/账户/用户/订单)
|
|
55
|
+
- ✅ **新增**: examples/i18n-error.examples.js 示例文件
|
|
56
|
+
- ✅ **更新**: README FAQ Q7/Q8
|
|
57
|
+
- ✅ **更新**: CHANGELOG v1.1.1 完整记录
|
|
58
|
+
- ✅ **更新**: index.d.ts TypeScript 类型定义
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### v1.1.0
|
|
63
|
+
|
|
64
|
+
**发布日期**: 2026-01-05
|
|
65
|
+
**状态**: ✅ 已完成
|
|
66
|
+
**类型**: 🎉 重大功能 - 跨类型联合验证 + 插件系统增强
|
|
67
|
+
**进度**: 100%完成
|
|
68
|
+
|
|
69
|
+
| 需求标题 | 状态 | 优先级 | 详细 |
|
|
70
|
+
|---------|------|--------|------|
|
|
71
|
+
| 跨类型联合验证 | ✅ 完成 | P1 | `types:string|number` 语法 |
|
|
72
|
+
| 插件 DSL 类型注册 | ✅ 完成 | P1 | 插件可注册自定义 DSL 类型 |
|
|
73
|
+
| DslBuilder.registerType | ✅ 完成 | P0 | 静态方法供插件使用 |
|
|
74
|
+
| 文档更新 | ✅ 完成 | P0 | README + CHANGELOG |
|
|
75
|
+
|
|
76
|
+
**实现状态统计**:
|
|
77
|
+
- ✅ 完成: 4个
|
|
78
|
+
- 🔄 进行中: 0个
|
|
79
|
+
- ⏳ 待完成: 0个
|
|
80
|
+
|
|
81
|
+
**核心变更**:
|
|
82
|
+
- ✅ **新增**: `types:` 语法支持跨类型联合验证
|
|
83
|
+
- ✅ **增强**: 插件系统支持 DSL 类型注册
|
|
84
|
+
- ✅ **新增**: DslBuilder.registerType() 静态方法
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
26
88
|
### v1.0.9
|
|
27
89
|
|
|
28
90
|
**发布日期**: 2026-01-04
|
package/docs/FEATURE-INDEX.md
CHANGED
package/docs/best-practices.md
CHANGED
|
@@ -79,7 +79,7 @@ const schema = dsl({
|
|
|
79
79
|
|
|
80
80
|
### 3. 使用预设验证器
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
SchemaI-DSL 提供了常用的预设验证器,开箱即用:
|
|
83
83
|
|
|
84
84
|
```javascript
|
|
85
85
|
const schema = dsl({
|
|
@@ -639,7 +639,7 @@ setInterval(() => {
|
|
|
639
639
|
|
|
640
640
|
## 性能基准参考
|
|
641
641
|
|
|
642
|
-
基于
|
|
642
|
+
基于 SchemaI-DSL 的性能测试:
|
|
643
643
|
|
|
644
644
|
| 操作 | 性能指标 |
|
|
645
645
|
|------|---------|
|
|
@@ -655,7 +655,7 @@ setInterval(() => {
|
|
|
655
655
|
|
|
656
656
|
## 总结
|
|
657
657
|
|
|
658
|
-
遵循这些最佳实践,你的
|
|
658
|
+
遵循这些最佳实践,你的 SchemaI-DSL 代码将具备:
|
|
659
659
|
|
|
660
660
|
✅ **高性能** - 通过预编译和缓存
|
|
661
661
|
✅ **高安全性** - 避免常见安全陷阱
|