schema-dsl 2.0.0 → 2.0.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 +130 -113
- package/LICENSE +21 -21
- package/README.md +628 -628
- package/dist/{DslBuilder-DkLaOo9Q.d.ts → DslBuilder-BIgQOAXp.d.ts} +2 -0
- package/dist/{DslBuilder-DQDN0ZxZ.d.cts → DslBuilder-CjHTucNQ.d.cts} +2 -0
- package/dist/{Validator-hFWKGxir.d.ts → Validator-CllRdrY0.d.ts} +1 -1
- package/dist/{Validator-C7GsVQOH.d.cts → Validator-D6okG9tr.d.cts} +1 -1
- package/dist/index.cjs +75 -29
- package/dist/index.d.cts +10 -4
- package/dist/index.d.ts +10 -4
- package/dist/index.js +75 -29
- package/dist/plugins/custom-format.cjs +33 -17
- package/dist/plugins/custom-format.d.cts +1 -1
- package/dist/plugins/custom-format.d.ts +1 -1
- package/dist/plugins/custom-format.js +33 -17
- package/dist/plugins/custom-type-example.cjs +33 -17
- package/dist/plugins/custom-type-example.d.cts +1 -1
- package/dist/plugins/custom-type-example.d.ts +1 -1
- package/dist/plugins/custom-type-example.js +33 -17
- package/dist/plugins/custom-validator.cjs +0 -2
- package/dist/plugins/custom-validator.d.cts +1 -1
- package/dist/plugins/custom-validator.d.ts +1 -1
- package/dist/plugins/custom-validator.js +0 -2
- package/docs/FEATURE-INDEX.md +553 -553
- package/docs/add-custom-locale.md +496 -496
- package/docs/add-keyword.md +24 -24
- package/docs/api-reference.md +1047 -1047
- package/docs/api.md +13 -13
- package/docs/best-practices-project-structure.md +417 -417
- package/docs/best-practices.md +712 -712
- package/docs/cache-manager.md +344 -344
- package/docs/compile.md +45 -45
- package/docs/conditional-api.md +1307 -1307
- package/docs/custom-extensions-guide.md +339 -339
- package/docs/design-philosophy.md +606 -606
- package/docs/doc-index.md +324 -324
- package/docs/dsl-syntax.md +714 -714
- package/docs/dynamic-locale.md +608 -608
- package/docs/enum.md +482 -482
- package/docs/error-handling.md +1975 -1975
- package/docs/export-guide.md +501 -501
- package/docs/export-limitations.md +567 -567
- package/docs/faq.md +596 -596
- package/docs/frontend-i18n-guide.md +307 -307
- package/docs/i18n-user-guide.md +487 -487
- package/docs/i18n.md +476 -476
- package/docs/index.md +48 -48
- package/docs/json-schema-basics.md +40 -40
- package/docs/label-vs-description.md +271 -271
- package/docs/markdown-exporter.md +406 -406
- package/docs/mongodb-exporter.md +302 -302
- package/docs/multi-language.md +26 -26
- package/docs/multi-type-support.md +322 -322
- package/docs/mysql-exporter.md +280 -280
- package/docs/number-operators.md +449 -449
- package/docs/optional-marker-guide.md +326 -326
- package/docs/performance-guide.md +49 -49
- package/docs/plugin-system.md +381 -381
- package/docs/plugin-type-registration.md +34 -34
- package/docs/postgresql-exporter.md +311 -311
- package/docs/public/favicon.svg +4 -4
- package/docs/quick-start.md +435 -435
- package/docs/runtime-locale-support.md +532 -532
- package/docs/schema-helper.md +345 -345
- package/docs/schema-utils-advanced-issues.md +23 -23
- package/docs/schema-utils-best-practices.md +20 -20
- package/docs/schema-utils-chaining.md +150 -150
- package/docs/schema-utils.md +524 -524
- package/docs/security-checklist.md +20 -20
- package/docs/string-extensions.md +488 -488
- package/docs/troubleshooting.md +486 -486
- package/docs/type-converter.md +310 -310
- package/docs/type-reference.md +242 -242
- package/docs/typescript-guide.md +584 -584
- package/docs/union-type-guide.md +157 -157
- package/docs/union-types.md +284 -284
- package/docs/validate-async.md +491 -491
- package/docs/validate-batch.md +49 -49
- package/docs/validate-dsl-object-support.md +578 -578
- package/docs/validate.md +506 -506
- package/docs/validation-guide.md +502 -502
- package/docs/validator.md +39 -39
- package/package.json +131 -131
- package/plugins/custom-format.cjs +8 -8
- package/plugins/custom-type-example.cjs +8 -8
- package/plugins/custom-validator.cjs +8 -8
- package/src/adapters/DslAdapter.ts +111 -111
- package/src/adapters/index.ts +1 -1
- package/src/config/constants.ts +83 -83
- package/src/config/index.ts +2 -2
- package/src/config/patterns.ts +77 -77
- package/src/core/CacheManager.ts +169 -159
- package/src/core/ConditionalBuilder.ts +382 -382
- package/src/core/ConditionalRuntime.ts +27 -27
- package/src/core/ConditionalValidator.ts +254 -254
- package/src/core/DslBuilder.ts +687 -677
- package/src/core/ErrorCodes.ts +38 -38
- package/src/core/ErrorFormatter.ts +271 -271
- package/src/core/JSONSchemaCore.ts +65 -65
- package/src/core/Locale.ts +187 -187
- package/src/core/MessageTemplate.ts +42 -42
- package/src/core/ObjectDslBuilder.ts +64 -64
- package/src/core/PluginManager.ts +326 -326
- package/src/core/StringExtensions.ts +140 -140
- package/src/core/TemplateEngine.ts +44 -44
- package/src/core/Validator.ts +448 -448
- package/src/errors/I18nError.ts +159 -159
- package/src/errors/ValidationError.ts +105 -105
- package/src/exporters/BaseExporter.ts +60 -60
- package/src/exporters/MarkdownExporter.ts +305 -305
- package/src/exporters/MongoDBExporter.ts +126 -126
- package/src/exporters/MySQLExporter.ts +156 -155
- package/src/exporters/PostgreSQLExporter.ts +222 -222
- package/src/exporters/index.ts +18 -18
- package/src/index.ts +651 -633
- package/src/locales/en-US.ts +160 -160
- package/src/locales/es-ES.ts +160 -160
- package/src/locales/fr-FR.ts +160 -160
- package/src/locales/index.ts +103 -103
- package/src/locales/ja-JP.ts +160 -160
- package/src/locales/types.ts +156 -156
- package/src/locales/zh-CN.ts +160 -160
- package/src/parser/ConstraintParser.ts +101 -101
- package/src/parser/DslParser.ts +470 -470
- package/src/parser/SchemaCompiler.ts +66 -66
- package/src/parser/TypeRegistry.ts +250 -250
- package/src/parser/index.ts +6 -6
- package/src/plugins/custom-format.ts +124 -126
- package/src/plugins/custom-type-example.ts +106 -108
- package/src/plugins/custom-validator.ts +138 -140
- package/src/types/conditional.ts +28 -28
- package/src/types/config.ts +59 -59
- package/src/types/dsl.ts +131 -131
- package/src/types/error.ts +60 -60
- package/src/types/index.ts +17 -17
- package/src/types/infer.ts +127 -127
- package/src/types/plugin.ts +58 -58
- package/src/types/safe-regex.d.ts +9 -9
- package/src/types/schema.ts +66 -66
- package/src/types/validate.ts +71 -71
- package/src/utils/SchemaHelper.ts +196 -196
- package/src/utils/SchemaUtils.ts +365 -346
- package/src/utils/TypeConverter.ts +215 -215
- package/src/utils/index.ts +10 -10
- package/src/validators/CustomKeywords.ts +477 -477
package/docs/compile.md
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
# compile 方法
|
|
2
|
-
|
|
3
|
-
`Validator.compile(schema, cacheKey?)` 会将 JSON Schema 编译为 AJV 验证函数,并在传入 `cacheKey` 时复用缓存。
|
|
4
|
-
|
|
5
|
-
## 方法签名
|
|
6
|
-
|
|
7
|
-
```javascript
|
|
8
|
-
validator.compile(schema, cacheKey?)
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## 参数
|
|
12
|
-
|
|
13
|
-
- `schema` - JSON Schema 对象
|
|
14
|
-
- `cacheKey` - 可选缓存键;传入后,同一个 `Validator` 实例内可复用已编译结果
|
|
15
|
-
|
|
16
|
-
## 返回值
|
|
17
|
-
|
|
18
|
-
返回 AJV 验证函数,可直接像普通函数一样调用;执行结果为 `true / false`,错误详情挂在 `validate.errors` 上。
|
|
19
|
-
|
|
20
|
-
```javascript
|
|
21
|
-
const { Validator, dsl } = require('schema-dsl');
|
|
22
|
-
const validator = new Validator();
|
|
23
|
-
const schema = dsl({ name: 'string!' });
|
|
24
|
-
const validate = validator.compile(schema, 'user-schema');
|
|
25
|
-
console.log(validate({ name: 'Rocky' }));
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## 适用场景
|
|
29
|
-
|
|
30
|
-
- 同一份 schema 需要重复校验多次时,先 `compile()` 再复用编译结果
|
|
31
|
-
- 需要自己控制缓存键,避免重复编译开销
|
|
32
|
-
- 想把编译和执行拆开,接入自定义流程
|
|
33
|
-
|
|
34
|
-
## 注意事项
|
|
35
|
-
|
|
36
|
-
- `cacheKey` 的缓存作用域是当前 `Validator` 实例,不跨实例共享
|
|
37
|
-
- 如果只是对同一份 schema 做批量校验,也可以直接使用 `validator.validateBatch()`
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 对应示例文件
|
|
42
|
-
|
|
43
|
-
**示例入口**: [compile.ts](https://github.com/vextjs/schema-dsl/blob/main/examples/docs/compile.ts)
|
|
44
|
-
**说明**: 覆盖 `compile()` 的编译结果复用、`cacheKey` 命中,以及失败场景下从验证函数读取错误详情。
|
|
45
|
-
|
|
1
|
+
# compile 方法
|
|
2
|
+
|
|
3
|
+
`Validator.compile(schema, cacheKey?)` 会将 JSON Schema 编译为 AJV 验证函数,并在传入 `cacheKey` 时复用缓存。
|
|
4
|
+
|
|
5
|
+
## 方法签名
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
validator.compile(schema, cacheKey?)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 参数
|
|
12
|
+
|
|
13
|
+
- `schema` - JSON Schema 对象
|
|
14
|
+
- `cacheKey` - 可选缓存键;传入后,同一个 `Validator` 实例内可复用已编译结果
|
|
15
|
+
|
|
16
|
+
## 返回值
|
|
17
|
+
|
|
18
|
+
返回 AJV 验证函数,可直接像普通函数一样调用;执行结果为 `true / false`,错误详情挂在 `validate.errors` 上。
|
|
19
|
+
|
|
20
|
+
```javascript
|
|
21
|
+
const { Validator, dsl } = require('schema-dsl');
|
|
22
|
+
const validator = new Validator();
|
|
23
|
+
const schema = dsl({ name: 'string!' });
|
|
24
|
+
const validate = validator.compile(schema, 'user-schema');
|
|
25
|
+
console.log(validate({ name: 'Rocky' }));
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 适用场景
|
|
29
|
+
|
|
30
|
+
- 同一份 schema 需要重复校验多次时,先 `compile()` 再复用编译结果
|
|
31
|
+
- 需要自己控制缓存键,避免重复编译开销
|
|
32
|
+
- 想把编译和执行拆开,接入自定义流程
|
|
33
|
+
|
|
34
|
+
## 注意事项
|
|
35
|
+
|
|
36
|
+
- `cacheKey` 的缓存作用域是当前 `Validator` 实例,不跨实例共享
|
|
37
|
+
- 如果只是对同一份 schema 做批量校验,也可以直接使用 `validator.validateBatch()`
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 对应示例文件
|
|
42
|
+
|
|
43
|
+
**示例入口**: [compile.ts](https://github.com/vextjs/schema-dsl/blob/main/examples/docs/compile.ts)
|
|
44
|
+
**说明**: 覆盖 `compile()` 的编译结果复用、`cacheKey` 命中,以及失败场景下从验证函数读取错误详情。
|
|
45
|
+
|