@sinclair/typebox 0.32.0-dev-19 → 0.32.0-dev-21
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 +3 -3
- package/build/import/type/indexed/indexed-property-keys.d.mts +2 -2
- package/build/import/type/indexed/indexed-property-keys.mjs +6 -11
- package/build/import/type/intrinsic/intrinsic.mjs +3 -3
- package/build/import/type/optional/index.d.mts +1 -0
- package/build/import/type/optional/index.mjs +1 -0
- package/build/import/type/optional/optional-from-mapped-result.d.mts +12 -0
- package/build/import/type/optional/optional-from-mapped-result.mjs +17 -0
- package/build/import/type/optional/optional.d.mts +19 -2
- package/build/import/type/optional/optional.mjs +18 -2
- package/build/import/type/readonly/index.d.mts +1 -0
- package/build/import/type/readonly/index.mjs +1 -0
- package/build/import/type/readonly/readonly-from-mapped-result.d.mts +12 -0
- package/build/import/type/readonly/readonly-from-mapped-result.mjs +17 -0
- package/build/import/type/readonly/readonly.d.mts +18 -1
- package/build/import/type/readonly/readonly.mjs +18 -2
- package/build/import/type/record/record.d.mts +2 -2
- package/build/import/type/record/record.mjs +2 -3
- package/build/import/type/schema/schema.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 -8
- 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 +1 -1
- package/build/import/type/template-literal/syntax.mjs +0 -1
- 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/type/json.d.mts +19 -7
- package/build/import/type/type/json.mjs +5 -5
- 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 +6 -2
- package/build/require/type/indexed/indexed-property-keys.d.ts +2 -2
- package/build/require/type/indexed/indexed-property-keys.js +4 -9
- package/build/require/type/intrinsic/intrinsic.js +2 -2
- package/build/require/type/optional/index.d.ts +1 -0
- package/build/require/type/optional/index.js +1 -0
- package/build/require/type/optional/optional-from-mapped-result.d.ts +12 -0
- package/build/require/type/optional/optional-from-mapped-result.js +22 -0
- package/build/require/type/optional/optional.d.ts +19 -2
- package/build/require/type/optional/optional.js +18 -2
- package/build/require/type/readonly/index.d.ts +1 -0
- package/build/require/type/readonly/index.js +1 -0
- package/build/require/type/readonly/readonly-from-mapped-result.d.ts +12 -0
- package/build/require/type/readonly/readonly-from-mapped-result.js +22 -0
- package/build/require/type/readonly/readonly.d.ts +18 -1
- package/build/require/type/readonly/readonly.js +18 -2
- package/build/require/type/record/record.d.ts +2 -2
- package/build/require/type/record/record.js +1 -2
- package/build/require/type/schema/schema.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 -8
- 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 +1 -1
- package/build/require/type/template-literal/syntax.js +0 -1
- 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/type/json.d.ts +19 -7
- package/build/require/type/type/json.js +5 -5
- 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 +52 -52
- /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
|
@@ -44,10 +44,10 @@ function IsDefined(value) {
|
|
|
44
44
|
// ------------------------------------------------------------------
|
|
45
45
|
// Types
|
|
46
46
|
// ------------------------------------------------------------------
|
|
47
|
-
function
|
|
47
|
+
function FromAny(schema, references, value) {
|
|
48
48
|
return true;
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function FromArray(schema, references, value) {
|
|
51
51
|
if (!(0, index_9.IsArray)(value))
|
|
52
52
|
return false;
|
|
53
53
|
if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {
|
|
@@ -88,10 +88,10 @@ function TArray(schema, references, value) {
|
|
|
88
88
|
}
|
|
89
89
|
return true;
|
|
90
90
|
}
|
|
91
|
-
function
|
|
91
|
+
function FromAsyncIterator(schema, references, value) {
|
|
92
92
|
return (0, index_9.IsAsyncIterator)(value);
|
|
93
93
|
}
|
|
94
|
-
function
|
|
94
|
+
function FromBigInt(schema, references, value) {
|
|
95
95
|
if (!(0, index_9.IsBigInt)(value))
|
|
96
96
|
return false;
|
|
97
97
|
if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
|
|
@@ -111,13 +111,13 @@ function TBigInt(schema, references, value) {
|
|
|
111
111
|
}
|
|
112
112
|
return true;
|
|
113
113
|
}
|
|
114
|
-
function
|
|
114
|
+
function FromBoolean(schema, references, value) {
|
|
115
115
|
return (0, index_9.IsBoolean)(value);
|
|
116
116
|
}
|
|
117
|
-
function
|
|
117
|
+
function FromConstructor(schema, references, value) {
|
|
118
118
|
return Visit(schema.returns, references, value.prototype);
|
|
119
119
|
}
|
|
120
|
-
function
|
|
120
|
+
function FromDate(schema, references, value) {
|
|
121
121
|
if (!(0, index_9.IsDate)(value))
|
|
122
122
|
return false;
|
|
123
123
|
if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {
|
|
@@ -137,10 +137,10 @@ function TDate(schema, references, value) {
|
|
|
137
137
|
}
|
|
138
138
|
return true;
|
|
139
139
|
}
|
|
140
|
-
function
|
|
140
|
+
function FromFunction(schema, references, value) {
|
|
141
141
|
return (0, index_9.IsFunction)(value);
|
|
142
142
|
}
|
|
143
|
-
function
|
|
143
|
+
function FromInteger(schema, references, value) {
|
|
144
144
|
if (!(0, index_9.IsInteger)(value)) {
|
|
145
145
|
return false;
|
|
146
146
|
}
|
|
@@ -161,7 +161,7 @@ function TInteger(schema, references, value) {
|
|
|
161
161
|
}
|
|
162
162
|
return true;
|
|
163
163
|
}
|
|
164
|
-
function
|
|
164
|
+
function FromIntersect(schema, references, value) {
|
|
165
165
|
const check1 = schema.allOf.every((schema) => Visit(schema, references, value));
|
|
166
166
|
if (schema.unevaluatedProperties === false) {
|
|
167
167
|
const keyPattern = new RegExp((0, index_5.KeyOfPattern)(schema));
|
|
@@ -177,22 +177,22 @@ function TIntersect(schema, references, value) {
|
|
|
177
177
|
return check1;
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
-
function
|
|
180
|
+
function FromIterator(schema, references, value) {
|
|
181
181
|
return (0, index_9.IsIterator)(value);
|
|
182
182
|
}
|
|
183
|
-
function
|
|
183
|
+
function FromLiteral(schema, references, value) {
|
|
184
184
|
return value === schema.const;
|
|
185
185
|
}
|
|
186
|
-
function
|
|
186
|
+
function FromNever(schema, references, value) {
|
|
187
187
|
return false;
|
|
188
188
|
}
|
|
189
|
-
function
|
|
189
|
+
function FromNot(schema, references, value) {
|
|
190
190
|
return !Visit(schema.not, references, value);
|
|
191
191
|
}
|
|
192
|
-
function
|
|
192
|
+
function FromNull(schema, references, value) {
|
|
193
193
|
return (0, index_9.IsNull)(value);
|
|
194
194
|
}
|
|
195
|
-
function
|
|
195
|
+
function FromNumber(schema, references, value) {
|
|
196
196
|
if (!index_1.TypeSystemPolicy.IsNumberLike(value))
|
|
197
197
|
return false;
|
|
198
198
|
if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
|
|
@@ -212,7 +212,7 @@ function TNumber(schema, references, value) {
|
|
|
212
212
|
}
|
|
213
213
|
return true;
|
|
214
214
|
}
|
|
215
|
-
function
|
|
215
|
+
function FromObject(schema, references, value) {
|
|
216
216
|
if (!index_1.TypeSystemPolicy.IsObjectLike(value))
|
|
217
217
|
return false;
|
|
218
218
|
if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {
|
|
@@ -256,10 +256,10 @@ function TObject(schema, references, value) {
|
|
|
256
256
|
return true;
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
-
function
|
|
259
|
+
function FromPromise(schema, references, value) {
|
|
260
260
|
return (0, index_9.IsPromise)(value);
|
|
261
261
|
}
|
|
262
|
-
function
|
|
262
|
+
function FromRecord(schema, references, value) {
|
|
263
263
|
if (!index_1.TypeSystemPolicy.IsRecordLike(value)) {
|
|
264
264
|
return false;
|
|
265
265
|
}
|
|
@@ -286,10 +286,10 @@ function TRecord(schema, references, value) {
|
|
|
286
286
|
: true;
|
|
287
287
|
return check1 && check2 && check3;
|
|
288
288
|
}
|
|
289
|
-
function
|
|
289
|
+
function FromRef(schema, references, value) {
|
|
290
290
|
return Visit((0, index_2.Deref)(schema, references), references, value);
|
|
291
291
|
}
|
|
292
|
-
function
|
|
292
|
+
function FromString(schema, references, value) {
|
|
293
293
|
if (!(0, index_9.IsString)(value)) {
|
|
294
294
|
return false;
|
|
295
295
|
}
|
|
@@ -314,16 +314,16 @@ function TString(schema, references, value) {
|
|
|
314
314
|
}
|
|
315
315
|
return true;
|
|
316
316
|
}
|
|
317
|
-
function
|
|
317
|
+
function FromSymbol(schema, references, value) {
|
|
318
318
|
return (0, index_9.IsSymbol)(value);
|
|
319
319
|
}
|
|
320
|
-
function
|
|
320
|
+
function FromTemplateLiteral(schema, references, value) {
|
|
321
321
|
return (0, index_9.IsString)(value) && new RegExp(schema.pattern).test(value);
|
|
322
322
|
}
|
|
323
|
-
function
|
|
323
|
+
function FromThis(schema, references, value) {
|
|
324
324
|
return Visit((0, index_2.Deref)(schema, references), references, value);
|
|
325
325
|
}
|
|
326
|
-
function
|
|
326
|
+
function FromTuple(schema, references, value) {
|
|
327
327
|
if (!(0, index_9.IsArray)(value)) {
|
|
328
328
|
return false;
|
|
329
329
|
}
|
|
@@ -342,13 +342,13 @@ function TTuple(schema, references, value) {
|
|
|
342
342
|
}
|
|
343
343
|
return true;
|
|
344
344
|
}
|
|
345
|
-
function
|
|
345
|
+
function FromUndefined(schema, references, value) {
|
|
346
346
|
return (0, index_9.IsUndefined)(value);
|
|
347
347
|
}
|
|
348
|
-
function
|
|
348
|
+
function FromUnion(schema, references, value) {
|
|
349
349
|
return schema.anyOf.some((inner) => Visit(inner, references, value));
|
|
350
350
|
}
|
|
351
|
-
function
|
|
351
|
+
function FromUint8Array(schema, references, value) {
|
|
352
352
|
if (!(0, index_9.IsUint8Array)(value)) {
|
|
353
353
|
return false;
|
|
354
354
|
}
|
|
@@ -360,13 +360,13 @@ function TUint8Array(schema, references, value) {
|
|
|
360
360
|
}
|
|
361
361
|
return true;
|
|
362
362
|
}
|
|
363
|
-
function
|
|
363
|
+
function FromUnknown(schema, references, value) {
|
|
364
364
|
return true;
|
|
365
365
|
}
|
|
366
|
-
function
|
|
366
|
+
function FromVoid(schema, references, value) {
|
|
367
367
|
return index_1.TypeSystemPolicy.IsVoidLike(value);
|
|
368
368
|
}
|
|
369
|
-
function
|
|
369
|
+
function FromKind(schema, references, value) {
|
|
370
370
|
if (!index_7.TypeRegistry.Has(schema[index_4.Kind]))
|
|
371
371
|
return false;
|
|
372
372
|
const func = index_7.TypeRegistry.Get(schema[index_4.Kind]);
|
|
@@ -377,69 +377,69 @@ function Visit(schema, references, value) {
|
|
|
377
377
|
const schema_ = schema;
|
|
378
378
|
switch (schema_[index_4.Kind]) {
|
|
379
379
|
case 'Any':
|
|
380
|
-
return
|
|
380
|
+
return FromAny(schema_, references_, value);
|
|
381
381
|
case 'Array':
|
|
382
|
-
return
|
|
382
|
+
return FromArray(schema_, references_, value);
|
|
383
383
|
case 'AsyncIterator':
|
|
384
|
-
return
|
|
384
|
+
return FromAsyncIterator(schema_, references_, value);
|
|
385
385
|
case 'BigInt':
|
|
386
|
-
return
|
|
386
|
+
return FromBigInt(schema_, references_, value);
|
|
387
387
|
case 'Boolean':
|
|
388
|
-
return
|
|
388
|
+
return FromBoolean(schema_, references_, value);
|
|
389
389
|
case 'Constructor':
|
|
390
|
-
return
|
|
390
|
+
return FromConstructor(schema_, references_, value);
|
|
391
391
|
case 'Date':
|
|
392
|
-
return
|
|
392
|
+
return FromDate(schema_, references_, value);
|
|
393
393
|
case 'Function':
|
|
394
|
-
return
|
|
394
|
+
return FromFunction(schema_, references_, value);
|
|
395
395
|
case 'Integer':
|
|
396
|
-
return
|
|
396
|
+
return FromInteger(schema_, references_, value);
|
|
397
397
|
case 'Intersect':
|
|
398
|
-
return
|
|
398
|
+
return FromIntersect(schema_, references_, value);
|
|
399
399
|
case 'Iterator':
|
|
400
|
-
return
|
|
400
|
+
return FromIterator(schema_, references_, value);
|
|
401
401
|
case 'Literal':
|
|
402
|
-
return
|
|
402
|
+
return FromLiteral(schema_, references_, value);
|
|
403
403
|
case 'Never':
|
|
404
|
-
return
|
|
404
|
+
return FromNever(schema_, references_, value);
|
|
405
405
|
case 'Not':
|
|
406
|
-
return
|
|
406
|
+
return FromNot(schema_, references_, value);
|
|
407
407
|
case 'Null':
|
|
408
|
-
return
|
|
408
|
+
return FromNull(schema_, references_, value);
|
|
409
409
|
case 'Number':
|
|
410
|
-
return
|
|
410
|
+
return FromNumber(schema_, references_, value);
|
|
411
411
|
case 'Object':
|
|
412
|
-
return
|
|
412
|
+
return FromObject(schema_, references_, value);
|
|
413
413
|
case 'Promise':
|
|
414
|
-
return
|
|
414
|
+
return FromPromise(schema_, references_, value);
|
|
415
415
|
case 'Record':
|
|
416
|
-
return
|
|
416
|
+
return FromRecord(schema_, references_, value);
|
|
417
417
|
case 'Ref':
|
|
418
|
-
return
|
|
418
|
+
return FromRef(schema_, references_, value);
|
|
419
419
|
case 'String':
|
|
420
|
-
return
|
|
420
|
+
return FromString(schema_, references_, value);
|
|
421
421
|
case 'Symbol':
|
|
422
|
-
return
|
|
422
|
+
return FromSymbol(schema_, references_, value);
|
|
423
423
|
case 'TemplateLiteral':
|
|
424
|
-
return
|
|
424
|
+
return FromTemplateLiteral(schema_, references_, value);
|
|
425
425
|
case 'This':
|
|
426
|
-
return
|
|
426
|
+
return FromThis(schema_, references_, value);
|
|
427
427
|
case 'Tuple':
|
|
428
|
-
return
|
|
428
|
+
return FromTuple(schema_, references_, value);
|
|
429
429
|
case 'Undefined':
|
|
430
|
-
return
|
|
430
|
+
return FromUndefined(schema_, references_, value);
|
|
431
431
|
case 'Union':
|
|
432
|
-
return
|
|
432
|
+
return FromUnion(schema_, references_, value);
|
|
433
433
|
case 'Uint8Array':
|
|
434
|
-
return
|
|
434
|
+
return FromUint8Array(schema_, references_, value);
|
|
435
435
|
case 'Unknown':
|
|
436
|
-
return
|
|
436
|
+
return FromUnknown(schema_, references_, value);
|
|
437
437
|
case 'Void':
|
|
438
|
-
return
|
|
438
|
+
return FromVoid(schema_, references_, value);
|
|
439
439
|
default:
|
|
440
440
|
if (!index_7.TypeRegistry.Has(schema_[index_4.Kind]))
|
|
441
441
|
throw new ValueCheckUnknownTypeError(schema_);
|
|
442
|
-
return
|
|
442
|
+
return FromKind(schema_, references_, value);
|
|
443
443
|
}
|
|
444
444
|
}
|
|
445
445
|
/** Returns true if the value matches the given type. */
|
|
@@ -26,12 +26,12 @@ function IsCheckable(schema) {
|
|
|
26
26
|
// ------------------------------------------------------------------
|
|
27
27
|
// Types
|
|
28
28
|
// ------------------------------------------------------------------
|
|
29
|
-
function
|
|
29
|
+
function FromArray(schema, references, value) {
|
|
30
30
|
if (!(0, index_6.IsArray)(value))
|
|
31
31
|
return value;
|
|
32
32
|
return value.map((value) => Visit(schema.items, references, value));
|
|
33
33
|
}
|
|
34
|
-
function
|
|
34
|
+
function FromIntersect(schema, references, value) {
|
|
35
35
|
const unevaluatedProperties = schema.unevaluatedProperties;
|
|
36
36
|
const intersections = schema.allOf.map((schema) => Visit(schema, references, (0, index_3.Clone)(value)));
|
|
37
37
|
const composite = intersections.reduce((acc, value) => ((0, index_6.IsObject)(value) ? { ...acc, ...value } : value), {});
|
|
@@ -47,7 +47,7 @@ function TIntersect(schema, references, value) {
|
|
|
47
47
|
}
|
|
48
48
|
return composite;
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function FromObject(schema, references, value) {
|
|
51
51
|
if (!(0, index_6.IsObject)(value) || (0, index_6.IsArray)(value))
|
|
52
52
|
return value; // Check IsArray for AllowArrayObject configuration
|
|
53
53
|
const additionalProperties = schema.additionalProperties;
|
|
@@ -64,7 +64,7 @@ function TObject(schema, references, value) {
|
|
|
64
64
|
}
|
|
65
65
|
return value;
|
|
66
66
|
}
|
|
67
|
-
function
|
|
67
|
+
function FromRecord(schema, references, value) {
|
|
68
68
|
if (!(0, index_6.IsObject)(value))
|
|
69
69
|
return value;
|
|
70
70
|
const additionalProperties = schema.additionalProperties;
|
|
@@ -84,13 +84,13 @@ function TRecord(schema, references, value) {
|
|
|
84
84
|
}
|
|
85
85
|
return value;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function FromRef(schema, references, value) {
|
|
88
88
|
return Visit((0, index_4.Deref)(schema, references), references, value);
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function FromThis(schema, references, value) {
|
|
91
91
|
return Visit((0, index_4.Deref)(schema, references), references, value);
|
|
92
92
|
}
|
|
93
|
-
function
|
|
93
|
+
function FromTuple(schema, references, value) {
|
|
94
94
|
if (!(0, index_6.IsArray)(value))
|
|
95
95
|
return value;
|
|
96
96
|
if ((0, index_6.IsUndefined)(schema.items))
|
|
@@ -104,7 +104,7 @@ function TTuple(schema, references, value) {
|
|
|
104
104
|
? value.slice(0, length)
|
|
105
105
|
: value;
|
|
106
106
|
}
|
|
107
|
-
function
|
|
107
|
+
function FromUnion(schema, references, value) {
|
|
108
108
|
for (const inner of schema.anyOf) {
|
|
109
109
|
if (IsCheckable(inner) && (0, index_2.Check)(inner, value)) {
|
|
110
110
|
return Visit(inner, references, value);
|
|
@@ -117,21 +117,21 @@ function Visit(schema, references, value) {
|
|
|
117
117
|
const schema_ = schema;
|
|
118
118
|
switch (schema_[index_5.Kind]) {
|
|
119
119
|
case 'Array':
|
|
120
|
-
return
|
|
120
|
+
return FromArray(schema_, references_, value);
|
|
121
121
|
case 'Intersect':
|
|
122
|
-
return
|
|
122
|
+
return FromIntersect(schema_, references_, value);
|
|
123
123
|
case 'Object':
|
|
124
|
-
return
|
|
124
|
+
return FromObject(schema_, references_, value);
|
|
125
125
|
case 'Record':
|
|
126
|
-
return
|
|
126
|
+
return FromRecord(schema_, references_, value);
|
|
127
127
|
case 'Ref':
|
|
128
|
-
return
|
|
128
|
+
return FromRef(schema_, references_, value);
|
|
129
129
|
case 'This':
|
|
130
|
-
return
|
|
130
|
+
return FromThis(schema_, references_, value);
|
|
131
131
|
case 'Tuple':
|
|
132
|
-
return
|
|
132
|
+
return FromTuple(schema_, references_, value);
|
|
133
133
|
case 'Union':
|
|
134
|
-
return
|
|
134
|
+
return FromUnion(schema_, references_, value);
|
|
135
135
|
default:
|
|
136
136
|
return value;
|
|
137
137
|
}
|
|
@@ -126,42 +126,42 @@ function Default(value) {
|
|
|
126
126
|
// ------------------------------------------------------------------
|
|
127
127
|
// Convert
|
|
128
128
|
// ------------------------------------------------------------------
|
|
129
|
-
function
|
|
129
|
+
function FromArray(schema, references, value) {
|
|
130
130
|
if ((0, index_6.IsArray)(value)) {
|
|
131
131
|
return value.map((value) => Visit(schema.items, references, value));
|
|
132
132
|
}
|
|
133
133
|
return value;
|
|
134
134
|
}
|
|
135
|
-
function
|
|
135
|
+
function FromBigInt(schema, references, value) {
|
|
136
136
|
return TryConvertBigInt(value);
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function FromBoolean(schema, references, value) {
|
|
139
139
|
return TryConvertBoolean(value);
|
|
140
140
|
}
|
|
141
|
-
function
|
|
141
|
+
function FromDate(schema, references, value) {
|
|
142
142
|
return TryConvertDate(value);
|
|
143
143
|
}
|
|
144
|
-
function
|
|
144
|
+
function FromInteger(schema, references, value) {
|
|
145
145
|
return TryConvertInteger(value);
|
|
146
146
|
}
|
|
147
147
|
// prettier-ignore
|
|
148
|
-
function
|
|
148
|
+
function FromIntersect(schema, references, value) {
|
|
149
149
|
const allObjects = schema.allOf.every(schema => (0, type_1.IsObject)(schema));
|
|
150
150
|
if (allObjects)
|
|
151
151
|
return Visit((0, index_5.Composite)(schema.allOf), references, value);
|
|
152
152
|
return Visit(schema.allOf[0], references, value); // todo: fix this
|
|
153
153
|
}
|
|
154
|
-
function
|
|
154
|
+
function FromLiteral(schema, references, value) {
|
|
155
155
|
return TryConvertLiteral(schema, value);
|
|
156
156
|
}
|
|
157
|
-
function
|
|
157
|
+
function FromNull(schema, references, value) {
|
|
158
158
|
return TryConvertNull(value);
|
|
159
159
|
}
|
|
160
|
-
function
|
|
160
|
+
function FromNumber(schema, references, value) {
|
|
161
161
|
return TryConvertNumber(value);
|
|
162
162
|
}
|
|
163
163
|
// prettier-ignore
|
|
164
|
-
function
|
|
164
|
+
function FromObject(schema, references, value) {
|
|
165
165
|
const isConvertable = (0, index_6.IsObject)(value);
|
|
166
166
|
if (!isConvertable)
|
|
167
167
|
return value;
|
|
@@ -171,7 +171,7 @@ function TObject(schema, references, value) {
|
|
|
171
171
|
: ({ ...value });
|
|
172
172
|
}, value);
|
|
173
173
|
}
|
|
174
|
-
function
|
|
174
|
+
function FromRecord(schema, references, value) {
|
|
175
175
|
const propertyKey = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
176
176
|
const property = schema.patternProperties[propertyKey];
|
|
177
177
|
const result = {};
|
|
@@ -180,20 +180,20 @@ function TRecord(schema, references, value) {
|
|
|
180
180
|
}
|
|
181
181
|
return result;
|
|
182
182
|
}
|
|
183
|
-
function
|
|
183
|
+
function FromRef(schema, references, value) {
|
|
184
184
|
return Visit((0, index_3.Deref)(schema, references), references, value);
|
|
185
185
|
}
|
|
186
|
-
function
|
|
186
|
+
function FromString(schema, references, value) {
|
|
187
187
|
return TryConvertString(value);
|
|
188
188
|
}
|
|
189
|
-
function
|
|
189
|
+
function FromSymbol(schema, references, value) {
|
|
190
190
|
return (0, index_6.IsString)(value) || (0, index_6.IsNumber)(value) ? Symbol(value) : value;
|
|
191
191
|
}
|
|
192
|
-
function
|
|
192
|
+
function FromThis(schema, references, value) {
|
|
193
193
|
return Visit((0, index_3.Deref)(schema, references), references, value);
|
|
194
194
|
}
|
|
195
195
|
// prettier-ignore
|
|
196
|
-
function
|
|
196
|
+
function FromTuple(schema, references, value) {
|
|
197
197
|
const isConvertable = (0, index_6.IsArray)(value) && !(0, index_6.IsUndefined)(schema.items);
|
|
198
198
|
if (!isConvertable)
|
|
199
199
|
return value;
|
|
@@ -203,10 +203,10 @@ function TTuple(schema, references, value) {
|
|
|
203
203
|
: value;
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
|
-
function
|
|
206
|
+
function FromUndefined(schema, references, value) {
|
|
207
207
|
return TryConvertUndefined(value);
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function FromUnion(schema, references, value) {
|
|
210
210
|
for (const subschema of schema.anyOf) {
|
|
211
211
|
const converted = Visit(subschema, references, value);
|
|
212
212
|
if ((0, index_2.Check)(subschema, references, converted)) {
|
|
@@ -220,41 +220,41 @@ function Visit(schema, references, value) {
|
|
|
220
220
|
const schema_ = schema;
|
|
221
221
|
switch (schema[index_4.Kind]) {
|
|
222
222
|
case 'Array':
|
|
223
|
-
return
|
|
223
|
+
return FromArray(schema_, references_, value);
|
|
224
224
|
case 'BigInt':
|
|
225
|
-
return
|
|
225
|
+
return FromBigInt(schema_, references_, value);
|
|
226
226
|
case 'Boolean':
|
|
227
|
-
return
|
|
227
|
+
return FromBoolean(schema_, references_, value);
|
|
228
228
|
case 'Date':
|
|
229
|
-
return
|
|
229
|
+
return FromDate(schema_, references_, value);
|
|
230
230
|
case 'Integer':
|
|
231
|
-
return
|
|
231
|
+
return FromInteger(schema_, references_, value);
|
|
232
232
|
case 'Intersect':
|
|
233
|
-
return
|
|
233
|
+
return FromIntersect(schema_, references_, value);
|
|
234
234
|
case 'Literal':
|
|
235
|
-
return
|
|
235
|
+
return FromLiteral(schema_, references_, value);
|
|
236
236
|
case 'Null':
|
|
237
|
-
return
|
|
237
|
+
return FromNull(schema_, references_, value);
|
|
238
238
|
case 'Number':
|
|
239
|
-
return
|
|
239
|
+
return FromNumber(schema_, references_, value);
|
|
240
240
|
case 'Object':
|
|
241
|
-
return
|
|
241
|
+
return FromObject(schema_, references_, value);
|
|
242
242
|
case 'Record':
|
|
243
|
-
return
|
|
243
|
+
return FromRecord(schema_, references_, value);
|
|
244
244
|
case 'Ref':
|
|
245
|
-
return
|
|
245
|
+
return FromRef(schema_, references_, value);
|
|
246
246
|
case 'String':
|
|
247
|
-
return
|
|
247
|
+
return FromString(schema_, references_, value);
|
|
248
248
|
case 'Symbol':
|
|
249
|
-
return
|
|
249
|
+
return FromSymbol(schema_, references_, value);
|
|
250
250
|
case 'This':
|
|
251
|
-
return
|
|
251
|
+
return FromThis(schema_, references_, value);
|
|
252
252
|
case 'Tuple':
|
|
253
|
-
return
|
|
253
|
+
return FromTuple(schema_, references_, value);
|
|
254
254
|
case 'Undefined':
|
|
255
|
-
return
|
|
255
|
+
return FromUndefined(schema_, references_, value);
|
|
256
256
|
case 'Union':
|
|
257
|
-
return
|
|
257
|
+
return FromUnion(schema_, references_, value);
|
|
258
258
|
default:
|
|
259
259
|
return Default(value);
|
|
260
260
|
}
|