@sinclair/typebox 0.32.0-dev-20 → 0.32.0-dev-22
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 +62 -62
- package/build/import/errors/errors.mjs +62 -62
- package/build/import/index.d.mts +6 -6
- package/build/import/index.mjs +1 -1
- package/build/import/type/awaited/awaited.d.mts +4 -6
- package/build/import/type/awaited/awaited.mjs +3 -3
- package/build/import/type/composite/composite.d.mts +8 -8
- package/build/import/type/const/const.d.mts +4 -7
- package/build/import/type/constructor/constructor.d.mts +4 -4
- package/build/import/type/deref/deref.d.mts +2 -2
- package/build/import/type/deref/deref.mjs +26 -36
- package/build/import/type/exclude/exclude-from-mapped-result.d.mts +4 -6
- package/build/import/type/exclude/exclude.d.mts +7 -8
- package/build/import/type/extends/extends-from-mapped-key.d.mts +5 -8
- package/build/import/type/extends/extends-from-mapped-key.mjs +3 -3
- package/build/import/type/extends/extends-from-mapped-result.d.mts +4 -6
- package/build/import/type/extends/extends.d.mts +2 -3
- package/build/import/type/extract/extract-from-mapped-result.d.mts +4 -6
- package/build/import/type/extract/extract.d.mts +8 -8
- package/build/import/type/function/function.d.mts +1 -1
- package/build/import/type/helpers/helpers.d.mts +1 -1
- package/build/import/type/index.d.mts +0 -1
- package/build/import/type/index.mjs +0 -1
- package/build/import/type/indexed/indexed-from-mapped-key.d.mts +5 -8
- package/build/import/type/indexed/indexed-from-mapped-key.mjs +3 -6
- package/build/import/type/indexed/indexed-property-keys.d.mts +5 -8
- package/build/import/type/indexed/indexed-property-keys.mjs +6 -11
- package/build/import/type/indexed/indexed.d.mts +13 -23
- package/build/import/type/indexed/indexed.mjs +13 -13
- package/build/import/type/intersect/intersect-create.mjs +0 -1
- package/build/import/type/intersect/intersect-evaluated.d.mts +7 -11
- package/build/import/type/intersect/intersect-evaluated.mjs +12 -7
- package/build/import/type/intersect/intersect-type.d.mts +2 -2
- package/build/import/type/intersect/intersect.mjs +1 -2
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.d.mts +7 -9
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +3 -3
- package/build/import/type/intrinsic/intrinsic.d.mts +6 -8
- package/build/import/type/intrinsic/intrinsic.mjs +8 -6
- package/build/import/type/keyof/keyof-from-mapped-result.d.mts +4 -6
- package/build/import/type/keyof/keyof-property-keys.d.mts +9 -13
- package/build/import/type/keyof/keyof-property-keys.mjs +12 -9
- package/build/import/type/keyof/keyof.d.mts +7 -8
- package/build/import/type/keyof/keyof.mjs +8 -6
- package/build/import/type/mapped/mapped.d.mts +9 -13
- package/build/import/type/mapped/mapped.mjs +9 -9
- package/build/import/type/omit/omit-from-mapped-key.d.mts +5 -8
- package/build/import/type/omit/omit-from-mapped-key.mjs +3 -3
- package/build/import/type/omit/omit.d.mts +6 -9
- package/build/import/type/omit/omit.mjs +0 -1
- package/build/import/type/operators/operators.d.mts +16 -16
- package/build/import/type/operators/operators.mjs +21 -25
- package/build/import/type/optional/optional-from-mapped-result.d.mts +4 -6
- package/build/import/type/optional/optional.d.mts +3 -7
- package/build/import/type/partial/partial-from-mapped-result.d.mts +4 -6
- package/build/import/type/partial/partial.d.mts +4 -7
- package/build/import/type/partial/partial.mjs +6 -7
- package/build/import/type/pick/pick-from-mapped-key.d.mts +5 -8
- package/build/import/type/pick/pick-from-mapped-key.mjs +3 -3
- package/build/import/type/pick/pick.d.mts +4 -4
- package/build/import/type/readonly/readonly-from-mapped-result.d.mts +4 -6
- package/build/import/type/readonly/readonly.d.mts +3 -7
- package/build/import/type/record/record.d.mts +14 -20
- package/build/import/type/record/record.mjs +2 -4
- package/build/import/type/ref/ref.mjs +3 -0
- package/build/import/type/required/required-from-mapped-result.d.mts +4 -6
- package/build/import/type/required/required.d.mts +5 -9
- package/build/import/type/required/required.mjs +6 -7
- package/build/import/type/rest/rest.d.mts +3 -3
- package/build/import/type/schema/schema.d.mts +1 -1
- package/build/import/type/static/static.d.mts +1 -1
- package/build/import/type/symbol/symbol.d.mts +1 -1
- package/build/import/type/template-literal/finite.d.mts +7 -5
- package/build/import/type/template-literal/finite.mjs +14 -5
- package/build/import/type/template-literal/generate.d.mts +14 -9
- package/build/import/type/template-literal/generate.mjs +19 -9
- package/build/import/type/template-literal/index.d.mts +1 -1
- package/build/import/type/template-literal/index.mjs +1 -1
- package/build/import/type/template-literal/{parser.mjs → parse.mjs} +7 -2
- package/build/import/type/template-literal/syntax.d.mts +3 -3
- package/build/import/type/template-literal/syntax.mjs +2 -3
- package/build/import/type/template-literal/template-literal.d.mts +2 -2
- package/build/import/type/template-literal/template-literal.mjs +1 -1
- package/build/import/type/template-literal/union.d.mts +2 -2
- package/build/import/type/template-literal/union.mjs +5 -10
- package/build/import/type/transform/transform.mjs +0 -1
- package/build/import/type/tuple/tuple.d.mts +1 -2
- package/build/import/type/type/json.d.mts +2 -2
- package/build/import/type/union/union-evaluated.d.mts +6 -10
- package/build/import/type/union/union-evaluated.mjs +7 -2
- package/build/import/value/cast/cast.mjs +20 -20
- package/build/import/value/check/check.mjs +62 -62
- package/build/import/value/clean/clean.mjs +16 -16
- package/build/import/value/convert/convert.mjs +36 -36
- package/build/import/value/create/create.mjs +66 -67
- package/build/import/value/default/default.mjs +16 -16
- package/build/import/value/transform/decode.mjs +18 -18
- package/build/import/value/transform/encode.mjs +18 -18
- package/build/import/value/transform/has.mjs +28 -28
- package/build/require/compiler/compiler.js +62 -62
- package/build/require/errors/errors.js +62 -62
- package/build/require/index.d.ts +6 -6
- package/build/require/index.js +4 -2
- package/build/require/type/awaited/awaited.d.ts +4 -6
- package/build/require/type/awaited/awaited.js +3 -3
- package/build/require/type/composite/composite.d.ts +8 -8
- package/build/require/type/const/const.d.ts +4 -7
- package/build/require/type/constructor/constructor.d.ts +4 -4
- package/build/require/type/deref/deref.d.ts +2 -2
- package/build/require/type/deref/deref.js +25 -35
- package/build/require/type/exclude/exclude-from-mapped-result.d.ts +4 -6
- package/build/require/type/exclude/exclude.d.ts +7 -8
- package/build/require/type/extends/extends-from-mapped-key.d.ts +5 -8
- package/build/require/type/extends/extends-from-mapped-key.js +3 -3
- package/build/require/type/extends/extends-from-mapped-result.d.ts +4 -6
- package/build/require/type/extends/extends.d.ts +2 -3
- package/build/require/type/extract/extract-from-mapped-result.d.ts +4 -6
- package/build/require/type/extract/extract.d.ts +8 -8
- package/build/require/type/function/function.d.ts +1 -1
- package/build/require/type/helpers/helpers.d.ts +1 -1
- package/build/require/type/index.d.ts +0 -1
- package/build/require/type/index.js +0 -1
- package/build/require/type/indexed/indexed-from-mapped-key.d.ts +5 -8
- package/build/require/type/indexed/indexed-from-mapped-key.js +3 -6
- package/build/require/type/indexed/indexed-property-keys.d.ts +5 -8
- package/build/require/type/indexed/indexed-property-keys.js +4 -9
- package/build/require/type/indexed/indexed.d.ts +13 -23
- package/build/require/type/indexed/indexed.js +13 -13
- package/build/require/type/intersect/intersect-create.js +0 -1
- package/build/require/type/intersect/intersect-evaluated.d.ts +7 -11
- package/build/require/type/intersect/intersect-evaluated.js +9 -4
- package/build/require/type/intersect/intersect-type.d.ts +2 -2
- package/build/require/type/intersect/intersect.js +0 -1
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.d.ts +7 -9
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +3 -3
- package/build/require/type/intrinsic/intrinsic.d.ts +6 -8
- package/build/require/type/intrinsic/intrinsic.js +7 -5
- package/build/require/type/keyof/keyof-from-mapped-result.d.ts +4 -6
- package/build/require/type/keyof/keyof-property-keys.d.ts +9 -13
- package/build/require/type/keyof/keyof-property-keys.js +12 -9
- package/build/require/type/keyof/keyof.d.ts +7 -8
- package/build/require/type/keyof/keyof.js +8 -6
- package/build/require/type/mapped/mapped.d.ts +9 -13
- package/build/require/type/mapped/mapped.js +9 -9
- package/build/require/type/omit/omit-from-mapped-key.d.ts +5 -8
- package/build/require/type/omit/omit-from-mapped-key.js +3 -3
- package/build/require/type/omit/omit.d.ts +6 -9
- package/build/require/type/omit/omit.js +0 -1
- package/build/require/type/operators/operators.d.ts +16 -16
- package/build/require/type/operators/operators.js +21 -25
- package/build/require/type/optional/optional-from-mapped-result.d.ts +4 -6
- package/build/require/type/optional/optional.d.ts +3 -7
- package/build/require/type/partial/partial-from-mapped-result.d.ts +4 -6
- package/build/require/type/partial/partial.d.ts +4 -7
- package/build/require/type/partial/partial.js +6 -7
- package/build/require/type/pick/pick-from-mapped-key.d.ts +5 -8
- package/build/require/type/pick/pick-from-mapped-key.js +3 -3
- package/build/require/type/pick/pick.d.ts +4 -4
- package/build/require/type/readonly/readonly-from-mapped-result.d.ts +4 -6
- package/build/require/type/readonly/readonly.d.ts +3 -7
- package/build/require/type/record/record.d.ts +14 -20
- package/build/require/type/record/record.js +1 -3
- package/build/require/type/ref/ref.js +3 -0
- package/build/require/type/required/required-from-mapped-result.d.ts +4 -6
- package/build/require/type/required/required.d.ts +5 -9
- package/build/require/type/required/required.js +6 -7
- package/build/require/type/rest/rest.d.ts +3 -3
- package/build/require/type/schema/schema.d.ts +1 -1
- package/build/require/type/static/static.d.ts +1 -1
- package/build/require/type/symbol/symbol.d.ts +1 -1
- package/build/require/type/template-literal/finite.d.ts +7 -5
- package/build/require/type/template-literal/finite.js +16 -6
- package/build/require/type/template-literal/generate.d.ts +14 -9
- package/build/require/type/template-literal/generate.js +22 -11
- package/build/require/type/template-literal/index.d.ts +1 -1
- package/build/require/type/template-literal/index.js +1 -1
- package/build/require/type/template-literal/{parser.js → parse.js} +7 -2
- package/build/require/type/template-literal/syntax.d.ts +3 -3
- package/build/require/type/template-literal/syntax.js +1 -2
- package/build/require/type/template-literal/template-literal.d.ts +2 -2
- package/build/require/type/template-literal/template-literal.js +1 -1
- package/build/require/type/template-literal/union.d.ts +2 -2
- package/build/require/type/template-literal/union.js +5 -10
- package/build/require/type/transform/transform.js +0 -1
- package/build/require/type/tuple/tuple.d.ts +1 -2
- package/build/require/type/type/json.d.ts +2 -2
- package/build/require/type/union/union-evaluated.d.ts +6 -10
- package/build/require/type/union/union-evaluated.js +7 -2
- package/build/require/value/cast/cast.js +20 -20
- package/build/require/value/check/check.js +62 -62
- package/build/require/value/clean/clean.js +16 -16
- package/build/require/value/convert/convert.js +36 -36
- package/build/require/value/create/create.js +65 -66
- package/build/require/value/default/default.js +16 -16
- package/build/require/value/transform/decode.js +18 -18
- package/build/require/value/transform/encode.js +18 -18
- package/build/require/value/transform/has.js +28 -28
- package/package.json +1 -1
- package/readme.md +47 -47
- package/build/import/type/modifiers/index.d.mts +0 -1
- package/build/import/type/modifiers/index.mjs +0 -1
- package/build/import/type/modifiers/modifiers.d.mts +0 -18
- package/build/import/type/modifiers/modifiers.mjs +0 -50
- package/build/require/type/modifiers/index.d.ts +0 -1
- package/build/require/type/modifiers/index.js +0 -18
- package/build/require/type/modifiers/modifiers.d.ts +0 -18
- package/build/require/type/modifiers/modifiers.js +0 -56
- /package/build/import/type/template-literal/{parser.d.mts → parse.d.mts} +0 -0
- /package/build/require/type/template-literal/{parser.d.ts → parse.d.ts} +0 -0
|
@@ -40,10 +40,10 @@ function IsDefined(value) {
|
|
|
40
40
|
// ------------------------------------------------------------------
|
|
41
41
|
// Types
|
|
42
42
|
// ------------------------------------------------------------------
|
|
43
|
-
function
|
|
43
|
+
function FromAny(schema, references, value) {
|
|
44
44
|
return true;
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function FromArray(schema, references, value) {
|
|
47
47
|
if (!IsArray(value))
|
|
48
48
|
return false;
|
|
49
49
|
if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {
|
|
@@ -84,10 +84,10 @@ function TArray(schema, references, value) {
|
|
|
84
84
|
}
|
|
85
85
|
return true;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function FromAsyncIterator(schema, references, value) {
|
|
88
88
|
return IsAsyncIterator(value);
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function FromBigInt(schema, references, value) {
|
|
91
91
|
if (!IsBigInt(value))
|
|
92
92
|
return false;
|
|
93
93
|
if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
|
|
@@ -107,13 +107,13 @@ function TBigInt(schema, references, value) {
|
|
|
107
107
|
}
|
|
108
108
|
return true;
|
|
109
109
|
}
|
|
110
|
-
function
|
|
110
|
+
function FromBoolean(schema, references, value) {
|
|
111
111
|
return IsBoolean(value);
|
|
112
112
|
}
|
|
113
|
-
function
|
|
113
|
+
function FromConstructor(schema, references, value) {
|
|
114
114
|
return Visit(schema.returns, references, value.prototype);
|
|
115
115
|
}
|
|
116
|
-
function
|
|
116
|
+
function FromDate(schema, references, value) {
|
|
117
117
|
if (!IsDate(value))
|
|
118
118
|
return false;
|
|
119
119
|
if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {
|
|
@@ -133,10 +133,10 @@ function TDate(schema, references, value) {
|
|
|
133
133
|
}
|
|
134
134
|
return true;
|
|
135
135
|
}
|
|
136
|
-
function
|
|
136
|
+
function FromFunction(schema, references, value) {
|
|
137
137
|
return IsFunction(value);
|
|
138
138
|
}
|
|
139
|
-
function
|
|
139
|
+
function FromInteger(schema, references, value) {
|
|
140
140
|
if (!IsInteger(value)) {
|
|
141
141
|
return false;
|
|
142
142
|
}
|
|
@@ -157,7 +157,7 @@ function TInteger(schema, references, value) {
|
|
|
157
157
|
}
|
|
158
158
|
return true;
|
|
159
159
|
}
|
|
160
|
-
function
|
|
160
|
+
function FromIntersect(schema, references, value) {
|
|
161
161
|
const check1 = schema.allOf.every((schema) => Visit(schema, references, value));
|
|
162
162
|
if (schema.unevaluatedProperties === false) {
|
|
163
163
|
const keyPattern = new RegExp(KeyOfPattern(schema));
|
|
@@ -173,22 +173,22 @@ function TIntersect(schema, references, value) {
|
|
|
173
173
|
return check1;
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
function
|
|
176
|
+
function FromIterator(schema, references, value) {
|
|
177
177
|
return IsIterator(value);
|
|
178
178
|
}
|
|
179
|
-
function
|
|
179
|
+
function FromLiteral(schema, references, value) {
|
|
180
180
|
return value === schema.const;
|
|
181
181
|
}
|
|
182
|
-
function
|
|
182
|
+
function FromNever(schema, references, value) {
|
|
183
183
|
return false;
|
|
184
184
|
}
|
|
185
|
-
function
|
|
185
|
+
function FromNot(schema, references, value) {
|
|
186
186
|
return !Visit(schema.not, references, value);
|
|
187
187
|
}
|
|
188
|
-
function
|
|
188
|
+
function FromNull(schema, references, value) {
|
|
189
189
|
return IsNull(value);
|
|
190
190
|
}
|
|
191
|
-
function
|
|
191
|
+
function FromNumber(schema, references, value) {
|
|
192
192
|
if (!TypeSystemPolicy.IsNumberLike(value))
|
|
193
193
|
return false;
|
|
194
194
|
if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
|
|
@@ -208,7 +208,7 @@ function TNumber(schema, references, value) {
|
|
|
208
208
|
}
|
|
209
209
|
return true;
|
|
210
210
|
}
|
|
211
|
-
function
|
|
211
|
+
function FromObject(schema, references, value) {
|
|
212
212
|
if (!TypeSystemPolicy.IsObjectLike(value))
|
|
213
213
|
return false;
|
|
214
214
|
if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {
|
|
@@ -252,10 +252,10 @@ function TObject(schema, references, value) {
|
|
|
252
252
|
return true;
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
|
-
function
|
|
255
|
+
function FromPromise(schema, references, value) {
|
|
256
256
|
return IsPromise(value);
|
|
257
257
|
}
|
|
258
|
-
function
|
|
258
|
+
function FromRecord(schema, references, value) {
|
|
259
259
|
if (!TypeSystemPolicy.IsRecordLike(value)) {
|
|
260
260
|
return false;
|
|
261
261
|
}
|
|
@@ -282,10 +282,10 @@ function TRecord(schema, references, value) {
|
|
|
282
282
|
: true;
|
|
283
283
|
return check1 && check2 && check3;
|
|
284
284
|
}
|
|
285
|
-
function
|
|
285
|
+
function FromRef(schema, references, value) {
|
|
286
286
|
return Visit(Deref(schema, references), references, value);
|
|
287
287
|
}
|
|
288
|
-
function
|
|
288
|
+
function FromString(schema, references, value) {
|
|
289
289
|
if (!IsString(value)) {
|
|
290
290
|
return false;
|
|
291
291
|
}
|
|
@@ -310,16 +310,16 @@ function TString(schema, references, value) {
|
|
|
310
310
|
}
|
|
311
311
|
return true;
|
|
312
312
|
}
|
|
313
|
-
function
|
|
313
|
+
function FromSymbol(schema, references, value) {
|
|
314
314
|
return IsSymbol(value);
|
|
315
315
|
}
|
|
316
|
-
function
|
|
316
|
+
function FromTemplateLiteral(schema, references, value) {
|
|
317
317
|
return IsString(value) && new RegExp(schema.pattern).test(value);
|
|
318
318
|
}
|
|
319
|
-
function
|
|
319
|
+
function FromThis(schema, references, value) {
|
|
320
320
|
return Visit(Deref(schema, references), references, value);
|
|
321
321
|
}
|
|
322
|
-
function
|
|
322
|
+
function FromTuple(schema, references, value) {
|
|
323
323
|
if (!IsArray(value)) {
|
|
324
324
|
return false;
|
|
325
325
|
}
|
|
@@ -338,13 +338,13 @@ function TTuple(schema, references, value) {
|
|
|
338
338
|
}
|
|
339
339
|
return true;
|
|
340
340
|
}
|
|
341
|
-
function
|
|
341
|
+
function FromUndefined(schema, references, value) {
|
|
342
342
|
return IsUndefined(value);
|
|
343
343
|
}
|
|
344
|
-
function
|
|
344
|
+
function FromUnion(schema, references, value) {
|
|
345
345
|
return schema.anyOf.some((inner) => Visit(inner, references, value));
|
|
346
346
|
}
|
|
347
|
-
function
|
|
347
|
+
function FromUint8Array(schema, references, value) {
|
|
348
348
|
if (!IsUint8Array(value)) {
|
|
349
349
|
return false;
|
|
350
350
|
}
|
|
@@ -356,13 +356,13 @@ function TUint8Array(schema, references, value) {
|
|
|
356
356
|
}
|
|
357
357
|
return true;
|
|
358
358
|
}
|
|
359
|
-
function
|
|
359
|
+
function FromUnknown(schema, references, value) {
|
|
360
360
|
return true;
|
|
361
361
|
}
|
|
362
|
-
function
|
|
362
|
+
function FromVoid(schema, references, value) {
|
|
363
363
|
return TypeSystemPolicy.IsVoidLike(value);
|
|
364
364
|
}
|
|
365
|
-
function
|
|
365
|
+
function FromKind(schema, references, value) {
|
|
366
366
|
if (!TypeRegistry.Has(schema[Kind]))
|
|
367
367
|
return false;
|
|
368
368
|
const func = TypeRegistry.Get(schema[Kind]);
|
|
@@ -373,69 +373,69 @@ function Visit(schema, references, value) {
|
|
|
373
373
|
const schema_ = schema;
|
|
374
374
|
switch (schema_[Kind]) {
|
|
375
375
|
case 'Any':
|
|
376
|
-
return
|
|
376
|
+
return FromAny(schema_, references_, value);
|
|
377
377
|
case 'Array':
|
|
378
|
-
return
|
|
378
|
+
return FromArray(schema_, references_, value);
|
|
379
379
|
case 'AsyncIterator':
|
|
380
|
-
return
|
|
380
|
+
return FromAsyncIterator(schema_, references_, value);
|
|
381
381
|
case 'BigInt':
|
|
382
|
-
return
|
|
382
|
+
return FromBigInt(schema_, references_, value);
|
|
383
383
|
case 'Boolean':
|
|
384
|
-
return
|
|
384
|
+
return FromBoolean(schema_, references_, value);
|
|
385
385
|
case 'Constructor':
|
|
386
|
-
return
|
|
386
|
+
return FromConstructor(schema_, references_, value);
|
|
387
387
|
case 'Date':
|
|
388
|
-
return
|
|
388
|
+
return FromDate(schema_, references_, value);
|
|
389
389
|
case 'Function':
|
|
390
|
-
return
|
|
390
|
+
return FromFunction(schema_, references_, value);
|
|
391
391
|
case 'Integer':
|
|
392
|
-
return
|
|
392
|
+
return FromInteger(schema_, references_, value);
|
|
393
393
|
case 'Intersect':
|
|
394
|
-
return
|
|
394
|
+
return FromIntersect(schema_, references_, value);
|
|
395
395
|
case 'Iterator':
|
|
396
|
-
return
|
|
396
|
+
return FromIterator(schema_, references_, value);
|
|
397
397
|
case 'Literal':
|
|
398
|
-
return
|
|
398
|
+
return FromLiteral(schema_, references_, value);
|
|
399
399
|
case 'Never':
|
|
400
|
-
return
|
|
400
|
+
return FromNever(schema_, references_, value);
|
|
401
401
|
case 'Not':
|
|
402
|
-
return
|
|
402
|
+
return FromNot(schema_, references_, value);
|
|
403
403
|
case 'Null':
|
|
404
|
-
return
|
|
404
|
+
return FromNull(schema_, references_, value);
|
|
405
405
|
case 'Number':
|
|
406
|
-
return
|
|
406
|
+
return FromNumber(schema_, references_, value);
|
|
407
407
|
case 'Object':
|
|
408
|
-
return
|
|
408
|
+
return FromObject(schema_, references_, value);
|
|
409
409
|
case 'Promise':
|
|
410
|
-
return
|
|
410
|
+
return FromPromise(schema_, references_, value);
|
|
411
411
|
case 'Record':
|
|
412
|
-
return
|
|
412
|
+
return FromRecord(schema_, references_, value);
|
|
413
413
|
case 'Ref':
|
|
414
|
-
return
|
|
414
|
+
return FromRef(schema_, references_, value);
|
|
415
415
|
case 'String':
|
|
416
|
-
return
|
|
416
|
+
return FromString(schema_, references_, value);
|
|
417
417
|
case 'Symbol':
|
|
418
|
-
return
|
|
418
|
+
return FromSymbol(schema_, references_, value);
|
|
419
419
|
case 'TemplateLiteral':
|
|
420
|
-
return
|
|
420
|
+
return FromTemplateLiteral(schema_, references_, value);
|
|
421
421
|
case 'This':
|
|
422
|
-
return
|
|
422
|
+
return FromThis(schema_, references_, value);
|
|
423
423
|
case 'Tuple':
|
|
424
|
-
return
|
|
424
|
+
return FromTuple(schema_, references_, value);
|
|
425
425
|
case 'Undefined':
|
|
426
|
-
return
|
|
426
|
+
return FromUndefined(schema_, references_, value);
|
|
427
427
|
case 'Union':
|
|
428
|
-
return
|
|
428
|
+
return FromUnion(schema_, references_, value);
|
|
429
429
|
case 'Uint8Array':
|
|
430
|
-
return
|
|
430
|
+
return FromUint8Array(schema_, references_, value);
|
|
431
431
|
case 'Unknown':
|
|
432
|
-
return
|
|
432
|
+
return FromUnknown(schema_, references_, value);
|
|
433
433
|
case 'Void':
|
|
434
|
-
return
|
|
434
|
+
return FromVoid(schema_, references_, value);
|
|
435
435
|
default:
|
|
436
436
|
if (!TypeRegistry.Has(schema_[Kind]))
|
|
437
437
|
throw new ValueCheckUnknownTypeError(schema_);
|
|
438
|
-
return
|
|
438
|
+
return FromKind(schema_, references_, value);
|
|
439
439
|
}
|
|
440
440
|
}
|
|
441
441
|
/** Returns true if the value matches the given type. */
|
|
@@ -22,12 +22,12 @@ function IsCheckable(schema) {
|
|
|
22
22
|
// ------------------------------------------------------------------
|
|
23
23
|
// Types
|
|
24
24
|
// ------------------------------------------------------------------
|
|
25
|
-
function
|
|
25
|
+
function FromArray(schema, references, value) {
|
|
26
26
|
if (!IsArray(value))
|
|
27
27
|
return value;
|
|
28
28
|
return value.map((value) => Visit(schema.items, references, value));
|
|
29
29
|
}
|
|
30
|
-
function
|
|
30
|
+
function FromIntersect(schema, references, value) {
|
|
31
31
|
const unevaluatedProperties = schema.unevaluatedProperties;
|
|
32
32
|
const intersections = schema.allOf.map((schema) => Visit(schema, references, Clone(value)));
|
|
33
33
|
const composite = intersections.reduce((acc, value) => (IsObject(value) ? { ...acc, ...value } : value), {});
|
|
@@ -43,7 +43,7 @@ function TIntersect(schema, references, value) {
|
|
|
43
43
|
}
|
|
44
44
|
return composite;
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function FromObject(schema, references, value) {
|
|
47
47
|
if (!IsObject(value) || IsArray(value))
|
|
48
48
|
return value; // Check IsArray for AllowArrayObject configuration
|
|
49
49
|
const additionalProperties = schema.additionalProperties;
|
|
@@ -60,7 +60,7 @@ function TObject(schema, references, value) {
|
|
|
60
60
|
}
|
|
61
61
|
return value;
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function FromRecord(schema, references, value) {
|
|
64
64
|
if (!IsObject(value))
|
|
65
65
|
return value;
|
|
66
66
|
const additionalProperties = schema.additionalProperties;
|
|
@@ -80,13 +80,13 @@ function TRecord(schema, references, value) {
|
|
|
80
80
|
}
|
|
81
81
|
return value;
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function FromRef(schema, references, value) {
|
|
84
84
|
return Visit(Deref(schema, references), references, value);
|
|
85
85
|
}
|
|
86
|
-
function
|
|
86
|
+
function FromThis(schema, references, value) {
|
|
87
87
|
return Visit(Deref(schema, references), references, value);
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function FromTuple(schema, references, value) {
|
|
90
90
|
if (!IsArray(value))
|
|
91
91
|
return value;
|
|
92
92
|
if (IsUndefined(schema.items))
|
|
@@ -100,7 +100,7 @@ function TTuple(schema, references, value) {
|
|
|
100
100
|
? value.slice(0, length)
|
|
101
101
|
: value;
|
|
102
102
|
}
|
|
103
|
-
function
|
|
103
|
+
function FromUnion(schema, references, value) {
|
|
104
104
|
for (const inner of schema.anyOf) {
|
|
105
105
|
if (IsCheckable(inner) && Check(inner, value)) {
|
|
106
106
|
return Visit(inner, references, value);
|
|
@@ -113,21 +113,21 @@ function Visit(schema, references, value) {
|
|
|
113
113
|
const schema_ = schema;
|
|
114
114
|
switch (schema_[Kind]) {
|
|
115
115
|
case 'Array':
|
|
116
|
-
return
|
|
116
|
+
return FromArray(schema_, references_, value);
|
|
117
117
|
case 'Intersect':
|
|
118
|
-
return
|
|
118
|
+
return FromIntersect(schema_, references_, value);
|
|
119
119
|
case 'Object':
|
|
120
|
-
return
|
|
120
|
+
return FromObject(schema_, references_, value);
|
|
121
121
|
case 'Record':
|
|
122
|
-
return
|
|
122
|
+
return FromRecord(schema_, references_, value);
|
|
123
123
|
case 'Ref':
|
|
124
|
-
return
|
|
124
|
+
return FromRef(schema_, references_, value);
|
|
125
125
|
case 'This':
|
|
126
|
-
return
|
|
126
|
+
return FromThis(schema_, references_, value);
|
|
127
127
|
case 'Tuple':
|
|
128
|
-
return
|
|
128
|
+
return FromTuple(schema_, references_, value);
|
|
129
129
|
case 'Union':
|
|
130
|
-
return
|
|
130
|
+
return FromUnion(schema_, references_, value);
|
|
131
131
|
default:
|
|
132
132
|
return value;
|
|
133
133
|
}
|
|
@@ -122,42 +122,42 @@ function Default(value) {
|
|
|
122
122
|
// ------------------------------------------------------------------
|
|
123
123
|
// Convert
|
|
124
124
|
// ------------------------------------------------------------------
|
|
125
|
-
function
|
|
125
|
+
function FromArray(schema, references, value) {
|
|
126
126
|
if (IsArray(value)) {
|
|
127
127
|
return value.map((value) => Visit(schema.items, references, value));
|
|
128
128
|
}
|
|
129
129
|
return value;
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function FromBigInt(schema, references, value) {
|
|
132
132
|
return TryConvertBigInt(value);
|
|
133
133
|
}
|
|
134
|
-
function
|
|
134
|
+
function FromBoolean(schema, references, value) {
|
|
135
135
|
return TryConvertBoolean(value);
|
|
136
136
|
}
|
|
137
|
-
function
|
|
137
|
+
function FromDate(schema, references, value) {
|
|
138
138
|
return TryConvertDate(value);
|
|
139
139
|
}
|
|
140
|
-
function
|
|
140
|
+
function FromInteger(schema, references, value) {
|
|
141
141
|
return TryConvertInteger(value);
|
|
142
142
|
}
|
|
143
143
|
// prettier-ignore
|
|
144
|
-
function
|
|
144
|
+
function FromIntersect(schema, references, value) {
|
|
145
145
|
const allObjects = schema.allOf.every(schema => IsObjectType(schema));
|
|
146
146
|
if (allObjects)
|
|
147
147
|
return Visit(Composite(schema.allOf), references, value);
|
|
148
148
|
return Visit(schema.allOf[0], references, value); // todo: fix this
|
|
149
149
|
}
|
|
150
|
-
function
|
|
150
|
+
function FromLiteral(schema, references, value) {
|
|
151
151
|
return TryConvertLiteral(schema, value);
|
|
152
152
|
}
|
|
153
|
-
function
|
|
153
|
+
function FromNull(schema, references, value) {
|
|
154
154
|
return TryConvertNull(value);
|
|
155
155
|
}
|
|
156
|
-
function
|
|
156
|
+
function FromNumber(schema, references, value) {
|
|
157
157
|
return TryConvertNumber(value);
|
|
158
158
|
}
|
|
159
159
|
// prettier-ignore
|
|
160
|
-
function
|
|
160
|
+
function FromObject(schema, references, value) {
|
|
161
161
|
const isConvertable = IsObject(value);
|
|
162
162
|
if (!isConvertable)
|
|
163
163
|
return value;
|
|
@@ -167,7 +167,7 @@ function TObject(schema, references, value) {
|
|
|
167
167
|
: ({ ...value });
|
|
168
168
|
}, value);
|
|
169
169
|
}
|
|
170
|
-
function
|
|
170
|
+
function FromRecord(schema, references, value) {
|
|
171
171
|
const propertyKey = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
172
172
|
const property = schema.patternProperties[propertyKey];
|
|
173
173
|
const result = {};
|
|
@@ -176,20 +176,20 @@ function TRecord(schema, references, value) {
|
|
|
176
176
|
}
|
|
177
177
|
return result;
|
|
178
178
|
}
|
|
179
|
-
function
|
|
179
|
+
function FromRef(schema, references, value) {
|
|
180
180
|
return Visit(Deref(schema, references), references, value);
|
|
181
181
|
}
|
|
182
|
-
function
|
|
182
|
+
function FromString(schema, references, value) {
|
|
183
183
|
return TryConvertString(value);
|
|
184
184
|
}
|
|
185
|
-
function
|
|
185
|
+
function FromSymbol(schema, references, value) {
|
|
186
186
|
return IsString(value) || IsNumber(value) ? Symbol(value) : value;
|
|
187
187
|
}
|
|
188
|
-
function
|
|
188
|
+
function FromThis(schema, references, value) {
|
|
189
189
|
return Visit(Deref(schema, references), references, value);
|
|
190
190
|
}
|
|
191
191
|
// prettier-ignore
|
|
192
|
-
function
|
|
192
|
+
function FromTuple(schema, references, value) {
|
|
193
193
|
const isConvertable = IsArray(value) && !IsUndefined(schema.items);
|
|
194
194
|
if (!isConvertable)
|
|
195
195
|
return value;
|
|
@@ -199,10 +199,10 @@ function TTuple(schema, references, value) {
|
|
|
199
199
|
: value;
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
|
-
function
|
|
202
|
+
function FromUndefined(schema, references, value) {
|
|
203
203
|
return TryConvertUndefined(value);
|
|
204
204
|
}
|
|
205
|
-
function
|
|
205
|
+
function FromUnion(schema, references, value) {
|
|
206
206
|
for (const subschema of schema.anyOf) {
|
|
207
207
|
const converted = Visit(subschema, references, value);
|
|
208
208
|
if (Check(subschema, references, converted)) {
|
|
@@ -216,41 +216,41 @@ function Visit(schema, references, value) {
|
|
|
216
216
|
const schema_ = schema;
|
|
217
217
|
switch (schema[Kind]) {
|
|
218
218
|
case 'Array':
|
|
219
|
-
return
|
|
219
|
+
return FromArray(schema_, references_, value);
|
|
220
220
|
case 'BigInt':
|
|
221
|
-
return
|
|
221
|
+
return FromBigInt(schema_, references_, value);
|
|
222
222
|
case 'Boolean':
|
|
223
|
-
return
|
|
223
|
+
return FromBoolean(schema_, references_, value);
|
|
224
224
|
case 'Date':
|
|
225
|
-
return
|
|
225
|
+
return FromDate(schema_, references_, value);
|
|
226
226
|
case 'Integer':
|
|
227
|
-
return
|
|
227
|
+
return FromInteger(schema_, references_, value);
|
|
228
228
|
case 'Intersect':
|
|
229
|
-
return
|
|
229
|
+
return FromIntersect(schema_, references_, value);
|
|
230
230
|
case 'Literal':
|
|
231
|
-
return
|
|
231
|
+
return FromLiteral(schema_, references_, value);
|
|
232
232
|
case 'Null':
|
|
233
|
-
return
|
|
233
|
+
return FromNull(schema_, references_, value);
|
|
234
234
|
case 'Number':
|
|
235
|
-
return
|
|
235
|
+
return FromNumber(schema_, references_, value);
|
|
236
236
|
case 'Object':
|
|
237
|
-
return
|
|
237
|
+
return FromObject(schema_, references_, value);
|
|
238
238
|
case 'Record':
|
|
239
|
-
return
|
|
239
|
+
return FromRecord(schema_, references_, value);
|
|
240
240
|
case 'Ref':
|
|
241
|
-
return
|
|
241
|
+
return FromRef(schema_, references_, value);
|
|
242
242
|
case 'String':
|
|
243
|
-
return
|
|
243
|
+
return FromString(schema_, references_, value);
|
|
244
244
|
case 'Symbol':
|
|
245
|
-
return
|
|
245
|
+
return FromSymbol(schema_, references_, value);
|
|
246
246
|
case 'This':
|
|
247
|
-
return
|
|
247
|
+
return FromThis(schema_, references_, value);
|
|
248
248
|
case 'Tuple':
|
|
249
|
-
return
|
|
249
|
+
return FromTuple(schema_, references_, value);
|
|
250
250
|
case 'Undefined':
|
|
251
|
-
return
|
|
251
|
+
return FromUndefined(schema_, references_, value);
|
|
252
252
|
case 'Union':
|
|
253
|
-
return
|
|
253
|
+
return FromUnion(schema_, references_, value);
|
|
254
254
|
default:
|
|
255
255
|
return Default(value);
|
|
256
256
|
}
|