@oxog/vld 1.3.1 → 1.5.0
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 +333 -284
- package/README.md +13 -12
- package/dist/cli/benchmark.d.ts +15 -0
- package/dist/cli/benchmark.d.ts.map +1 -0
- package/dist/cli/benchmark.js +248 -0
- package/dist/cli/benchmark.js.map +1 -0
- package/dist/cli/bin.d.ts +8 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +35 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/benchmark.d.ts +11 -0
- package/dist/cli/commands/benchmark.d.ts.map +1 -0
- package/dist/cli/commands/benchmark.js +204 -0
- package/dist/cli/commands/benchmark.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +11 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +157 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/generate.d.ts +14 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +233 -0
- package/dist/cli/generate.js.map +1 -0
- package/dist/cli/index.d.ts +59 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +182 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/validate.d.ts +15 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +162 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/codecs/index.d.ts.map +1 -1
- package/dist/codecs/index.js +29 -10
- package/dist/codecs/index.js.map +1 -1
- package/dist/coercion/bigint.js +1 -1
- package/dist/coercion/boolean.d.ts.map +1 -1
- package/dist/coercion/boolean.js +24 -32
- package/dist/coercion/boolean.js.map +1 -1
- package/dist/coercion/date.js +2 -2
- package/dist/coercion/date.js.map +1 -1
- package/dist/coercion/number.d.ts.map +1 -1
- package/dist/coercion/number.js +20 -4
- package/dist/coercion/number.js.map +1 -1
- package/dist/coercion/string.d.ts.map +1 -1
- package/dist/coercion/string.js +9 -73
- package/dist/coercion/string.js.map +1 -1
- package/dist/compat/emitter.d.ts +73 -0
- package/dist/compat/emitter.d.ts.map +1 -0
- package/dist/compat/emitter.js +179 -0
- package/dist/compat/emitter.js.map +1 -0
- package/dist/compat/index.d.ts +15 -0
- package/dist/compat/index.d.ts.map +1 -0
- package/dist/compat/index.js +14 -0
- package/dist/compat/index.js.map +1 -0
- package/dist/compat/result.d.ts +128 -0
- package/dist/compat/result.d.ts.map +1 -0
- package/dist/compat/result.js +169 -0
- package/dist/compat/result.js.map +1 -0
- package/dist/errors.d.ts +58 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +97 -9
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +140 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +8 -0
- package/dist/events.js.map +1 -0
- package/dist/guards.d.ts +143 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +238 -0
- package/dist/guards.js.map +1 -0
- package/dist/index.d.ts +606 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +105 -6
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +29 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +402 -0
- package/dist/kernel.js.map +1 -0
- package/dist/locales/af.d.ts.map +1 -1
- package/dist/locales/af.js +18 -1
- package/dist/locales/af.js.map +1 -1
- package/dist/locales/ar.d.ts.map +1 -1
- package/dist/locales/ar.js +18 -1
- package/dist/locales/ar.js.map +1 -1
- package/dist/locales/backup-en.d.ts +3 -0
- package/dist/locales/backup-en.d.ts.map +1 -0
- package/dist/locales/backup-en.js +105 -0
- package/dist/locales/backup-en.js.map +1 -0
- package/dist/locales/bn.d.ts.map +1 -1
- package/dist/locales/bn.js +18 -1
- package/dist/locales/bn.js.map +1 -1
- package/dist/locales/da.d.ts.map +1 -1
- package/dist/locales/da.js +18 -1
- package/dist/locales/da.js.map +1 -1
- package/dist/locales/de.d.ts.map +1 -1
- package/dist/locales/de.js +18 -1
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/en.d.ts.map +1 -1
- package/dist/locales/en.js +18 -1
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es-MX.d.ts.map +1 -1
- package/dist/locales/es-MX.js +17 -1
- package/dist/locales/es-MX.js.map +1 -1
- package/dist/locales/es.d.ts.map +1 -1
- package/dist/locales/es.js +18 -1
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/fi.d.ts.map +1 -1
- package/dist/locales/fi.js +18 -1
- package/dist/locales/fi.js.map +1 -1
- package/dist/locales/fr.d.ts.map +1 -1
- package/dist/locales/fr.js +18 -1
- package/dist/locales/fr.js.map +1 -1
- package/dist/locales/hi.d.ts.map +1 -1
- package/dist/locales/hi.js +18 -1
- package/dist/locales/hi.js.map +1 -1
- package/dist/locales/id.d.ts.map +1 -1
- package/dist/locales/id.js +18 -1
- package/dist/locales/id.js.map +1 -1
- package/dist/locales/it.d.ts.map +1 -1
- package/dist/locales/it.js +18 -1
- package/dist/locales/it.js.map +1 -1
- package/dist/locales/ja.d.ts.map +1 -1
- package/dist/locales/ja.js +18 -1
- package/dist/locales/ja.js.map +1 -1
- package/dist/locales/ko.d.ts.map +1 -1
- package/dist/locales/ko.js +18 -1
- package/dist/locales/ko.js.map +1 -1
- package/dist/locales/nl.d.ts.map +1 -1
- package/dist/locales/nl.js +18 -1
- package/dist/locales/nl.js.map +1 -1
- package/dist/locales/no.d.ts.map +1 -1
- package/dist/locales/no.js +18 -1
- package/dist/locales/no.js.map +1 -1
- package/dist/locales/pl.d.ts.map +1 -1
- package/dist/locales/pl.js +18 -1
- package/dist/locales/pl.js.map +1 -1
- package/dist/locales/pt-BR.d.ts.map +1 -1
- package/dist/locales/pt-BR.js +18 -1
- package/dist/locales/pt-BR.js.map +1 -1
- package/dist/locales/pt.d.ts.map +1 -1
- package/dist/locales/pt.js +18 -1
- package/dist/locales/pt.js.map +1 -1
- package/dist/locales/ru.d.ts.map +1 -1
- package/dist/locales/ru.js +18 -1
- package/dist/locales/ru.js.map +1 -1
- package/dist/locales/sv.d.ts.map +1 -1
- package/dist/locales/sv.js +18 -1
- package/dist/locales/sv.js.map +1 -1
- package/dist/locales/sw.d.ts.map +1 -1
- package/dist/locales/sw.js +18 -1
- package/dist/locales/sw.js.map +1 -1
- package/dist/locales/th.d.ts.map +1 -1
- package/dist/locales/th.js +18 -1
- package/dist/locales/th.js.map +1 -1
- package/dist/locales/tr.d.ts.map +1 -1
- package/dist/locales/tr.js +18 -1
- package/dist/locales/tr.js.map +1 -1
- package/dist/locales/types.d.ts +13 -0
- package/dist/locales/types.d.ts.map +1 -1
- package/dist/locales/types.js.map +1 -1
- package/dist/locales/vi.d.ts.map +1 -1
- package/dist/locales/vi.js +18 -1
- package/dist/locales/vi.js.map +1 -1
- package/dist/locales/zh.d.ts.map +1 -1
- package/dist/locales/zh.js +18 -1
- package/dist/locales/zh.js.map +1 -1
- package/dist/logger.d.ts +94 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +184 -0
- package/dist/logger.js.map +1 -0
- package/dist/pigment.d.ts +124 -0
- package/dist/pigment.d.ts.map +1 -0
- package/dist/pigment.js +177 -0
- package/dist/pigment.js.map +1 -0
- package/dist/plugins/codecs.d.ts +17 -0
- package/dist/plugins/codecs.d.ts.map +1 -0
- package/dist/plugins/codecs.js +29 -0
- package/dist/plugins/codecs.js.map +1 -0
- package/dist/plugins/coercion.d.ts +13 -0
- package/dist/plugins/coercion.d.ts.map +1 -0
- package/dist/plugins/coercion.js +34 -0
- package/dist/plugins/coercion.js.map +1 -0
- package/dist/plugins/core-validators.d.ts +13 -0
- package/dist/plugins/core-validators.d.ts.map +1 -0
- package/dist/plugins/core-validators.js +96 -0
- package/dist/plugins/core-validators.js.map +1 -0
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +8 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/kernel.d.ts +29 -0
- package/dist/plugins/kernel.d.ts.map +1 -0
- package/dist/plugins/kernel.js +486 -0
- package/dist/plugins/kernel.js.map +1 -0
- package/dist/plugins/types.d.ts +186 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +8 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/style.d.ts +123 -0
- package/dist/style.d.ts.map +1 -0
- package/dist/style.js +369 -0
- package/dist/style.js.map +1 -0
- package/dist/utils/codec-utils.d.ts +2 -0
- package/dist/utils/codec-utils.d.ts.map +1 -1
- package/dist/utils/codec-utils.js +28 -4
- package/dist/utils/codec-utils.js.map +1 -1
- package/dist/utils/deep-merge.d.ts +2 -0
- package/dist/utils/deep-merge.d.ts.map +1 -1
- package/dist/utils/deep-merge.js +22 -39
- package/dist/utils/deep-merge.js.map +1 -1
- package/dist/utils/ip-validation.d.ts +11 -0
- package/dist/utils/ip-validation.d.ts.map +1 -0
- package/dist/utils/ip-validation.js +98 -0
- package/dist/utils/ip-validation.js.map +1 -0
- package/dist/utils/security.d.ts +12 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +61 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/validators/array.d.ts +3 -1
- package/dist/validators/array.d.ts.map +1 -1
- package/dist/validators/array.js +41 -15
- package/dist/validators/array.js.map +1 -1
- package/dist/validators/base.d.ts +134 -0
- package/dist/validators/base.d.ts.map +1 -1
- package/dist/validators/base.js +255 -1
- package/dist/validators/base.js.map +1 -1
- package/dist/validators/base64.js +1 -1
- package/dist/validators/bigint.d.ts +20 -0
- package/dist/validators/bigint.d.ts.map +1 -1
- package/dist/validators/bigint.js +39 -1
- package/dist/validators/bigint.js.map +1 -1
- package/dist/validators/boolean.js +29 -1
- package/dist/validators/boolean.js.map +1 -1
- package/dist/validators/codec.js +1 -1
- package/dist/validators/custom.d.ts +47 -0
- package/dist/validators/custom.d.ts.map +1 -0
- package/dist/validators/custom.js +50 -0
- package/dist/validators/custom.js.map +1 -0
- package/dist/validators/date.d.ts +16 -0
- package/dist/validators/date.d.ts.map +1 -1
- package/dist/validators/date.js +62 -7
- package/dist/validators/date.js.map +1 -1
- package/dist/validators/discriminated-union.d.ts +29 -0
- package/dist/validators/discriminated-union.d.ts.map +1 -0
- package/dist/validators/discriminated-union.js +98 -0
- package/dist/validators/discriminated-union.js.map +1 -0
- package/dist/validators/enum.d.ts +10 -0
- package/dist/validators/enum.d.ts.map +1 -1
- package/dist/validators/enum.js +38 -1
- package/dist/validators/enum.js.map +1 -1
- package/dist/validators/file.d.ts +57 -0
- package/dist/validators/file.d.ts.map +1 -0
- package/dist/validators/file.js +114 -0
- package/dist/validators/file.js.map +1 -0
- package/dist/validators/function.d.ts +26 -0
- package/dist/validators/function.d.ts.map +1 -0
- package/dist/validators/function.js +45 -0
- package/dist/validators/function.js.map +1 -0
- package/dist/validators/hex.d.ts.map +1 -1
- package/dist/validators/hex.js +3 -2
- package/dist/validators/hex.js.map +1 -1
- package/dist/validators/index.d.ts +18 -1
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +16 -1
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/intersection.d.ts.map +1 -1
- package/dist/validators/intersection.js +15 -8
- package/dist/validators/intersection.js.map +1 -1
- package/dist/validators/json.d.ts +26 -0
- package/dist/validators/json.d.ts.map +1 -0
- package/dist/validators/json.js +64 -0
- package/dist/validators/json.js.map +1 -0
- package/dist/validators/lazy.d.ts +28 -0
- package/dist/validators/lazy.d.ts.map +1 -0
- package/dist/validators/lazy.js +42 -0
- package/dist/validators/lazy.js.map +1 -0
- package/dist/validators/literal.js +1 -1
- package/dist/validators/map.js +1 -1
- package/dist/validators/nan.d.ts +17 -0
- package/dist/validators/nan.d.ts.map +1 -0
- package/dist/validators/nan.js +32 -0
- package/dist/validators/nan.js.map +1 -0
- package/dist/validators/never.js +1 -1
- package/dist/validators/null.d.ts +16 -0
- package/dist/validators/null.d.ts.map +1 -0
- package/dist/validators/null.js +31 -0
- package/dist/validators/null.js.map +1 -0
- package/dist/validators/number.d.ts +22 -0
- package/dist/validators/number.d.ts.map +1 -1
- package/dist/validators/number.js +47 -8
- package/dist/validators/number.js.map +1 -1
- package/dist/validators/object.d.ts +32 -0
- package/dist/validators/object.d.ts.map +1 -1
- package/dist/validators/object.js +125 -8
- package/dist/validators/object.js.map +1 -1
- package/dist/validators/record.d.ts +15 -2
- package/dist/validators/record.d.ts.map +1 -1
- package/dist/validators/record.js +74 -4
- package/dist/validators/record.js.map +1 -1
- package/dist/validators/set.js +1 -1
- package/dist/validators/string-bool.d.ts +61 -0
- package/dist/validators/string-bool.d.ts.map +1 -0
- package/dist/validators/string-bool.js +127 -0
- package/dist/validators/string-bool.js.map +1 -0
- package/dist/validators/string-formats.d.ts +97 -0
- package/dist/validators/string-formats.d.ts.map +1 -0
- package/dist/validators/string-formats.js +120 -0
- package/dist/validators/string-formats.js.map +1 -0
- package/dist/validators/string.d.ts.map +1 -1
- package/dist/validators/string.js +2 -73
- package/dist/validators/string.js.map +1 -1
- package/dist/validators/symbol.js +1 -1
- package/dist/validators/template-literal.d.ts +32 -0
- package/dist/validators/template-literal.d.ts.map +1 -0
- package/dist/validators/template-literal.js +102 -0
- package/dist/validators/template-literal.js.map +1 -0
- package/dist/validators/tuple.js +1 -1
- package/dist/validators/uint8array.d.ts +21 -4
- package/dist/validators/uint8array.d.ts.map +1 -1
- package/dist/validators/uint8array.js +34 -23
- package/dist/validators/uint8array.js.map +1 -1
- package/dist/validators/undefined.d.ts +16 -0
- package/dist/validators/undefined.d.ts.map +1 -0
- package/dist/validators/undefined.js +31 -0
- package/dist/validators/undefined.js.map +1 -0
- package/dist/validators/union.d.ts +2 -0
- package/dist/validators/union.d.ts.map +1 -1
- package/dist/validators/union.js +15 -21
- package/dist/validators/union.js.map +1 -1
- package/dist/validators/void.js +1 -1
- package/dist/validators/xor.d.ts +23 -0
- package/dist/validators/xor.d.ts.map +1 -0
- package/dist/validators/xor.js +64 -0
- package/dist/validators/xor.js.map +1 -0
- package/package.json +95 -79
package/dist/guards.js
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VLD Type Guards
|
|
3
|
+
*
|
|
4
|
+
* Bu modül VLD için type guard fonksiyonlarını içerir.
|
|
5
|
+
* Result pattern ve VLD-specific type guard'ları burada tanımlanır.
|
|
6
|
+
*/
|
|
7
|
+
import { isOk, isErr, isResult } from './compat/result.js';
|
|
8
|
+
import { VldError } from './errors.js';
|
|
9
|
+
import { VldBase } from './validators/base.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Re-export Result Guards
|
|
12
|
+
// ============================================================================
|
|
13
|
+
export { isOk, isErr, isResult };
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// VLD-Specific Guards
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Değerin VldError olup olmadığını kontrol eder
|
|
19
|
+
*/
|
|
20
|
+
export function isVldError(value) {
|
|
21
|
+
return value instanceof VldError;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Değerin VldIssue olup olmadığını kontrol eder
|
|
25
|
+
*/
|
|
26
|
+
export function isVldIssue(value) {
|
|
27
|
+
if (value === null || value === undefined)
|
|
28
|
+
return false;
|
|
29
|
+
if (typeof value !== 'object')
|
|
30
|
+
return false;
|
|
31
|
+
const obj = value;
|
|
32
|
+
return (typeof obj.code === 'string' &&
|
|
33
|
+
Array.isArray(obj.path) &&
|
|
34
|
+
typeof obj.message === 'string');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Değerin VldBase validator olup olmadığını kontrol eder
|
|
38
|
+
*/
|
|
39
|
+
export function isValidator(value) {
|
|
40
|
+
return value instanceof VldBase;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse sonucunun başarılı olup olmadığını kontrol eder
|
|
44
|
+
*/
|
|
45
|
+
export function isParseSuccess(result) {
|
|
46
|
+
return isOk(result);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Parse sonucunun başarısız olup olmadığını kontrol eder
|
|
50
|
+
*/
|
|
51
|
+
export function isParseError(result) {
|
|
52
|
+
return isErr(result);
|
|
53
|
+
}
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Value Type Guards
|
|
56
|
+
// ============================================================================
|
|
57
|
+
/**
|
|
58
|
+
* Değerin null olup olmadığını kontrol eder
|
|
59
|
+
*/
|
|
60
|
+
export function isNull(value) {
|
|
61
|
+
return value === null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Değerin undefined olup olmadığını kontrol eder
|
|
65
|
+
*/
|
|
66
|
+
export function isUndefined(value) {
|
|
67
|
+
return value === undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Değerin nullish olup olmadığını kontrol eder (null | undefined)
|
|
71
|
+
*/
|
|
72
|
+
export function isNullish(value) {
|
|
73
|
+
return value === null || value === undefined;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Değerin string olup olmadığını kontrol eder
|
|
77
|
+
*/
|
|
78
|
+
export function isString(value) {
|
|
79
|
+
return typeof value === 'string';
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Değerin number olup olmadığını kontrol eder
|
|
83
|
+
*/
|
|
84
|
+
export function isNumber(value) {
|
|
85
|
+
return typeof value === 'number' && !Number.isNaN(value);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Değerin finite number olup olmadığını kontrol eder
|
|
89
|
+
*/
|
|
90
|
+
export function isFiniteNumber(value) {
|
|
91
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Değerin integer olup olmadığını kontrol eder
|
|
95
|
+
*/
|
|
96
|
+
export function isInteger(value) {
|
|
97
|
+
return typeof value === 'number' && Number.isInteger(value);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Değerin safe integer olup olmadığını kontrol eder
|
|
101
|
+
*/
|
|
102
|
+
export function isSafeInteger(value) {
|
|
103
|
+
return typeof value === 'number' && Number.isSafeInteger(value);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Değerin boolean olup olmadığını kontrol eder
|
|
107
|
+
*/
|
|
108
|
+
export function isBoolean(value) {
|
|
109
|
+
return typeof value === 'boolean';
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Değerin bigint olup olmadığını kontrol eder
|
|
113
|
+
*/
|
|
114
|
+
export function isBigInt(value) {
|
|
115
|
+
return typeof value === 'bigint';
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Değerin symbol olup olmadığını kontrol eder
|
|
119
|
+
*/
|
|
120
|
+
export function isSymbol(value) {
|
|
121
|
+
return typeof value === 'symbol';
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Değerin function olup olmadığını kontrol eder
|
|
125
|
+
*/
|
|
126
|
+
export function isFunction(value) {
|
|
127
|
+
return typeof value === 'function';
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Değerin array olup olmadığını kontrol eder
|
|
131
|
+
*/
|
|
132
|
+
export function isArray(value) {
|
|
133
|
+
return Array.isArray(value);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Değerin object olup olmadığını kontrol eder (null ve array hariç)
|
|
137
|
+
*/
|
|
138
|
+
export function isObject(value) {
|
|
139
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Değerin plain object olup olmadığını kontrol eder
|
|
143
|
+
*/
|
|
144
|
+
export function isPlainObject(value) {
|
|
145
|
+
if (typeof value !== 'object' || value === null)
|
|
146
|
+
return false;
|
|
147
|
+
const proto = Object.getPrototypeOf(value);
|
|
148
|
+
return proto === null || proto === Object.prototype;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Değerin Date olup olmadığını kontrol eder
|
|
152
|
+
*/
|
|
153
|
+
export function isDate(value) {
|
|
154
|
+
return value instanceof Date && !Number.isNaN(value.getTime());
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Değerin valid Date olup olmadığını kontrol eder
|
|
158
|
+
*/
|
|
159
|
+
export function isValidDate(value) {
|
|
160
|
+
return value instanceof Date && !Number.isNaN(value.getTime());
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Değerin Map olup olmadığını kontrol eder
|
|
164
|
+
*/
|
|
165
|
+
export function isMap(value) {
|
|
166
|
+
return value instanceof Map;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Değerin Set olup olmadığını kontrol eder
|
|
170
|
+
*/
|
|
171
|
+
export function isSet(value) {
|
|
172
|
+
return value instanceof Set;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Değerin Promise olup olmadığını kontrol eder
|
|
176
|
+
*/
|
|
177
|
+
export function isPromise(value) {
|
|
178
|
+
return (value instanceof Promise ||
|
|
179
|
+
(typeof value === 'object' &&
|
|
180
|
+
value !== null &&
|
|
181
|
+
typeof value.then === 'function' &&
|
|
182
|
+
typeof value.catch === 'function'));
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Değerin NaN olup olmadığını kontrol eder
|
|
186
|
+
*/
|
|
187
|
+
export function isNaN(value) {
|
|
188
|
+
return typeof value === 'number' && Number.isNaN(value);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Değerin Uint8Array olup olmadığını kontrol eder
|
|
192
|
+
*/
|
|
193
|
+
export function isUint8Array(value) {
|
|
194
|
+
return value instanceof Uint8Array;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Değerin ArrayBuffer olup olmadığını kontrol eder
|
|
198
|
+
*/
|
|
199
|
+
export function isArrayBuffer(value) {
|
|
200
|
+
return value instanceof ArrayBuffer;
|
|
201
|
+
}
|
|
202
|
+
// ============================================================================
|
|
203
|
+
// String Format Guards
|
|
204
|
+
// ============================================================================
|
|
205
|
+
const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
206
|
+
const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
207
|
+
const URL_REGEX = /^https?:\/\/.+/i;
|
|
208
|
+
/**
|
|
209
|
+
* Değerin geçerli email formatında olup olmadığını kontrol eder
|
|
210
|
+
*/
|
|
211
|
+
export function isEmail(value) {
|
|
212
|
+
return typeof value === 'string' && EMAIL_REGEX.test(value);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Değerin geçerli UUID formatında olup olmadığını kontrol eder
|
|
216
|
+
*/
|
|
217
|
+
export function isUUID(value) {
|
|
218
|
+
return typeof value === 'string' && UUID_REGEX.test(value);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Değerin geçerli URL formatında olup olmadığını kontrol eder
|
|
222
|
+
*/
|
|
223
|
+
export function isURL(value) {
|
|
224
|
+
return typeof value === 'string' && URL_REGEX.test(value);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Değerin non-empty string olup olmadığını kontrol eder
|
|
228
|
+
*/
|
|
229
|
+
export function isNonEmptyString(value) {
|
|
230
|
+
return typeof value === 'string' && value.length > 0;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Değerin empty string olup olmadığını kontrol eder
|
|
234
|
+
*/
|
|
235
|
+
export function isEmptyString(value) {
|
|
236
|
+
return value === '';
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAkC,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAEjC,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,QAAQ,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,CACL,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC5B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACvB,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,KAAc;IAEd,OAAO,KAAK,YAAY,OAAO,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA2B;IAE3B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA2B;IAE3B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,GAAG,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,GAAG,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CACL,KAAK,YAAY,OAAO;QACxB,CAAC,OAAO,KAAK,KAAK,QAAQ;YACxB,KAAK,KAAK,IAAI;YACd,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU;YACxD,OAAQ,KAA6B,CAAC,KAAK,KAAK,UAAU,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,UAAU,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,WAAW,CAAC;AACtC,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,MAAM,WAAW,GAAG,4BAA4B,CAAC;AACjD,MAAM,UAAU,GAAG,4EAA4E,CAAC;AAChG,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,KAAK,EAAE,CAAC;AACtB,CAAC","sourcesContent":["/**\n * VLD Type Guards\n *\n * Bu modül VLD için type guard fonksiyonlarını içerir.\n * Result pattern ve VLD-specific type guard'ları burada tanımlanır.\n */\n\nimport { isOk, isErr, isResult, type Result, type Ok, type Err } from './compat/result.js';\nimport { VldError, type VldIssue } from './errors.js';\nimport { VldBase } from './validators/base.js';\n\n// ============================================================================\n// Re-export Result Guards\n// ============================================================================\n\nexport { isOk, isErr, isResult };\n\n// ============================================================================\n// VLD-Specific Guards\n// ============================================================================\n\n/**\n * Değerin VldError olup olmadığını kontrol eder\n */\nexport function isVldError(value: unknown): value is VldError {\n return value instanceof VldError;\n}\n\n/**\n * Değerin VldIssue olup olmadığını kontrol eder\n */\nexport function isVldIssue(value: unknown): value is VldIssue {\n if (value === null || value === undefined) return false;\n if (typeof value !== 'object') return false;\n\n const obj = value as Record<string, unknown>;\n return (\n typeof obj.code === 'string' &&\n Array.isArray(obj.path) &&\n typeof obj.message === 'string'\n );\n}\n\n/**\n * Değerin VldBase validator olup olmadığını kontrol eder\n */\nexport function isValidator<TInput = unknown, TOutput = unknown>(\n value: unknown\n): value is VldBase<TInput, TOutput> {\n return value instanceof VldBase;\n}\n\n/**\n * Parse sonucunun başarılı olup olmadığını kontrol eder\n */\nexport function isParseSuccess<T>(\n result: Result<T, VldError>\n): result is Ok<T> {\n return isOk(result);\n}\n\n/**\n * Parse sonucunun başarısız olup olmadığını kontrol eder\n */\nexport function isParseError<T>(\n result: Result<T, VldError>\n): result is Err<VldError> {\n return isErr(result);\n}\n\n// ============================================================================\n// Value Type Guards\n// ============================================================================\n\n/**\n * Değerin null olup olmadığını kontrol eder\n */\nexport function isNull(value: unknown): value is null {\n return value === null;\n}\n\n/**\n * Değerin undefined olup olmadığını kontrol eder\n */\nexport function isUndefined(value: unknown): value is undefined {\n return value === undefined;\n}\n\n/**\n * Değerin nullish olup olmadığını kontrol eder (null | undefined)\n */\nexport function isNullish(value: unknown): value is null | undefined {\n return value === null || value === undefined;\n}\n\n/**\n * Değerin string olup olmadığını kontrol eder\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\n/**\n * Değerin number olup olmadığını kontrol eder\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number' && !Number.isNaN(value);\n}\n\n/**\n * Değerin finite number olup olmadığını kontrol eder\n */\nexport function isFiniteNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\n/**\n * Değerin integer olup olmadığını kontrol eder\n */\nexport function isInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isInteger(value);\n}\n\n/**\n * Değerin safe integer olup olmadığını kontrol eder\n */\nexport function isSafeInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value);\n}\n\n/**\n * Değerin boolean olup olmadığını kontrol eder\n */\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean';\n}\n\n/**\n * Değerin bigint olup olmadığını kontrol eder\n */\nexport function isBigInt(value: unknown): value is bigint {\n return typeof value === 'bigint';\n}\n\n/**\n * Değerin symbol olup olmadığını kontrol eder\n */\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol';\n}\n\n/**\n * Değerin function olup olmadığını kontrol eder\n */\nexport function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n\n/**\n * Değerin array olup olmadığını kontrol eder\n */\nexport function isArray(value: unknown): value is unknown[] {\n return Array.isArray(value);\n}\n\n/**\n * Değerin object olup olmadığını kontrol eder (null ve array hariç)\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Değerin plain object olup olmadığını kontrol eder\n */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (typeof value !== 'object' || value === null) return false;\n const proto = Object.getPrototypeOf(value);\n return proto === null || proto === Object.prototype;\n}\n\n/**\n * Değerin Date olup olmadığını kontrol eder\n */\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date && !Number.isNaN(value.getTime());\n}\n\n/**\n * Değerin valid Date olup olmadığını kontrol eder\n */\nexport function isValidDate(value: unknown): value is Date {\n return value instanceof Date && !Number.isNaN(value.getTime());\n}\n\n/**\n * Değerin Map olup olmadığını kontrol eder\n */\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return value instanceof Map;\n}\n\n/**\n * Değerin Set olup olmadığını kontrol eder\n */\nexport function isSet(value: unknown): value is Set<unknown> {\n return value instanceof Set;\n}\n\n/**\n * Değerin Promise olup olmadığını kontrol eder\n */\nexport function isPromise(value: unknown): value is Promise<unknown> {\n return (\n value instanceof Promise ||\n (typeof value === 'object' &&\n value !== null &&\n typeof (value as { then?: unknown }).then === 'function' &&\n typeof (value as { catch?: unknown }).catch === 'function')\n );\n}\n\n/**\n * Değerin NaN olup olmadığını kontrol eder\n */\nexport function isNaN(value: unknown): value is number {\n return typeof value === 'number' && Number.isNaN(value);\n}\n\n/**\n * Değerin Uint8Array olup olmadığını kontrol eder\n */\nexport function isUint8Array(value: unknown): value is Uint8Array {\n return value instanceof Uint8Array;\n}\n\n/**\n * Değerin ArrayBuffer olup olmadığını kontrol eder\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return value instanceof ArrayBuffer;\n}\n\n// ============================================================================\n// String Format Guards\n// ============================================================================\n\nconst EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\nconst UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nconst URL_REGEX = /^https?:\\/\\/.+/i;\n\n/**\n * Değerin geçerli email formatında olup olmadığını kontrol eder\n */\nexport function isEmail(value: unknown): value is string {\n return typeof value === 'string' && EMAIL_REGEX.test(value);\n}\n\n/**\n * Değerin geçerli UUID formatında olup olmadığını kontrol eder\n */\nexport function isUUID(value: unknown): value is string {\n return typeof value === 'string' && UUID_REGEX.test(value);\n}\n\n/**\n * Değerin geçerli URL formatında olup olmadığını kontrol eder\n */\nexport function isURL(value: unknown): value is string {\n return typeof value === 'string' && URL_REGEX.test(value);\n}\n\n/**\n * Değerin non-empty string olup olmadığını kontrol eder\n */\nexport function isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.length > 0;\n}\n\n/**\n * Değerin empty string olup olmadığını kontrol eder\n */\nexport function isEmptyString(value: unknown): value is '' {\n return value === '';\n}\n"]}
|