@sinclair/typebox 0.32.0-dev-18 → 0.32.0-dev-19
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/build/import/compiler/compiler.mjs +14 -8
- package/build/import/errors/errors.mjs +15 -11
- package/build/import/type/awaited/awaited.mjs +4 -4
- package/build/import/type/deref/deref.mjs +12 -12
- package/build/import/type/exclude/exclude.mjs +8 -5
- package/build/import/type/extends/extends-check.mjs +167 -167
- package/build/import/type/extends/extends.mjs +3 -3
- package/build/import/type/extract/extract.mjs +5 -5
- package/build/import/type/guard/type.d.mts +50 -50
- package/build/import/type/guard/type.mjs +136 -136
- package/build/import/type/indexed/indexed-property-keys.mjs +7 -7
- package/build/import/type/indexed/indexed.mjs +9 -9
- package/build/import/type/intersect/intersect-create.mjs +4 -4
- package/build/import/type/intersect/intersect-evaluated.mjs +1 -1
- package/build/import/type/intersect/intersect.mjs +2 -2
- package/build/import/type/intrinsic/intrinsic.mjs +5 -5
- package/build/import/type/keyof/keyof-property-keys.mjs +7 -7
- package/build/import/type/keyof/keyof.mjs +2 -2
- package/build/import/type/mapped/mapped.mjs +16 -16
- package/build/import/type/modifiers/modifiers.mjs +3 -3
- package/build/import/type/object/object.mjs +3 -3
- package/build/import/type/omit/omit.mjs +6 -6
- package/build/import/type/partial/partial.mjs +5 -5
- package/build/import/type/pick/pick.mjs +6 -6
- package/build/import/type/record/record.mjs +7 -7
- package/build/import/type/required/required.mjs +5 -5
- package/build/import/type/rest/rest.mjs +6 -2
- package/build/import/type/template-literal/pattern.mjs +9 -9
- package/build/import/type/transform/transform.mjs +1 -1
- package/build/import/type/union/union-evaluated.mjs +2 -2
- package/build/import/value/check/check.mjs +18 -11
- package/build/import/value/clean/clean.mjs +9 -7
- package/build/import/value/clone/clone.mjs +7 -4
- package/build/import/value/convert/convert.mjs +6 -2
- package/build/import/value/default/default.mjs +12 -4
- package/build/import/value/transform/decode.mjs +12 -6
- package/build/import/value/transform/encode.mjs +12 -6
- package/build/import/value/transform/has.mjs +24 -18
- package/build/require/compiler/compiler.js +77 -71
- package/build/require/errors/errors.js +58 -54
- package/build/require/type/awaited/awaited.js +3 -3
- package/build/require/type/deref/deref.js +11 -11
- package/build/require/type/exclude/exclude.js +7 -4
- package/build/require/type/extends/extends-check.js +167 -167
- package/build/require/type/extends/extends.js +2 -2
- package/build/require/type/extract/extract.js +4 -4
- package/build/require/type/guard/type.d.ts +50 -50
- package/build/require/type/guard/type.js +184 -184
- package/build/require/type/indexed/indexed-property-keys.js +6 -6
- package/build/require/type/indexed/indexed.js +9 -9
- package/build/require/type/intersect/intersect-create.js +3 -3
- package/build/require/type/intersect/intersect-evaluated.js +2 -2
- package/build/require/type/intersect/intersect.js +1 -1
- package/build/require/type/intrinsic/intrinsic.js +4 -4
- package/build/require/type/keyof/keyof-property-keys.js +6 -6
- package/build/require/type/keyof/keyof.js +1 -1
- package/build/require/type/mapped/mapped.js +15 -15
- package/build/require/type/modifiers/modifiers.js +2 -2
- package/build/require/type/object/object.js +2 -2
- package/build/require/type/omit/omit.js +5 -5
- package/build/require/type/partial/partial.js +4 -4
- package/build/require/type/pick/pick.js +5 -5
- package/build/require/type/record/record.js +6 -6
- package/build/require/type/required/required.js +4 -4
- package/build/require/type/rest/rest.js +5 -1
- package/build/require/type/template-literal/pattern.js +8 -8
- package/build/require/type/transform/transform.js +1 -1
- package/build/require/type/union/union-evaluated.js +1 -1
- package/build/require/value/check/check.js +63 -56
- package/build/require/value/clean/clean.js +31 -29
- package/build/require/value/clone/clone.js +7 -4
- package/build/require/value/convert/convert.js +42 -38
- package/build/require/value/default/default.js +24 -16
- package/build/require/value/transform/decode.js +27 -21
- package/build/require/value/transform/encode.js +28 -22
- package/build/require/value/transform/has.js +29 -23
- package/package.json +1 -1
- package/readme.md +5 -5
|
@@ -2,83 +2,89 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.HasTransform = void 0;
|
|
5
|
+
const index_1 = require("../deref/index");
|
|
6
|
+
const index_2 = require("../../type/symbols/index");
|
|
7
|
+
// ------------------------------------------------------------------
|
|
8
|
+
// TypeGuard
|
|
9
|
+
// ------------------------------------------------------------------
|
|
5
10
|
const type_1 = require("../../type/guard/type");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
// ------------------------------------------------------------------
|
|
12
|
+
// ValueGuard
|
|
13
|
+
// ------------------------------------------------------------------
|
|
14
|
+
const index_3 = require("../guard/index");
|
|
9
15
|
// prettier-ignore
|
|
10
16
|
function TArray(schema, references) {
|
|
11
|
-
return (0, type_1.
|
|
17
|
+
return (0, type_1.IsTransform)(schema) || Visit(schema.items, references);
|
|
12
18
|
}
|
|
13
19
|
// prettier-ignore
|
|
14
20
|
function TAsyncIterator(schema, references) {
|
|
15
|
-
return (0, type_1.
|
|
21
|
+
return (0, type_1.IsTransform)(schema) || Visit(schema.items, references);
|
|
16
22
|
}
|
|
17
23
|
// prettier-ignore
|
|
18
24
|
function TConstructor(schema, references) {
|
|
19
|
-
return (0, type_1.
|
|
25
|
+
return (0, type_1.IsTransform)(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));
|
|
20
26
|
}
|
|
21
27
|
// prettier-ignore
|
|
22
28
|
function TFunction(schema, references) {
|
|
23
|
-
return (0, type_1.
|
|
29
|
+
return (0, type_1.IsTransform)(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));
|
|
24
30
|
}
|
|
25
31
|
// prettier-ignore
|
|
26
32
|
function TIntersect(schema, references) {
|
|
27
|
-
return (0, type_1.
|
|
33
|
+
return (0, type_1.IsTransform)(schema) || (0, type_1.IsTransform)(schema.unevaluatedProperties) || schema.allOf.some((schema) => Visit(schema, references));
|
|
28
34
|
}
|
|
29
35
|
// prettier-ignore
|
|
30
36
|
function TIterator(schema, references) {
|
|
31
|
-
return (0, type_1.
|
|
37
|
+
return (0, type_1.IsTransform)(schema) || Visit(schema.items, references);
|
|
32
38
|
}
|
|
33
39
|
// prettier-ignore
|
|
34
40
|
function TNot(schema, references) {
|
|
35
|
-
return (0, type_1.
|
|
41
|
+
return (0, type_1.IsTransform)(schema) || Visit(schema.not, references);
|
|
36
42
|
}
|
|
37
43
|
// prettier-ignore
|
|
38
44
|
function TObject(schema, references) {
|
|
39
|
-
return ((0, type_1.
|
|
45
|
+
return ((0, type_1.IsTransform)(schema) ||
|
|
40
46
|
Object.values(schema.properties).some((schema) => Visit(schema, references)) ||
|
|
41
|
-
((0, type_1.
|
|
47
|
+
((0, type_1.IsSchema)(schema.additionalProperties) && Visit(schema.additionalProperties, references)));
|
|
42
48
|
}
|
|
43
49
|
// prettier-ignore
|
|
44
50
|
function TPromise(schema, references) {
|
|
45
|
-
return (0, type_1.
|
|
51
|
+
return (0, type_1.IsTransform)(schema) || Visit(schema.item, references);
|
|
46
52
|
}
|
|
47
53
|
// prettier-ignore
|
|
48
54
|
function TRecord(schema, references) {
|
|
49
55
|
const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
50
56
|
const property = schema.patternProperties[pattern];
|
|
51
|
-
return (0, type_1.
|
|
57
|
+
return (0, type_1.IsTransform)(schema) || Visit(property, references) || ((0, type_1.IsSchema)(schema.additionalProperties) && (0, type_1.IsTransform)(schema.additionalProperties));
|
|
52
58
|
}
|
|
53
59
|
// prettier-ignore
|
|
54
60
|
function TRef(schema, references) {
|
|
55
|
-
if ((0, type_1.
|
|
61
|
+
if ((0, type_1.IsTransform)(schema))
|
|
56
62
|
return true;
|
|
57
|
-
return Visit((0,
|
|
63
|
+
return Visit((0, index_1.Deref)(schema, references), references);
|
|
58
64
|
}
|
|
59
65
|
// prettier-ignore
|
|
60
66
|
function TThis(schema, references) {
|
|
61
|
-
if ((0, type_1.
|
|
67
|
+
if ((0, type_1.IsTransform)(schema))
|
|
62
68
|
return true;
|
|
63
|
-
return Visit((0,
|
|
69
|
+
return Visit((0, index_1.Deref)(schema, references), references);
|
|
64
70
|
}
|
|
65
71
|
// prettier-ignore
|
|
66
72
|
function TTuple(schema, references) {
|
|
67
|
-
return (0, type_1.
|
|
73
|
+
return (0, type_1.IsTransform)(schema) || (!(0, index_3.IsUndefined)(schema.items) && schema.items.some((schema) => Visit(schema, references)));
|
|
68
74
|
}
|
|
69
75
|
// prettier-ignore
|
|
70
76
|
function TUnion(schema, references) {
|
|
71
|
-
return (0, type_1.
|
|
77
|
+
return (0, type_1.IsTransform)(schema) || schema.anyOf.some((schema) => Visit(schema, references));
|
|
72
78
|
}
|
|
73
79
|
// prettier-ignore
|
|
74
80
|
function Visit(schema, references) {
|
|
75
|
-
const references_ = (0,
|
|
81
|
+
const references_ = (0, index_3.IsString)(schema.$id) ? [...references, schema] : references;
|
|
76
82
|
const schema_ = schema;
|
|
77
83
|
if (schema.$id && visited.has(schema.$id))
|
|
78
84
|
return false;
|
|
79
85
|
if (schema.$id)
|
|
80
86
|
visited.add(schema.$id);
|
|
81
|
-
switch (schema[
|
|
87
|
+
switch (schema[index_2.Kind]) {
|
|
82
88
|
case 'Array':
|
|
83
89
|
return TArray(schema_, references_);
|
|
84
90
|
case 'AsyncIterator':
|
|
@@ -108,7 +114,7 @@ function Visit(schema, references) {
|
|
|
108
114
|
case 'Union':
|
|
109
115
|
return TUnion(schema_, references_);
|
|
110
116
|
default:
|
|
111
|
-
return (0, type_1.
|
|
117
|
+
return (0, type_1.IsTransform)(schema);
|
|
112
118
|
}
|
|
113
119
|
}
|
|
114
120
|
const visited = new Set();
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -1136,16 +1136,16 @@ type S = Static<typeof T> // type S = 'A' | 'B' | 'C'
|
|
|
1136
1136
|
|
|
1137
1137
|
### TypeGuard
|
|
1138
1138
|
|
|
1139
|
-
TypeBox can type check its own types with the TypeGuard module. This module is written for reflection and provides structural tests for every built-in TypeBox type. Functions of this module return `is` guards which can be used with TypeScript control flow assertions to obtain schema inference. The following guards that the value
|
|
1139
|
+
TypeBox can type check its own types with the TypeGuard module. This module is written for reflection and provides structural tests for every built-in TypeBox type. Functions of this module return `is` guards which can be used with TypeScript control flow assertions to obtain schema inference. The following guards that the value `T` is TString.
|
|
1140
1140
|
|
|
1141
1141
|
```typescript
|
|
1142
|
-
import {
|
|
1142
|
+
import { TypeGuard, Kind } from '@sinclair/typebox'
|
|
1143
1143
|
|
|
1144
|
-
const
|
|
1144
|
+
const T: unknown = { [Kind]: 'String', type: 'string' }
|
|
1145
1145
|
|
|
1146
|
-
if(TypeGuard.
|
|
1146
|
+
if(TypeGuard.IsString(T)) {
|
|
1147
1147
|
|
|
1148
|
-
|
|
1148
|
+
// T is TString
|
|
1149
1149
|
}
|
|
1150
1150
|
```
|
|
1151
1151
|
|