@oxog/vld 1.5.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 +116 -0
- package/README.md +558 -517
- package/dist/chunks/bigint-ZKkWLdmi.js +1628 -0
- package/dist/chunks/bigint-ZKkWLdmi.js.map +1 -0
- package/dist/{coercion/string.js → chunks/date-7Iz2BGsL.js} +271 -5
- package/dist/chunks/date-7Iz2BGsL.js.map +1 -0
- package/dist/chunks/index-BoV-4S1F.js +894 -0
- package/dist/chunks/index-BoV-4S1F.js.map +1 -0
- package/dist/chunks/index-eWXdjyyy.js +426 -0
- package/dist/chunks/index-eWXdjyyy.js.map +1 -0
- package/dist/chunks/json-nIhyRPOU.js +1934 -0
- package/dist/chunks/json-nIhyRPOU.js.map +1 -0
- package/dist/{validators/unknown.js → chunks/unknown-CjSRcELI.js} +6 -3
- package/dist/chunks/unknown-CjSRcELI.js.map +1 -0
- package/dist/cjs/errors.cjs +387 -0
- package/dist/cjs/errors.cjs.map +1 -0
- package/dist/cjs/index.cjs +9815 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/locales/index.cjs +2877 -0
- package/dist/cjs/locales/index.cjs.map +1 -0
- package/dist/cjs/locales/lazy.cjs +3169 -0
- package/dist/cjs/locales/lazy.cjs.map +1 -0
- package/dist/cjs/mini.cjs +7161 -0
- package/dist/cjs/mini.cjs.map +1 -0
- package/dist/codecs/index.js +4 -275
- package/dist/codecs/index.js.map +1 -1
- package/dist/coercion/index.d.ts +11 -0
- package/dist/coercion/index.d.ts.map +1 -0
- package/dist/coercion/{bigint.js → index.js} +7 -4
- package/dist/coercion/index.js.map +1 -0
- package/dist/compat/emitter.js +6 -4
- package/dist/compat/emitter.js.map +1 -1
- package/dist/compat/result.js +21 -19
- package/dist/compat/result.js.map +1 -1
- package/dist/errors.js +13 -10
- package/dist/errors.js.map +1 -1
- package/dist/index.js +225 -126
- package/dist/index.js.map +1 -1
- package/dist/kernel.js +10 -7
- package/dist/kernel.js.map +1 -1
- package/dist/locales/af.js +4 -2
- package/dist/locales/af.js.map +1 -1
- package/dist/locales/ar.js +4 -2
- package/dist/locales/ar.js.map +1 -1
- package/dist/locales/bn.js +4 -2
- package/dist/locales/bn.js.map +1 -1
- package/dist/locales/da.js +4 -2
- package/dist/locales/da.js.map +1 -1
- package/dist/locales/de.js +4 -2
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/en.js +4 -2
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es-MX.js +4 -2
- package/dist/locales/es-MX.js.map +1 -1
- package/dist/locales/es.js +4 -2
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/fi.js +4 -2
- package/dist/locales/fi.js.map +1 -1
- package/dist/locales/fr.js +4 -2
- package/dist/locales/fr.js.map +1 -1
- package/dist/locales/hi.js +4 -2
- package/dist/locales/hi.js.map +1 -1
- package/dist/locales/id.js +4 -2
- package/dist/locales/id.js.map +1 -1
- package/dist/locales/index.js +3 -91
- package/dist/locales/index.js.map +1 -1
- package/dist/locales/it.js +4 -2
- package/dist/locales/it.js.map +1 -1
- package/dist/locales/ja.js +4 -2
- package/dist/locales/ja.js.map +1 -1
- package/dist/locales/ko.js +4 -2
- package/dist/locales/ko.js.map +1 -1
- package/dist/locales/lazy.d.ts +111 -0
- package/dist/locales/lazy.d.ts.map +1 -0
- package/dist/locales/lazy.js +220 -0
- package/dist/locales/lazy.js.map +1 -0
- package/dist/locales/nl.js +4 -2
- package/dist/locales/nl.js.map +1 -1
- package/dist/locales/no.js +4 -2
- package/dist/locales/no.js.map +1 -1
- package/dist/locales/pl.js +4 -2
- package/dist/locales/pl.js.map +1 -1
- package/dist/locales/pt-BR.js +4 -2
- package/dist/locales/pt-BR.js.map +1 -1
- package/dist/locales/pt.js +4 -2
- package/dist/locales/pt.js.map +1 -1
- package/dist/locales/ru.js +4 -2
- package/dist/locales/ru.js.map +1 -1
- package/dist/locales/sv.js +4 -2
- package/dist/locales/sv.js.map +1 -1
- package/dist/locales/sw.js +4 -2
- package/dist/locales/sw.js.map +1 -1
- package/dist/locales/th.js +4 -2
- package/dist/locales/th.js.map +1 -1
- package/dist/locales/tr.js +4 -2
- package/dist/locales/tr.js.map +1 -1
- package/dist/locales/vi.js +4 -2
- package/dist/locales/vi.js.map +1 -1
- package/dist/locales/zh.js +4 -2
- package/dist/locales/zh.js.map +1 -1
- package/dist/mini.d.ts +182 -0
- package/dist/mini.d.ts.map +1 -0
- package/dist/mini.js +132 -0
- package/dist/mini.js.map +1 -0
- package/dist/pigment.js +8 -7
- package/dist/pigment.js.map +1 -1
- package/dist/validators/index.js +5 -45
- package/dist/validators/index.js.map +1 -1
- package/package.json +69 -11
- package/dist/cli/benchmark.d.ts +0 -15
- package/dist/cli/benchmark.d.ts.map +0 -1
- package/dist/cli/benchmark.js +0 -248
- package/dist/cli/benchmark.js.map +0 -1
- package/dist/cli/bin.js +0 -35
- package/dist/cli/bin.js.map +0 -1
- package/dist/cli/commands/benchmark.js +0 -204
- package/dist/cli/commands/benchmark.js.map +0 -1
- package/dist/cli/commands/validate.js +0 -157
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -14
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -233
- package/dist/cli/generate.js.map +0 -1
- package/dist/cli/index.js +0 -182
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/validate.d.ts +0 -15
- package/dist/cli/validate.d.ts.map +0 -1
- package/dist/cli/validate.js +0 -162
- package/dist/cli/validate.js.map +0 -1
- package/dist/coercion/bigint.js.map +0 -1
- package/dist/coercion/boolean.js +0 -59
- package/dist/coercion/boolean.js.map +0 -1
- package/dist/coercion/date.js +0 -52
- package/dist/coercion/date.js.map +0 -1
- package/dist/coercion/number.js +0 -160
- package/dist/coercion/number.js.map +0 -1
- package/dist/coercion/string.js.map +0 -1
- package/dist/compat/index.js +0 -14
- package/dist/compat/index.js.map +0 -1
- package/dist/events.js +0 -8
- package/dist/events.js.map +0 -1
- package/dist/guards.d.ts +0 -143
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -238
- package/dist/guards.js.map +0 -1
- package/dist/index-new.d.ts.map +0 -1
- package/dist/locales/backup-en.js +0 -105
- package/dist/locales/backup-en.js.map +0 -1
- package/dist/locales/types.js +0 -2
- package/dist/locales/types.js.map +0 -1
- package/dist/locales.d.ts +0 -54
- package/dist/locales.d.ts.map +0 -1
- package/dist/locales.js +0 -732
- package/dist/locales.js.map +0 -1
- package/dist/logger.js +0 -184
- package/dist/logger.js.map +0 -1
- package/dist/plugins/codecs.d.ts +0 -17
- package/dist/plugins/codecs.d.ts.map +0 -1
- package/dist/plugins/codecs.js +0 -29
- package/dist/plugins/codecs.js.map +0 -1
- package/dist/plugins/coercion.d.ts +0 -13
- package/dist/plugins/coercion.d.ts.map +0 -1
- package/dist/plugins/coercion.js +0 -34
- package/dist/plugins/coercion.js.map +0 -1
- package/dist/plugins/core-validators.d.ts +0 -13
- package/dist/plugins/core-validators.d.ts.map +0 -1
- package/dist/plugins/core-validators.js +0 -96
- package/dist/plugins/core-validators.js.map +0 -1
- package/dist/plugins/index.js +0 -8
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/kernel.d.ts +0 -29
- package/dist/plugins/kernel.d.ts.map +0 -1
- package/dist/plugins/kernel.js +0 -486
- package/dist/plugins/kernel.js.map +0 -1
- package/dist/plugins/types.js +0 -8
- package/dist/plugins/types.js.map +0 -1
- package/dist/style.d.ts +0 -123
- package/dist/style.d.ts.map +0 -1
- package/dist/style.js +0 -369
- package/dist/style.js.map +0 -1
- package/dist/utils/codec-utils.js +0 -229
- package/dist/utils/codec-utils.js.map +0 -1
- package/dist/utils/deep-merge.js +0 -76
- package/dist/utils/deep-merge.js.map +0 -1
- package/dist/utils/ip-validation.js +0 -98
- package/dist/utils/ip-validation.js.map +0 -1
- package/dist/utils/security.js +0 -61
- package/dist/utils/security.js.map +0 -1
- package/dist/validators/any.js +0 -25
- package/dist/validators/any.js.map +0 -1
- package/dist/validators/array.js +0 -190
- package/dist/validators/array.js.map +0 -1
- package/dist/validators/base.js +0 -499
- package/dist/validators/base.js.map +0 -1
- package/dist/validators/base64.js +0 -65
- package/dist/validators/base64.js.map +0 -1
- package/dist/validators/bigint.js +0 -142
- package/dist/validators/bigint.js.map +0 -1
- package/dist/validators/boolean.js +0 -114
- package/dist/validators/boolean.js.map +0 -1
- package/dist/validators/codec.js +0 -182
- package/dist/validators/codec.js.map +0 -1
- package/dist/validators/custom.js +0 -50
- package/dist/validators/custom.js.map +0 -1
- package/dist/validators/date.js +0 -227
- package/dist/validators/date.js.map +0 -1
- package/dist/validators/discriminated-union.js +0 -98
- package/dist/validators/discriminated-union.js.map +0 -1
- package/dist/validators/enum.js +0 -82
- package/dist/validators/enum.js.map +0 -1
- package/dist/validators/file.js +0 -114
- package/dist/validators/file.js.map +0 -1
- package/dist/validators/function.js +0 -45
- package/dist/validators/function.js.map +0 -1
- package/dist/validators/hex.js +0 -62
- package/dist/validators/hex.js.map +0 -1
- package/dist/validators/intersection.js +0 -64
- package/dist/validators/intersection.js.map +0 -1
- package/dist/validators/json.js +0 -64
- package/dist/validators/json.js.map +0 -1
- package/dist/validators/lazy.js +0 -42
- package/dist/validators/lazy.js.map +0 -1
- package/dist/validators/literal.js +0 -45
- package/dist/validators/literal.js.map +0 -1
- package/dist/validators/map.js +0 -54
- package/dist/validators/map.js.map +0 -1
- package/dist/validators/nan.js +0 -32
- package/dist/validators/nan.js.map +0 -1
- package/dist/validators/never.js +0 -29
- package/dist/validators/never.js.map +0 -1
- package/dist/validators/null.js +0 -31
- package/dist/validators/null.js.map +0 -1
- package/dist/validators/number.js +0 -225
- package/dist/validators/number.js.map +0 -1
- package/dist/validators/object-optimized.d.ts +0 -23
- package/dist/validators/object-optimized.d.ts.map +0 -1
- package/dist/validators/object-optimized.js +0 -179
- package/dist/validators/object-optimized.js.map +0 -1
- package/dist/validators/object-ultra.d.ts +0 -34
- package/dist/validators/object-ultra.d.ts.map +0 -1
- package/dist/validators/object-ultra.js +0 -175
- package/dist/validators/object-ultra.js.map +0 -1
- package/dist/validators/object.js +0 -458
- package/dist/validators/object.js.map +0 -1
- package/dist/validators/record.js +0 -128
- package/dist/validators/record.js.map +0 -1
- package/dist/validators/set.js +0 -51
- package/dist/validators/set.js.map +0 -1
- package/dist/validators/string-bool.js +0 -127
- package/dist/validators/string-bool.js.map +0 -1
- package/dist/validators/string-formats.js +0 -120
- package/dist/validators/string-formats.js.map +0 -1
- package/dist/validators/string-ultra.d.ts +0 -49
- package/dist/validators/string-ultra.d.ts.map +0 -1
- package/dist/validators/string-ultra.js +0 -217
- package/dist/validators/string-ultra.js.map +0 -1
- package/dist/validators/string.js +0 -253
- package/dist/validators/string.js.map +0 -1
- package/dist/validators/symbol.js +0 -42
- package/dist/validators/symbol.js.map +0 -1
- package/dist/validators/template-literal.js +0 -102
- package/dist/validators/template-literal.js.map +0 -1
- package/dist/validators/tuple.js +0 -55
- package/dist/validators/tuple.js.map +0 -1
- package/dist/validators/uint8array.js +0 -98
- package/dist/validators/uint8array.js.map +0 -1
- package/dist/validators/undefined.js +0 -31
- package/dist/validators/undefined.js.map +0 -1
- package/dist/validators/union-optimized.d.ts +0 -15
- package/dist/validators/union-optimized.d.ts.map +0 -1
- package/dist/validators/union-optimized.js +0 -92
- package/dist/validators/union-optimized.js.map +0 -1
- package/dist/validators/union.js +0 -126
- package/dist/validators/union.js.map +0 -1
- package/dist/validators/unknown.js.map +0 -1
- package/dist/validators/void.js +0 -35
- package/dist/validators/void.js.map +0 -1
- package/dist/validators/xor.js +0 -64
- package/dist/validators/xor.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxog/vld",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Ultra-fast TypeScript-first schema validation with zero dependencies, 27+ language support, plugin system, and CLI tools",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/index.
|
|
6
|
+
"main": "./dist/cjs/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"bin": {
|
|
@@ -11,22 +11,81 @@
|
|
|
11
11
|
},
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
15
|
"import": "./dist/index.js",
|
|
16
|
-
"
|
|
16
|
+
"require": "./dist/cjs/index.cjs"
|
|
17
|
+
},
|
|
18
|
+
"./mini": {
|
|
19
|
+
"types": "./dist/mini.d.ts",
|
|
20
|
+
"import": "./dist/mini.js",
|
|
21
|
+
"require": "./dist/cjs/mini.cjs"
|
|
22
|
+
},
|
|
23
|
+
"./errors": {
|
|
24
|
+
"types": "./dist/errors.d.ts",
|
|
25
|
+
"import": "./dist/errors.js",
|
|
26
|
+
"require": "./dist/cjs/errors.cjs"
|
|
27
|
+
},
|
|
28
|
+
"./validators": {
|
|
29
|
+
"types": "./dist/validators/index.d.ts",
|
|
30
|
+
"import": "./dist/validators/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./validators/*": {
|
|
33
|
+
"types": "./dist/validators/*.d.ts",
|
|
34
|
+
"import": "./dist/validators/*.js"
|
|
35
|
+
},
|
|
36
|
+
"./coercion": {
|
|
37
|
+
"types": "./dist/coercion/index.d.ts",
|
|
38
|
+
"import": "./dist/coercion/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./codecs": {
|
|
41
|
+
"types": "./dist/codecs/index.d.ts",
|
|
42
|
+
"import": "./dist/codecs/index.js"
|
|
43
|
+
},
|
|
44
|
+
"./locales": {
|
|
45
|
+
"types": "./dist/locales/index.d.ts",
|
|
46
|
+
"import": "./dist/locales/index.js",
|
|
47
|
+
"require": "./dist/cjs/locales/index.cjs"
|
|
48
|
+
},
|
|
49
|
+
"./locales/lazy": {
|
|
50
|
+
"types": "./dist/locales/lazy.d.ts",
|
|
51
|
+
"import": "./dist/locales/lazy.js",
|
|
52
|
+
"require": "./dist/cjs/locales/lazy.cjs"
|
|
53
|
+
},
|
|
54
|
+
"./locales/*": {
|
|
55
|
+
"types": "./dist/locales/*.d.ts",
|
|
56
|
+
"import": "./dist/locales/*.js"
|
|
57
|
+
},
|
|
58
|
+
"./result": {
|
|
59
|
+
"types": "./dist/compat/result.d.ts",
|
|
60
|
+
"import": "./dist/compat/result.js"
|
|
61
|
+
},
|
|
62
|
+
"./kernel": {
|
|
63
|
+
"types": "./dist/kernel.d.ts",
|
|
64
|
+
"import": "./dist/kernel.js"
|
|
65
|
+
},
|
|
66
|
+
"./pigment": {
|
|
67
|
+
"types": "./dist/pigment.d.ts",
|
|
68
|
+
"import": "./dist/pigment.js"
|
|
17
69
|
},
|
|
18
70
|
"./cli": {
|
|
19
|
-
"
|
|
20
|
-
"
|
|
71
|
+
"types": "./dist/cli/index.d.ts",
|
|
72
|
+
"import": "./dist/cli/index.js"
|
|
21
73
|
},
|
|
22
74
|
"./plugins": {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
}
|
|
75
|
+
"types": "./dist/plugins/index.d.ts",
|
|
76
|
+
"import": "./dist/plugins/index.js"
|
|
77
|
+
},
|
|
78
|
+
"./package.json": "./package.json"
|
|
26
79
|
},
|
|
27
80
|
"sideEffects": false,
|
|
28
81
|
"scripts": {
|
|
29
|
-
"build": "
|
|
82
|
+
"build": "npm run build:clean && npm run build:esm && npm run build:cjs && npm run build:types && npm run build:fix",
|
|
83
|
+
"build:clean": "node -e \"require('fs').rmSync('./dist', { recursive: true, force: true })\"",
|
|
84
|
+
"build:esm": "rollup -c rollup.config.mjs",
|
|
85
|
+
"build:cjs": "echo 'CJS built by rollup'",
|
|
86
|
+
"build:types": "tsc -p tsconfig.build.json",
|
|
87
|
+
"build:fix": "node scripts/fix-imports.cjs",
|
|
88
|
+
"build:legacy": "tsc && node scripts/fix-imports.cjs",
|
|
30
89
|
"test": "jest --coverage",
|
|
31
90
|
"test:types": "tsc --noEmit",
|
|
32
91
|
"benchmark": "node benchmarks/quick-bench.cjs",
|
|
@@ -87,7 +146,6 @@
|
|
|
87
146
|
"jest-junit": "^16.0.0",
|
|
88
147
|
"prettier": "^3.1.1",
|
|
89
148
|
"rollup": "^4.46.2",
|
|
90
|
-
"rollup-plugin-typescript2": "^0.36.0",
|
|
91
149
|
"ts-jest": "^29.4.1",
|
|
92
150
|
"typescript": "^5.3.3",
|
|
93
151
|
"zod": "^4.0.17"
|
package/dist/cli/benchmark.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD CLI - Benchmark Command
|
|
3
|
-
*
|
|
4
|
-
* VLD performans testlerini çalıştırır.
|
|
5
|
-
*
|
|
6
|
-
* Kullanım:
|
|
7
|
-
* vld benchmark
|
|
8
|
-
* vld benchmark --iterations 10000
|
|
9
|
-
*/
|
|
10
|
-
import type { Command } from './index.js';
|
|
11
|
-
/**
|
|
12
|
-
* Benchmark command
|
|
13
|
-
*/
|
|
14
|
-
export declare const benchmarkCommand: Command;
|
|
15
|
-
//# sourceMappingURL=benchmark.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAoD9B,CAAC"}
|
package/dist/cli/benchmark.js
DELETED
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD CLI - Benchmark Command
|
|
3
|
-
*
|
|
4
|
-
* VLD performans testlerini çalıştırır.
|
|
5
|
-
*
|
|
6
|
-
* Kullanım:
|
|
7
|
-
* vld benchmark
|
|
8
|
-
* vld benchmark --iterations 10000
|
|
9
|
-
*/
|
|
10
|
-
import { style, formatTable } from '../style.js';
|
|
11
|
-
import { v } from '../index.js';
|
|
12
|
-
/**
|
|
13
|
-
* Benchmark command
|
|
14
|
-
*/
|
|
15
|
-
export const benchmarkCommand = {
|
|
16
|
-
name: 'benchmark',
|
|
17
|
-
description: 'Run VLD performance benchmarks',
|
|
18
|
-
aliases: ['bench', 'b'],
|
|
19
|
-
arguments: [],
|
|
20
|
-
options: [
|
|
21
|
-
{
|
|
22
|
-
name: 'iterations',
|
|
23
|
-
short: 'i',
|
|
24
|
-
description: 'Number of iterations',
|
|
25
|
-
type: 'string',
|
|
26
|
-
default: '10000'
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: 'warmup',
|
|
30
|
-
short: 'w',
|
|
31
|
-
description: 'Warmup iterations',
|
|
32
|
-
type: 'string',
|
|
33
|
-
default: '1000'
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
name: 'format',
|
|
37
|
-
short: 'f',
|
|
38
|
-
description: 'Output format (pretty, json)',
|
|
39
|
-
type: 'string',
|
|
40
|
-
default: 'pretty'
|
|
41
|
-
}
|
|
42
|
-
],
|
|
43
|
-
async action(_args, opts) {
|
|
44
|
-
const iterations = parseInt(opts.iterations, 10);
|
|
45
|
-
const warmup = parseInt(opts.warmup, 10);
|
|
46
|
-
const format = opts.format;
|
|
47
|
-
console.log(style.cyan('VLD Performance Benchmark'));
|
|
48
|
-
console.log('');
|
|
49
|
-
console.log(`${style.dim('Iterations:')} ${iterations.toLocaleString()}`);
|
|
50
|
-
console.log(`${style.dim('Warmup:')} ${warmup.toLocaleString()}`);
|
|
51
|
-
console.log('');
|
|
52
|
-
// Run benchmarks
|
|
53
|
-
const results = await runBenchmarks(iterations, warmup);
|
|
54
|
-
// Output results
|
|
55
|
-
if (format === 'json') {
|
|
56
|
-
console.log(JSON.stringify(results, null, 2));
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
printResults(results);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Benchmark suite'leri
|
|
65
|
-
*/
|
|
66
|
-
function getBenchmarkSuites() {
|
|
67
|
-
// Test data
|
|
68
|
-
const simpleStringData = 'hello world';
|
|
69
|
-
const simpleNumberData = 42;
|
|
70
|
-
const simpleObjectData = { name: 'John', age: 30, email: 'john@example.com' };
|
|
71
|
-
const complexObjectData = {
|
|
72
|
-
user: {
|
|
73
|
-
id: 1,
|
|
74
|
-
name: 'John Doe',
|
|
75
|
-
email: 'john@example.com',
|
|
76
|
-
roles: ['admin', 'user'],
|
|
77
|
-
profile: {
|
|
78
|
-
bio: 'A software developer',
|
|
79
|
-
avatar: 'https://example.com/avatar.jpg',
|
|
80
|
-
settings: {
|
|
81
|
-
theme: 'dark',
|
|
82
|
-
notifications: true
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
posts: [
|
|
87
|
-
{ id: 1, title: 'Hello', content: 'World' },
|
|
88
|
-
{ id: 2, title: 'Foo', content: 'Bar' }
|
|
89
|
-
]
|
|
90
|
-
};
|
|
91
|
-
const arrayData = Array.from({ length: 100 }, (_, i) => ({
|
|
92
|
-
id: i,
|
|
93
|
-
name: `Item ${i}`,
|
|
94
|
-
value: i * 10
|
|
95
|
-
}));
|
|
96
|
-
// Schemas
|
|
97
|
-
const stringSchema = v.string();
|
|
98
|
-
const numberSchema = v.number();
|
|
99
|
-
const simpleObjectSchema = v.object({
|
|
100
|
-
name: v.string(),
|
|
101
|
-
age: v.number(),
|
|
102
|
-
email: v.string().email()
|
|
103
|
-
});
|
|
104
|
-
const complexObjectSchema = v.object({
|
|
105
|
-
user: v.object({
|
|
106
|
-
id: v.number(),
|
|
107
|
-
name: v.string(),
|
|
108
|
-
email: v.string().email(),
|
|
109
|
-
roles: v.array(v.string()),
|
|
110
|
-
profile: v.object({
|
|
111
|
-
bio: v.string(),
|
|
112
|
-
avatar: v.string().url(),
|
|
113
|
-
settings: v.object({
|
|
114
|
-
theme: v.string(),
|
|
115
|
-
notifications: v.boolean()
|
|
116
|
-
})
|
|
117
|
-
})
|
|
118
|
-
}),
|
|
119
|
-
posts: v.array(v.object({
|
|
120
|
-
id: v.number(),
|
|
121
|
-
title: v.string(),
|
|
122
|
-
content: v.string()
|
|
123
|
-
}))
|
|
124
|
-
});
|
|
125
|
-
const arraySchema = v.array(v.object({
|
|
126
|
-
id: v.number(),
|
|
127
|
-
name: v.string(),
|
|
128
|
-
value: v.number()
|
|
129
|
-
}));
|
|
130
|
-
return [
|
|
131
|
-
{
|
|
132
|
-
name: 'String validation',
|
|
133
|
-
run: (n) => {
|
|
134
|
-
for (let i = 0; i < n; i++) {
|
|
135
|
-
stringSchema.parse(simpleStringData);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
name: 'Number validation',
|
|
141
|
-
run: (n) => {
|
|
142
|
-
for (let i = 0; i < n; i++) {
|
|
143
|
-
numberSchema.parse(simpleNumberData);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
name: 'Simple object',
|
|
149
|
-
run: (n) => {
|
|
150
|
-
for (let i = 0; i < n; i++) {
|
|
151
|
-
simpleObjectSchema.parse(simpleObjectData);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
name: 'Complex object',
|
|
157
|
-
run: (n) => {
|
|
158
|
-
for (let i = 0; i < n; i++) {
|
|
159
|
-
complexObjectSchema.parse(complexObjectData);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
name: 'Array (100 items)',
|
|
165
|
-
run: (n) => {
|
|
166
|
-
for (let i = 0; i < n; i++) {
|
|
167
|
-
arraySchema.parse(arrayData);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
name: 'safeParse (success)',
|
|
173
|
-
run: (n) => {
|
|
174
|
-
for (let i = 0; i < n; i++) {
|
|
175
|
-
simpleObjectSchema.safeParse(simpleObjectData);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
name: 'safeParse (failure)',
|
|
181
|
-
run: (n) => {
|
|
182
|
-
const invalidData = { name: 123, age: 'invalid', email: 'invalid' };
|
|
183
|
-
for (let i = 0; i < n; i++) {
|
|
184
|
-
simpleObjectSchema.safeParse(invalidData);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
];
|
|
189
|
-
}
|
|
190
|
-
// ============================================================================
|
|
191
|
-
// Benchmark Runner
|
|
192
|
-
// ============================================================================
|
|
193
|
-
/**
|
|
194
|
-
* Benchmark'ları çalıştırır
|
|
195
|
-
*/
|
|
196
|
-
async function runBenchmarks(iterations, warmup) {
|
|
197
|
-
const suites = getBenchmarkSuites();
|
|
198
|
-
const results = [];
|
|
199
|
-
for (const suite of suites) {
|
|
200
|
-
// Warmup
|
|
201
|
-
process.stdout.write(`${style.dim('Warming up:')} ${suite.name}...`);
|
|
202
|
-
suite.run(warmup);
|
|
203
|
-
process.stdout.write('\r' + ' '.repeat(60) + '\r');
|
|
204
|
-
// Benchmark
|
|
205
|
-
process.stdout.write(`${style.dim('Running:')} ${suite.name}...`);
|
|
206
|
-
const start = performance.now();
|
|
207
|
-
suite.run(iterations);
|
|
208
|
-
const end = performance.now();
|
|
209
|
-
process.stdout.write('\r' + ' '.repeat(60) + '\r');
|
|
210
|
-
const ms = end - start;
|
|
211
|
-
const opsPerSec = Math.round((iterations / ms) * 1000);
|
|
212
|
-
results.push({
|
|
213
|
-
name: suite.name,
|
|
214
|
-
ops: iterations,
|
|
215
|
-
ms: Math.round(ms * 100) / 100,
|
|
216
|
-
opsPerSec
|
|
217
|
-
});
|
|
218
|
-
console.log(`${style.green('✔')} ${suite.name}: ${style.bold(opsPerSec.toLocaleString())} ops/sec`);
|
|
219
|
-
}
|
|
220
|
-
return results;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Sonuçları yazdırır
|
|
224
|
-
*/
|
|
225
|
-
function printResults(results) {
|
|
226
|
-
console.log('');
|
|
227
|
-
console.log(style.bold('Results:'));
|
|
228
|
-
console.log('');
|
|
229
|
-
const table = formatTable(results.map((r) => [
|
|
230
|
-
r.name,
|
|
231
|
-
r.opsPerSec.toLocaleString(),
|
|
232
|
-
`${r.ms.toFixed(2)}ms`
|
|
233
|
-
]), {
|
|
234
|
-
columns: [
|
|
235
|
-
{ header: 'Benchmark', align: 'left' },
|
|
236
|
-
{ header: 'ops/sec', align: 'right' },
|
|
237
|
-
{ header: 'Time', align: 'right' }
|
|
238
|
-
],
|
|
239
|
-
headerColor: style.bold
|
|
240
|
-
});
|
|
241
|
-
console.log(table);
|
|
242
|
-
console.log('');
|
|
243
|
-
// Summary
|
|
244
|
-
const totalOps = results.reduce((sum, r) => sum + r.opsPerSec, 0);
|
|
245
|
-
const avgOps = Math.round(totalOps / results.length);
|
|
246
|
-
console.log(style.dim('Average:') + ` ${avgOps.toLocaleString()} ops/sec`);
|
|
247
|
-
}
|
|
248
|
-
//# sourceMappingURL=benchmark.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * VLD CLI - Benchmark Command\n *\n * VLD performans testlerini çalıştırır.\n *\n * Kullanım:\n * vld benchmark\n * vld benchmark --iterations 10000\n */\n\nimport type { Command } from './index.js';\nimport { style, formatTable } from '../style.js';\nimport { v } from '../index.js';\n\n/**\n * Benchmark command\n */\nexport const benchmarkCommand: Command = {\n name: 'benchmark',\n description: 'Run VLD performance benchmarks',\n aliases: ['bench', 'b'],\n\n arguments: [],\n\n options: [\n {\n name: 'iterations',\n short: 'i',\n description: 'Number of iterations',\n type: 'string',\n default: '10000'\n },\n {\n name: 'warmup',\n short: 'w',\n description: 'Warmup iterations',\n type: 'string',\n default: '1000'\n },\n {\n name: 'format',\n short: 'f',\n description: 'Output format (pretty, json)',\n type: 'string',\n default: 'pretty'\n }\n ],\n\n async action(_args, opts) {\n const iterations = parseInt(opts.iterations as string, 10);\n const warmup = parseInt(opts.warmup as string, 10);\n const format = opts.format as string;\n\n console.log(style.cyan('VLD Performance Benchmark'));\n console.log('');\n console.log(`${style.dim('Iterations:')} ${iterations.toLocaleString()}`);\n console.log(`${style.dim('Warmup:')} ${warmup.toLocaleString()}`);\n console.log('');\n\n // Run benchmarks\n const results = await runBenchmarks(iterations, warmup);\n\n // Output results\n if (format === 'json') {\n console.log(JSON.stringify(results, null, 2));\n } else {\n printResults(results);\n }\n }\n};\n\n// ============================================================================\n// Benchmark Definitions\n// ============================================================================\n\ninterface BenchmarkResult {\n name: string;\n ops: number;\n ms: number;\n opsPerSec: number;\n}\n\ninterface BenchmarkSuite {\n name: string;\n run: (iterations: number) => void;\n}\n\n/**\n * Benchmark suite'leri\n */\nfunction getBenchmarkSuites(): BenchmarkSuite[] {\n // Test data\n const simpleStringData = 'hello world';\n const simpleNumberData = 42;\n const simpleObjectData = { name: 'John', age: 30, email: 'john@example.com' };\n const complexObjectData = {\n user: {\n id: 1,\n name: 'John Doe',\n email: 'john@example.com',\n roles: ['admin', 'user'],\n profile: {\n bio: 'A software developer',\n avatar: 'https://example.com/avatar.jpg',\n settings: {\n theme: 'dark',\n notifications: true\n }\n }\n },\n posts: [\n { id: 1, title: 'Hello', content: 'World' },\n { id: 2, title: 'Foo', content: 'Bar' }\n ]\n };\n const arrayData = Array.from({ length: 100 }, (_, i) => ({\n id: i,\n name: `Item ${i}`,\n value: i * 10\n }));\n\n // Schemas\n const stringSchema = v.string();\n const numberSchema = v.number();\n const simpleObjectSchema = v.object({\n name: v.string(),\n age: v.number(),\n email: v.string().email()\n });\n const complexObjectSchema = v.object({\n user: v.object({\n id: v.number(),\n name: v.string(),\n email: v.string().email(),\n roles: v.array(v.string()),\n profile: v.object({\n bio: v.string(),\n avatar: v.string().url(),\n settings: v.object({\n theme: v.string(),\n notifications: v.boolean()\n })\n })\n }),\n posts: v.array(v.object({\n id: v.number(),\n title: v.string(),\n content: v.string()\n }))\n });\n const arraySchema = v.array(v.object({\n id: v.number(),\n name: v.string(),\n value: v.number()\n }));\n\n return [\n {\n name: 'String validation',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n stringSchema.parse(simpleStringData);\n }\n }\n },\n {\n name: 'Number validation',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n numberSchema.parse(simpleNumberData);\n }\n }\n },\n {\n name: 'Simple object',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n simpleObjectSchema.parse(simpleObjectData);\n }\n }\n },\n {\n name: 'Complex object',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n complexObjectSchema.parse(complexObjectData);\n }\n }\n },\n {\n name: 'Array (100 items)',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n arraySchema.parse(arrayData);\n }\n }\n },\n {\n name: 'safeParse (success)',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n simpleObjectSchema.safeParse(simpleObjectData);\n }\n }\n },\n {\n name: 'safeParse (failure)',\n run: (n) => {\n const invalidData = { name: 123, age: 'invalid', email: 'invalid' };\n for (let i = 0; i < n; i++) {\n simpleObjectSchema.safeParse(invalidData);\n }\n }\n }\n ];\n}\n\n// ============================================================================\n// Benchmark Runner\n// ============================================================================\n\n/**\n * Benchmark'ları çalıştırır\n */\nasync function runBenchmarks(iterations: number, warmup: number): Promise<BenchmarkResult[]> {\n const suites = getBenchmarkSuites();\n const results: BenchmarkResult[] = [];\n\n for (const suite of suites) {\n // Warmup\n process.stdout.write(`${style.dim('Warming up:')} ${suite.name}...`);\n suite.run(warmup);\n process.stdout.write('\\r' + ' '.repeat(60) + '\\r');\n\n // Benchmark\n process.stdout.write(`${style.dim('Running:')} ${suite.name}...`);\n\n const start = performance.now();\n suite.run(iterations);\n const end = performance.now();\n\n process.stdout.write('\\r' + ' '.repeat(60) + '\\r');\n\n const ms = end - start;\n const opsPerSec = Math.round((iterations / ms) * 1000);\n\n results.push({\n name: suite.name,\n ops: iterations,\n ms: Math.round(ms * 100) / 100,\n opsPerSec\n });\n\n console.log(`${style.green('✔')} ${suite.name}: ${style.bold(opsPerSec.toLocaleString())} ops/sec`);\n }\n\n return results;\n}\n\n/**\n * Sonuçları yazdırır\n */\nfunction printResults(results: BenchmarkResult[]): void {\n console.log('');\n console.log(style.bold('Results:'));\n console.log('');\n\n const table = formatTable(\n results.map((r) => [\n r.name,\n r.opsPerSec.toLocaleString(),\n `${r.ms.toFixed(2)}ms`\n ]),\n {\n columns: [\n { header: 'Benchmark', align: 'left' },\n { header: 'ops/sec', align: 'right' },\n { header: 'Time', align: 'right' }\n ],\n headerColor: style.bold\n }\n );\n\n console.log(table);\n console.log('');\n\n // Summary\n const totalOps = results.reduce((sum, r) => sum + r.opsPerSec, 0);\n const avgOps = Math.round(totalOps / results.length);\n\n console.log(style.dim('Average:') + ` ${avgOps.toLocaleString()} ops/sec`);\n}\n"]}
|
package/dist/cli/bin.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* VLD CLI Entry Point
|
|
4
|
-
*
|
|
5
|
-
* This is the main entry point for the `vld` command-line tool.
|
|
6
|
-
*/
|
|
7
|
-
import { vldCli } from './index.js';
|
|
8
|
-
import { validateCommand } from './commands/validate.js';
|
|
9
|
-
import { benchmarkCommand } from './commands/benchmark.js';
|
|
10
|
-
// Register commands
|
|
11
|
-
vldCli.command(validateCommand);
|
|
12
|
-
vldCli.command(benchmarkCommand);
|
|
13
|
-
// Help command
|
|
14
|
-
vldCli.command({
|
|
15
|
-
name: 'help',
|
|
16
|
-
description: 'Show help information',
|
|
17
|
-
aliases: ['h'],
|
|
18
|
-
action: () => {
|
|
19
|
-
console.log(vldCli.help());
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
// Version command
|
|
23
|
-
vldCli.command({
|
|
24
|
-
name: 'version',
|
|
25
|
-
description: 'Show version information',
|
|
26
|
-
action: () => {
|
|
27
|
-
console.log('vld v1.5.0');
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
// Run CLI
|
|
31
|
-
vldCli.run(process.argv.slice(2)).catch((error) => {
|
|
32
|
-
console.error('Fatal error:', error);
|
|
33
|
-
process.exitCode = 1;
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=bin.js.map
|
package/dist/cli/bin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,oBAAoB;AACpB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAChC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEjC,eAAe;AACf,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uBAAuB;IACpC,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEH,kBAAkB;AAClB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC,CAAC;AAEH,UAAU;AACV,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\r\n/**\r\n * VLD CLI Entry Point\r\n *\r\n * This is the main entry point for the `vld` command-line tool.\r\n */\r\n\r\nimport { vldCli } from './index';\r\nimport { validateCommand } from './commands/validate';\r\nimport { benchmarkCommand } from './commands/benchmark';\r\n\r\n// Register commands\r\nvldCli.command(validateCommand);\r\nvldCli.command(benchmarkCommand);\r\n\r\n// Help command\r\nvldCli.command({\r\n name: 'help',\r\n description: 'Show help information',\r\n aliases: ['h'],\r\n action: () => {\r\n console.log(vldCli.help());\r\n }\r\n});\r\n\r\n// Version command\r\nvldCli.command({\r\n name: 'version',\r\n description: 'Show version information',\r\n action: () => {\r\n console.log('vld v1.5.0');\r\n }\r\n});\r\n\r\n// Run CLI\r\nvldCli.run(process.argv.slice(2)).catch((error) => {\r\n console.error('Fatal error:', error);\r\n process.exitCode = 1;\r\n});\r\n"]}
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD CLI - Benchmark Command
|
|
3
|
-
*
|
|
4
|
-
* Run performance benchmarks for VLD validation.
|
|
5
|
-
*/
|
|
6
|
-
import { pigment } from '../../pigment.js';
|
|
7
|
-
import { v } from '../../index.js';
|
|
8
|
-
/**
|
|
9
|
-
* Run a single benchmark
|
|
10
|
-
*/
|
|
11
|
-
function runBenchmark(name, fn, iterations) {
|
|
12
|
-
// Warm up
|
|
13
|
-
for (let i = 0; i < Math.min(100, iterations / 10); i++) {
|
|
14
|
-
fn();
|
|
15
|
-
}
|
|
16
|
-
// Run benchmark
|
|
17
|
-
const start = performance.now();
|
|
18
|
-
for (let i = 0; i < iterations; i++) {
|
|
19
|
-
fn();
|
|
20
|
-
}
|
|
21
|
-
const end = performance.now();
|
|
22
|
-
const totalMs = end - start;
|
|
23
|
-
const avgMs = totalMs / iterations;
|
|
24
|
-
const opsPerSec = 1000 / avgMs;
|
|
25
|
-
return { name, iterations, totalMs, avgMs, opsPerSec };
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Format number with comma separators
|
|
29
|
-
*/
|
|
30
|
-
function formatNumber(n) {
|
|
31
|
-
return n.toLocaleString('en-US', { maximumFractionDigits: 2 });
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Format benchmark result
|
|
35
|
-
*/
|
|
36
|
-
function formatResult(result, colored) {
|
|
37
|
-
const name = colored ? pigment.cyan(result.name.padEnd(30)) : result.name.padEnd(30);
|
|
38
|
-
const ops = colored
|
|
39
|
-
? pigment.green(formatNumber(result.opsPerSec).padStart(12))
|
|
40
|
-
: formatNumber(result.opsPerSec).padStart(12);
|
|
41
|
-
const avg = colored
|
|
42
|
-
? pigment.yellow(result.avgMs.toFixed(6).padStart(12))
|
|
43
|
-
: result.avgMs.toFixed(6).padStart(12);
|
|
44
|
-
return `${name} ${ops} ops/sec ${avg} ms/op`;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Benchmark command
|
|
48
|
-
*/
|
|
49
|
-
export const benchmarkCommand = {
|
|
50
|
-
name: 'benchmark',
|
|
51
|
-
description: 'Run performance benchmarks',
|
|
52
|
-
aliases: ['bench', 'b'],
|
|
53
|
-
options: [
|
|
54
|
-
{
|
|
55
|
-
name: 'iterations',
|
|
56
|
-
short: 'n',
|
|
57
|
-
description: 'Number of iterations',
|
|
58
|
-
type: 'number',
|
|
59
|
-
default: 10000
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: 'suite',
|
|
63
|
-
short: 's',
|
|
64
|
-
description: 'Benchmark suite to run (all, primitives, objects, arrays)',
|
|
65
|
-
type: 'string',
|
|
66
|
-
default: 'all'
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: 'json',
|
|
70
|
-
short: 'j',
|
|
71
|
-
description: 'Output as JSON',
|
|
72
|
-
type: 'boolean',
|
|
73
|
-
default: false
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
name: 'no-color',
|
|
77
|
-
description: 'Disable colored output',
|
|
78
|
-
type: 'boolean',
|
|
79
|
-
default: false
|
|
80
|
-
}
|
|
81
|
-
],
|
|
82
|
-
action: async (_args, options) => {
|
|
83
|
-
const iterations = options.iterations;
|
|
84
|
-
const suite = options.suite;
|
|
85
|
-
const json = options.json;
|
|
86
|
-
const noColor = options['no-color'];
|
|
87
|
-
const colored = !noColor;
|
|
88
|
-
const results = [];
|
|
89
|
-
// Primitive validators
|
|
90
|
-
const stringSchema = v.string();
|
|
91
|
-
const numberSchema = v.number();
|
|
92
|
-
const booleanSchema = v.boolean();
|
|
93
|
-
const dateSchema = v.date();
|
|
94
|
-
// Object validator
|
|
95
|
-
const userSchema = v.object({
|
|
96
|
-
name: v.string(),
|
|
97
|
-
email: v.string(),
|
|
98
|
-
age: v.number(),
|
|
99
|
-
active: v.boolean()
|
|
100
|
-
});
|
|
101
|
-
// Array validator
|
|
102
|
-
const numbersSchema = v.array(v.number());
|
|
103
|
-
// Nested object validator
|
|
104
|
-
const nestedSchema = v.object({
|
|
105
|
-
user: v.object({
|
|
106
|
-
name: v.string(),
|
|
107
|
-
email: v.string()
|
|
108
|
-
}),
|
|
109
|
-
items: v.array(v.object({
|
|
110
|
-
id: v.number(),
|
|
111
|
-
name: v.string(),
|
|
112
|
-
price: v.number()
|
|
113
|
-
}))
|
|
114
|
-
});
|
|
115
|
-
// Test data
|
|
116
|
-
const testString = 'hello world';
|
|
117
|
-
const testNumber = 42;
|
|
118
|
-
const testBoolean = true;
|
|
119
|
-
const testDate = new Date();
|
|
120
|
-
const testUser = { name: 'John', email: 'john@example.com', age: 30, active: true };
|
|
121
|
-
const testNumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
122
|
-
const testNested = {
|
|
123
|
-
user: { name: 'John', email: 'john@example.com' },
|
|
124
|
-
items: [
|
|
125
|
-
{ id: 1, name: 'Item 1', price: 10.99 },
|
|
126
|
-
{ id: 2, name: 'Item 2', price: 20.99 },
|
|
127
|
-
{ id: 3, name: 'Item 3', price: 30.99 }
|
|
128
|
-
]
|
|
129
|
-
};
|
|
130
|
-
if (!json) {
|
|
131
|
-
console.log(pigment.bold('VLD Performance Benchmark'));
|
|
132
|
-
console.log(pigment.dim(`Running ${formatNumber(iterations)} iterations per test`));
|
|
133
|
-
console.log('');
|
|
134
|
-
}
|
|
135
|
-
// Primitive benchmarks
|
|
136
|
-
if (suite === 'all' || suite === 'primitives') {
|
|
137
|
-
if (!json) {
|
|
138
|
-
console.log(pigment.bold('Primitives:'));
|
|
139
|
-
}
|
|
140
|
-
results.push(runBenchmark('string.parse()', () => stringSchema.parse(testString), iterations));
|
|
141
|
-
results.push(runBenchmark('number.parse()', () => numberSchema.parse(testNumber), iterations));
|
|
142
|
-
results.push(runBenchmark('boolean.parse()', () => booleanSchema.parse(testBoolean), iterations));
|
|
143
|
-
results.push(runBenchmark('date.parse()', () => dateSchema.parse(testDate), iterations));
|
|
144
|
-
results.push(runBenchmark('string.safeParse()', () => stringSchema.safeParse(testString), iterations));
|
|
145
|
-
if (!json) {
|
|
146
|
-
for (const result of results.slice(-5)) {
|
|
147
|
-
console.log(' ' + formatResult(result, colored));
|
|
148
|
-
}
|
|
149
|
-
console.log('');
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
// Object benchmarks
|
|
153
|
-
if (suite === 'all' || suite === 'objects') {
|
|
154
|
-
if (!json) {
|
|
155
|
-
console.log(pigment.bold('Objects:'));
|
|
156
|
-
}
|
|
157
|
-
results.push(runBenchmark('object.parse()', () => userSchema.parse(testUser), iterations));
|
|
158
|
-
results.push(runBenchmark('object.safeParse()', () => userSchema.safeParse(testUser), iterations));
|
|
159
|
-
results.push(runBenchmark('nested.parse()', () => nestedSchema.parse(testNested), iterations));
|
|
160
|
-
if (!json) {
|
|
161
|
-
for (const result of results.slice(-3)) {
|
|
162
|
-
console.log(' ' + formatResult(result, colored));
|
|
163
|
-
}
|
|
164
|
-
console.log('');
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
// Array benchmarks
|
|
168
|
-
if (suite === 'all' || suite === 'arrays') {
|
|
169
|
-
if (!json) {
|
|
170
|
-
console.log(pigment.bold('Arrays:'));
|
|
171
|
-
}
|
|
172
|
-
results.push(runBenchmark('array.parse()', () => numbersSchema.parse(testNumbers), iterations));
|
|
173
|
-
results.push(runBenchmark('array.safeParse()', () => numbersSchema.safeParse(testNumbers), iterations));
|
|
174
|
-
if (!json) {
|
|
175
|
-
for (const result of results.slice(-2)) {
|
|
176
|
-
console.log(' ' + formatResult(result, colored));
|
|
177
|
-
}
|
|
178
|
-
console.log('');
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// Summary
|
|
182
|
-
if (!json) {
|
|
183
|
-
const totalOps = results.reduce((sum, r) => sum + r.opsPerSec, 0);
|
|
184
|
-
const avgOps = totalOps / results.length;
|
|
185
|
-
console.log(pigment.bold('Summary:'));
|
|
186
|
-
console.log(` Total benchmarks: ${results.length}`);
|
|
187
|
-
console.log(` Average ops/sec: ${formatNumber(avgOps)}`);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
console.log(JSON.stringify({
|
|
191
|
-
iterations,
|
|
192
|
-
suite,
|
|
193
|
-
results: results.map((r) => ({
|
|
194
|
-
name: r.name,
|
|
195
|
-
iterations: r.iterations,
|
|
196
|
-
totalMs: r.totalMs,
|
|
197
|
-
avgMs: r.avgMs,
|
|
198
|
-
opsPerSec: r.opsPerSec
|
|
199
|
-
}))
|
|
200
|
-
}));
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
//# sourceMappingURL=benchmark.js.map
|