@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
|
@@ -58,7 +58,7 @@ exports.ValueCreateRecursiveInstantiationError = ValueCreateRecursiveInstantiati
|
|
|
58
58
|
// ------------------------------------------------------------------
|
|
59
59
|
// Create
|
|
60
60
|
// ------------------------------------------------------------------
|
|
61
|
-
function
|
|
61
|
+
function FromAny(schema, references) {
|
|
62
62
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
63
63
|
return schema.default;
|
|
64
64
|
}
|
|
@@ -66,7 +66,7 @@ function TAny(schema, references) {
|
|
|
66
66
|
return {};
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
function
|
|
69
|
+
function FromArray(schema, references) {
|
|
70
70
|
if (schema.uniqueItems === true && !(0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
71
71
|
throw new Error('ValueCreate.Array: Array with the uniqueItems constraint requires a default value');
|
|
72
72
|
}
|
|
@@ -85,7 +85,7 @@ function TArray(schema, references) {
|
|
|
85
85
|
return [];
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
function
|
|
88
|
+
function FromAsyncIterator(schema, references) {
|
|
89
89
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
90
90
|
return schema.default;
|
|
91
91
|
}
|
|
@@ -93,7 +93,7 @@ function TAsyncIterator(schema, references) {
|
|
|
93
93
|
return (async function* () { })();
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function FromBigInt(schema, references) {
|
|
97
97
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
98
98
|
return schema.default;
|
|
99
99
|
}
|
|
@@ -101,7 +101,7 @@ function TBigInt(schema, references) {
|
|
|
101
101
|
return BigInt(0);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function FromBoolean(schema, references) {
|
|
105
105
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
106
106
|
return schema.default;
|
|
107
107
|
}
|
|
@@ -109,7 +109,7 @@ function TBoolean(schema, references) {
|
|
|
109
109
|
return false;
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
function
|
|
112
|
+
function FromConstructor(schema, references) {
|
|
113
113
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
114
114
|
return schema.default;
|
|
115
115
|
}
|
|
@@ -131,7 +131,7 @@ function TConstructor(schema, references) {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
function
|
|
134
|
+
function FromDate(schema, references) {
|
|
135
135
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
136
136
|
return schema.default;
|
|
137
137
|
}
|
|
@@ -142,7 +142,7 @@ function TDate(schema, references) {
|
|
|
142
142
|
return new Date();
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
function
|
|
145
|
+
function FromFunction(schema, references) {
|
|
146
146
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
147
147
|
return schema.default;
|
|
148
148
|
}
|
|
@@ -150,7 +150,7 @@ function TFunction(schema, references) {
|
|
|
150
150
|
return () => Visit(schema.returns, references);
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
|
-
function
|
|
153
|
+
function FromInteger(schema, references) {
|
|
154
154
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
155
155
|
return schema.default;
|
|
156
156
|
}
|
|
@@ -161,7 +161,7 @@ function TInteger(schema, references) {
|
|
|
161
161
|
return 0;
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
|
-
function
|
|
164
|
+
function FromIntersect(schema, references) {
|
|
165
165
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
166
166
|
return schema.default;
|
|
167
167
|
}
|
|
@@ -182,7 +182,7 @@ function TIntersect(schema, references) {
|
|
|
182
182
|
return value;
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
function
|
|
185
|
+
function FromIterator(schema, references) {
|
|
186
186
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
187
187
|
return schema.default;
|
|
188
188
|
}
|
|
@@ -190,7 +190,7 @@ function TIterator(schema, references) {
|
|
|
190
190
|
return (function* () { })();
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
-
function
|
|
193
|
+
function FromLiteral(schema, references) {
|
|
194
194
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
195
195
|
return schema.default;
|
|
196
196
|
}
|
|
@@ -198,10 +198,10 @@ function TLiteral(schema, references) {
|
|
|
198
198
|
return schema.const;
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function FromNever(schema, references) {
|
|
202
202
|
throw new ValueCreateNeverTypeError(schema);
|
|
203
203
|
}
|
|
204
|
-
function
|
|
204
|
+
function FromNot(schema, references) {
|
|
205
205
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
206
206
|
return schema.default;
|
|
207
207
|
}
|
|
@@ -209,7 +209,7 @@ function TNot(schema, references) {
|
|
|
209
209
|
throw new ValueCreateNotTypeError(schema);
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
|
-
function
|
|
212
|
+
function FromNull(schema, references) {
|
|
213
213
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
214
214
|
return schema.default;
|
|
215
215
|
}
|
|
@@ -217,7 +217,7 @@ function TNull(schema, references) {
|
|
|
217
217
|
return null;
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
|
-
function
|
|
220
|
+
function FromNumber(schema, references) {
|
|
221
221
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
222
222
|
return schema.default;
|
|
223
223
|
}
|
|
@@ -228,7 +228,7 @@ function TNumber(schema, references) {
|
|
|
228
228
|
return 0;
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
|
-
function
|
|
231
|
+
function FromObject(schema, references) {
|
|
232
232
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
233
233
|
return schema.default;
|
|
234
234
|
}
|
|
@@ -240,7 +240,7 @@ function TObject(schema, references) {
|
|
|
240
240
|
}, {}));
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
-
function
|
|
243
|
+
function FromPromise(schema, references) {
|
|
244
244
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
245
245
|
return schema.default;
|
|
246
246
|
}
|
|
@@ -248,7 +248,7 @@ function TPromise(schema, references) {
|
|
|
248
248
|
return Promise.resolve(Visit(schema.item, references));
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
-
function
|
|
251
|
+
function FromRecord(schema, references) {
|
|
252
252
|
const [keyPattern, valueSchema] = Object.entries(schema.patternProperties)[0];
|
|
253
253
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
254
254
|
return schema.default;
|
|
@@ -263,7 +263,7 @@ function TRecord(schema, references) {
|
|
|
263
263
|
return {};
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
|
-
function
|
|
266
|
+
function FromRef(schema, references) {
|
|
267
267
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
268
268
|
return schema.default;
|
|
269
269
|
}
|
|
@@ -271,7 +271,7 @@ function TRef(schema, references) {
|
|
|
271
271
|
return Visit((0, index_3.Deref)(schema, references), references);
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
|
-
function
|
|
274
|
+
function FromString(schema, references) {
|
|
275
275
|
if (schema.pattern !== undefined) {
|
|
276
276
|
if (!(0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
277
277
|
throw new Error('ValueCreate.String: String types with patterns must specify a default value');
|
|
@@ -302,7 +302,7 @@ function TString(schema, references) {
|
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
|
-
function
|
|
305
|
+
function FromSymbol(schema, references) {
|
|
306
306
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
307
307
|
return schema.default;
|
|
308
308
|
}
|
|
@@ -313,17 +313,16 @@ function TSymbol(schema, references) {
|
|
|
313
313
|
return Symbol();
|
|
314
314
|
}
|
|
315
315
|
}
|
|
316
|
-
function
|
|
316
|
+
function FromTemplateLiteral(schema, references) {
|
|
317
317
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
318
318
|
return schema.default;
|
|
319
319
|
}
|
|
320
|
-
|
|
321
|
-
if (!(0, index_4.IsTemplateLiteralFinite)(expression))
|
|
320
|
+
if (!(0, index_4.IsTemplateLiteralFinite)(schema))
|
|
322
321
|
throw new ValueCreateTempateLiteralTypeError(schema);
|
|
323
|
-
const
|
|
324
|
-
return
|
|
322
|
+
const generated = (0, index_4.TemplateLiteralGenerate)(schema);
|
|
323
|
+
return generated[0];
|
|
325
324
|
}
|
|
326
|
-
function
|
|
325
|
+
function FromThis(schema, references) {
|
|
327
326
|
if (recursiveDepth++ > recursiveMaxDepth)
|
|
328
327
|
throw new ValueCreateRecursiveInstantiationError(schema, recursiveMaxDepth);
|
|
329
328
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
@@ -333,7 +332,7 @@ function TThis(schema, references) {
|
|
|
333
332
|
return Visit((0, index_3.Deref)(schema, references), references);
|
|
334
333
|
}
|
|
335
334
|
}
|
|
336
|
-
function
|
|
335
|
+
function FromTuple(schema, references) {
|
|
337
336
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
338
337
|
return schema.default;
|
|
339
338
|
}
|
|
@@ -344,7 +343,7 @@ function TTuple(schema, references) {
|
|
|
344
343
|
return Array.from({ length: schema.minItems }).map((_, index) => Visit(schema.items[index], references));
|
|
345
344
|
}
|
|
346
345
|
}
|
|
347
|
-
function
|
|
346
|
+
function FromUndefined(schema, references) {
|
|
348
347
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
349
348
|
return schema.default;
|
|
350
349
|
}
|
|
@@ -352,7 +351,7 @@ function TUndefined(schema, references) {
|
|
|
352
351
|
return undefined;
|
|
353
352
|
}
|
|
354
353
|
}
|
|
355
|
-
function
|
|
354
|
+
function FromUnion(schema, references) {
|
|
356
355
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
357
356
|
return schema.default;
|
|
358
357
|
}
|
|
@@ -363,7 +362,7 @@ function TUnion(schema, references) {
|
|
|
363
362
|
return Visit(schema.anyOf[0], references);
|
|
364
363
|
}
|
|
365
364
|
}
|
|
366
|
-
function
|
|
365
|
+
function FromUint8Array(schema, references) {
|
|
367
366
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
368
367
|
return schema.default;
|
|
369
368
|
}
|
|
@@ -374,7 +373,7 @@ function TUint8Array(schema, references) {
|
|
|
374
373
|
return new Uint8Array(0);
|
|
375
374
|
}
|
|
376
375
|
}
|
|
377
|
-
function
|
|
376
|
+
function FromUnknown(schema, references) {
|
|
378
377
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
379
378
|
return schema.default;
|
|
380
379
|
}
|
|
@@ -382,7 +381,7 @@ function TUnknown(schema, references) {
|
|
|
382
381
|
return {};
|
|
383
382
|
}
|
|
384
383
|
}
|
|
385
|
-
function
|
|
384
|
+
function FromVoid(schema, references) {
|
|
386
385
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
387
386
|
return schema.default;
|
|
388
387
|
}
|
|
@@ -390,7 +389,7 @@ function TVoid(schema, references) {
|
|
|
390
389
|
return void 0;
|
|
391
390
|
}
|
|
392
391
|
}
|
|
393
|
-
function
|
|
392
|
+
function FromKind(schema, references) {
|
|
394
393
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
395
394
|
return schema.default;
|
|
396
395
|
}
|
|
@@ -403,69 +402,69 @@ function Visit(schema, references) {
|
|
|
403
402
|
const schema_ = schema;
|
|
404
403
|
switch (schema_[index_7.Kind]) {
|
|
405
404
|
case 'Any':
|
|
406
|
-
return
|
|
405
|
+
return FromAny(schema_, references_);
|
|
407
406
|
case 'Array':
|
|
408
|
-
return
|
|
407
|
+
return FromArray(schema_, references_);
|
|
409
408
|
case 'AsyncIterator':
|
|
410
|
-
return
|
|
409
|
+
return FromAsyncIterator(schema_, references_);
|
|
411
410
|
case 'BigInt':
|
|
412
|
-
return
|
|
411
|
+
return FromBigInt(schema_, references_);
|
|
413
412
|
case 'Boolean':
|
|
414
|
-
return
|
|
413
|
+
return FromBoolean(schema_, references_);
|
|
415
414
|
case 'Constructor':
|
|
416
|
-
return
|
|
415
|
+
return FromConstructor(schema_, references_);
|
|
417
416
|
case 'Date':
|
|
418
|
-
return
|
|
417
|
+
return FromDate(schema_, references_);
|
|
419
418
|
case 'Function':
|
|
420
|
-
return
|
|
419
|
+
return FromFunction(schema_, references_);
|
|
421
420
|
case 'Integer':
|
|
422
|
-
return
|
|
421
|
+
return FromInteger(schema_, references_);
|
|
423
422
|
case 'Intersect':
|
|
424
|
-
return
|
|
423
|
+
return FromIntersect(schema_, references_);
|
|
425
424
|
case 'Iterator':
|
|
426
|
-
return
|
|
425
|
+
return FromIterator(schema_, references_);
|
|
427
426
|
case 'Literal':
|
|
428
|
-
return
|
|
427
|
+
return FromLiteral(schema_, references_);
|
|
429
428
|
case 'Never':
|
|
430
|
-
return
|
|
429
|
+
return FromNever(schema_, references_);
|
|
431
430
|
case 'Not':
|
|
432
|
-
return
|
|
431
|
+
return FromNot(schema_, references_);
|
|
433
432
|
case 'Null':
|
|
434
|
-
return
|
|
433
|
+
return FromNull(schema_, references_);
|
|
435
434
|
case 'Number':
|
|
436
|
-
return
|
|
435
|
+
return FromNumber(schema_, references_);
|
|
437
436
|
case 'Object':
|
|
438
|
-
return
|
|
437
|
+
return FromObject(schema_, references_);
|
|
439
438
|
case 'Promise':
|
|
440
|
-
return
|
|
439
|
+
return FromPromise(schema_, references_);
|
|
441
440
|
case 'Record':
|
|
442
|
-
return
|
|
441
|
+
return FromRecord(schema_, references_);
|
|
443
442
|
case 'Ref':
|
|
444
|
-
return
|
|
443
|
+
return FromRef(schema_, references_);
|
|
445
444
|
case 'String':
|
|
446
|
-
return
|
|
445
|
+
return FromString(schema_, references_);
|
|
447
446
|
case 'Symbol':
|
|
448
|
-
return
|
|
447
|
+
return FromSymbol(schema_, references_);
|
|
449
448
|
case 'TemplateLiteral':
|
|
450
|
-
return
|
|
449
|
+
return FromTemplateLiteral(schema_, references_);
|
|
451
450
|
case 'This':
|
|
452
|
-
return
|
|
451
|
+
return FromThis(schema_, references_);
|
|
453
452
|
case 'Tuple':
|
|
454
|
-
return
|
|
453
|
+
return FromTuple(schema_, references_);
|
|
455
454
|
case 'Undefined':
|
|
456
|
-
return
|
|
455
|
+
return FromUndefined(schema_, references_);
|
|
457
456
|
case 'Union':
|
|
458
|
-
return
|
|
457
|
+
return FromUnion(schema_, references_);
|
|
459
458
|
case 'Uint8Array':
|
|
460
|
-
return
|
|
459
|
+
return FromUint8Array(schema_, references_);
|
|
461
460
|
case 'Unknown':
|
|
462
|
-
return
|
|
461
|
+
return FromUnknown(schema_, references_);
|
|
463
462
|
case 'Void':
|
|
464
|
-
return
|
|
463
|
+
return FromVoid(schema_, references_);
|
|
465
464
|
default:
|
|
466
465
|
if (!index_6.TypeRegistry.Has(schema_[index_7.Kind]))
|
|
467
466
|
throw new ValueCreateUnknownTypeError(schema_);
|
|
468
|
-
return
|
|
467
|
+
return FromKind(schema_, references_);
|
|
469
468
|
}
|
|
470
469
|
}
|
|
471
470
|
// ------------------------------------------------------------------
|
|
@@ -36,7 +36,7 @@ function IsDefaultSchema(value) {
|
|
|
36
36
|
// ------------------------------------------------------------------
|
|
37
37
|
// Types
|
|
38
38
|
// ------------------------------------------------------------------
|
|
39
|
-
function
|
|
39
|
+
function FromArray(schema, references, value) {
|
|
40
40
|
const defaulted = ValueOrDefault(schema, value);
|
|
41
41
|
if (!(0, index_4.IsArray)(defaulted))
|
|
42
42
|
return defaulted;
|
|
@@ -45,14 +45,14 @@ function TArray(schema, references, value) {
|
|
|
45
45
|
}
|
|
46
46
|
return defaulted;
|
|
47
47
|
}
|
|
48
|
-
function
|
|
48
|
+
function FromIntersect(schema, references, value) {
|
|
49
49
|
const defaulted = ValueOrDefault(schema, value);
|
|
50
50
|
return schema.allOf.reduce((acc, schema) => {
|
|
51
51
|
const next = Visit(schema, references, defaulted);
|
|
52
52
|
return (0, index_4.IsObject)(next) ? { ...acc, ...next } : next;
|
|
53
53
|
}, {});
|
|
54
54
|
}
|
|
55
|
-
function
|
|
55
|
+
function FromObject(schema, references, value) {
|
|
56
56
|
const defaulted = ValueOrDefault(schema, value);
|
|
57
57
|
if (!(0, index_4.IsObject)(defaulted))
|
|
58
58
|
return defaulted;
|
|
@@ -75,7 +75,7 @@ function TObject(schema, references, value) {
|
|
|
75
75
|
}
|
|
76
76
|
return defaulted;
|
|
77
77
|
}
|
|
78
|
-
function
|
|
78
|
+
function FromRecord(schema, references, value) {
|
|
79
79
|
const defaulted = ValueOrDefault(schema, value);
|
|
80
80
|
if (!(0, index_4.IsObject)(defaulted))
|
|
81
81
|
return defaulted;
|
|
@@ -99,13 +99,13 @@ function TRecord(schema, references, value) {
|
|
|
99
99
|
}
|
|
100
100
|
return defaulted;
|
|
101
101
|
}
|
|
102
|
-
function
|
|
102
|
+
function FromRef(schema, references, value) {
|
|
103
103
|
return Visit((0, index_2.Deref)(schema, references), references, ValueOrDefault(schema, value));
|
|
104
104
|
}
|
|
105
|
-
function
|
|
105
|
+
function FromThis(schema, references, value) {
|
|
106
106
|
return Visit((0, index_2.Deref)(schema, references), references, value);
|
|
107
107
|
}
|
|
108
|
-
function
|
|
108
|
+
function FromTuple(schema, references, value) {
|
|
109
109
|
const defaulted = ValueOrDefault(schema, value);
|
|
110
110
|
if (!(0, index_4.IsArray)(defaulted) || (0, index_4.IsUndefined)(schema.items))
|
|
111
111
|
return defaulted;
|
|
@@ -116,7 +116,7 @@ function TTuple(schema, references, value) {
|
|
|
116
116
|
}
|
|
117
117
|
return defaulted;
|
|
118
118
|
}
|
|
119
|
-
function
|
|
119
|
+
function FromUnion(schema, references, value) {
|
|
120
120
|
const defaulted = ValueOrDefault(schema, value);
|
|
121
121
|
for (const inner of schema.anyOf) {
|
|
122
122
|
const result = Visit(inner, references, defaulted);
|
|
@@ -131,21 +131,21 @@ function Visit(schema, references, value) {
|
|
|
131
131
|
const schema_ = schema;
|
|
132
132
|
switch (schema_[index_3.Kind]) {
|
|
133
133
|
case 'Array':
|
|
134
|
-
return
|
|
134
|
+
return FromArray(schema_, references_, value);
|
|
135
135
|
case 'Intersect':
|
|
136
|
-
return
|
|
136
|
+
return FromIntersect(schema_, references_, value);
|
|
137
137
|
case 'Object':
|
|
138
|
-
return
|
|
138
|
+
return FromObject(schema_, references_, value);
|
|
139
139
|
case 'Record':
|
|
140
|
-
return
|
|
140
|
+
return FromRecord(schema_, references_, value);
|
|
141
141
|
case 'Ref':
|
|
142
|
-
return
|
|
142
|
+
return FromRef(schema_, references_, value);
|
|
143
143
|
case 'This':
|
|
144
|
-
return
|
|
144
|
+
return FromThis(schema_, references_, value);
|
|
145
145
|
case 'Tuple':
|
|
146
|
-
return
|
|
146
|
+
return FromTuple(schema_, references_, value);
|
|
147
147
|
case 'Union':
|
|
148
|
-
return
|
|
148
|
+
return FromUnion(schema_, references_, value);
|
|
149
149
|
default:
|
|
150
150
|
return ValueOrDefault(schema_, value);
|
|
151
151
|
}
|
|
@@ -49,13 +49,13 @@ function Default(schema, value) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
// prettier-ignore
|
|
52
|
-
function
|
|
52
|
+
function FromArray(schema, references, value) {
|
|
53
53
|
return ((0, index_6.IsArray)(value))
|
|
54
54
|
? Default(schema, value.map((value) => Visit(schema.items, references, value)))
|
|
55
55
|
: Default(schema, value);
|
|
56
56
|
}
|
|
57
57
|
// prettier-ignore
|
|
58
|
-
function
|
|
58
|
+
function FromIntersect(schema, references, value) {
|
|
59
59
|
if (!(0, index_6.IsPlainObject)(value) || (0, index_6.IsValueType)(value))
|
|
60
60
|
return Default(schema, value);
|
|
61
61
|
const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
|
|
@@ -76,11 +76,11 @@ function TIntersect(schema, references, value) {
|
|
|
76
76
|
}, knownProperties);
|
|
77
77
|
return Default(schema, unknownProperties);
|
|
78
78
|
}
|
|
79
|
-
function
|
|
79
|
+
function FromNot(schema, references, value) {
|
|
80
80
|
return Default(schema, Visit(schema.not, references, value));
|
|
81
81
|
}
|
|
82
82
|
// prettier-ignore
|
|
83
|
-
function
|
|
83
|
+
function FromObject(schema, references, value) {
|
|
84
84
|
if (!(0, index_6.IsPlainObject)(value))
|
|
85
85
|
return Default(schema, value);
|
|
86
86
|
const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
|
|
@@ -102,7 +102,7 @@ function TObject(schema, references, value) {
|
|
|
102
102
|
return Default(schema, unknownProperties);
|
|
103
103
|
}
|
|
104
104
|
// prettier-ignore
|
|
105
|
-
function
|
|
105
|
+
function FromRecord(schema, references, value) {
|
|
106
106
|
if (!(0, index_6.IsPlainObject)(value))
|
|
107
107
|
return Default(schema, value);
|
|
108
108
|
const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
@@ -125,23 +125,23 @@ function TRecord(schema, references, value) {
|
|
|
125
125
|
return Default(schema, unknownProperties);
|
|
126
126
|
}
|
|
127
127
|
// prettier-ignore
|
|
128
|
-
function
|
|
128
|
+
function FromRef(schema, references, value) {
|
|
129
129
|
const target = (0, index_4.Deref)(schema, references);
|
|
130
130
|
return Default(schema, Visit(target, references, value));
|
|
131
131
|
}
|
|
132
132
|
// prettier-ignore
|
|
133
|
-
function
|
|
133
|
+
function FromThis(schema, references, value) {
|
|
134
134
|
const target = (0, index_4.Deref)(schema, references);
|
|
135
135
|
return Default(schema, Visit(target, references, value));
|
|
136
136
|
}
|
|
137
137
|
// prettier-ignore
|
|
138
|
-
function
|
|
138
|
+
function FromTuple(schema, references, value) {
|
|
139
139
|
return ((0, index_6.IsArray)(value) && (0, index_6.IsArray)(schema.items))
|
|
140
140
|
? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
|
|
141
141
|
: Default(schema, value);
|
|
142
142
|
}
|
|
143
143
|
// prettier-ignore
|
|
144
|
-
function
|
|
144
|
+
function FromUnion(schema, references, value) {
|
|
145
145
|
for (const subschema of schema.anyOf) {
|
|
146
146
|
if (!(0, index_5.Check)(subschema, references, value))
|
|
147
147
|
continue;
|
|
@@ -157,25 +157,25 @@ function Visit(schema, references, value) {
|
|
|
157
157
|
const schema_ = schema;
|
|
158
158
|
switch (schema[index_1.Kind]) {
|
|
159
159
|
case 'Array':
|
|
160
|
-
return
|
|
160
|
+
return FromArray(schema_, references_, value);
|
|
161
161
|
case 'Intersect':
|
|
162
|
-
return
|
|
162
|
+
return FromIntersect(schema_, references_, value);
|
|
163
163
|
case 'Not':
|
|
164
|
-
return
|
|
164
|
+
return FromNot(schema_, references_, value);
|
|
165
165
|
case 'Object':
|
|
166
|
-
return
|
|
166
|
+
return FromObject(schema_, references_, value);
|
|
167
167
|
case 'Record':
|
|
168
|
-
return
|
|
168
|
+
return FromRecord(schema_, references_, value);
|
|
169
169
|
case 'Ref':
|
|
170
|
-
return
|
|
170
|
+
return FromRef(schema_, references_, value);
|
|
171
171
|
case 'Symbol':
|
|
172
172
|
return Default(schema_, value);
|
|
173
173
|
case 'This':
|
|
174
|
-
return
|
|
174
|
+
return FromThis(schema_, references_, value);
|
|
175
175
|
case 'Tuple':
|
|
176
|
-
return
|
|
176
|
+
return FromTuple(schema_, references_, value);
|
|
177
177
|
case 'Union':
|
|
178
|
-
return
|
|
178
|
+
return FromUnion(schema_, references_, value);
|
|
179
179
|
default:
|
|
180
180
|
return Default(schema_, value);
|
|
181
181
|
}
|
|
@@ -48,14 +48,14 @@ function Default(schema, value) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
// prettier-ignore
|
|
51
|
-
function
|
|
51
|
+
function FromArray(schema, references, value) {
|
|
52
52
|
const defaulted = Default(schema, value);
|
|
53
53
|
return (0, index_6.IsArray)(defaulted)
|
|
54
54
|
? defaulted.map((value) => Visit(schema.items, references, value))
|
|
55
55
|
: defaulted;
|
|
56
56
|
}
|
|
57
57
|
// prettier-ignore
|
|
58
|
-
function
|
|
58
|
+
function FromIntersect(schema, references, value) {
|
|
59
59
|
const defaulted = Default(schema, value);
|
|
60
60
|
if (!(0, index_6.IsPlainObject)(value) || (0, index_6.IsValueType)(value))
|
|
61
61
|
return defaulted;
|
|
@@ -77,11 +77,11 @@ function TIntersect(schema, references, value) {
|
|
|
77
77
|
}, knownProperties);
|
|
78
78
|
}
|
|
79
79
|
// prettier-ignore
|
|
80
|
-
function
|
|
80
|
+
function FromNot(schema, references, value) {
|
|
81
81
|
return Default(schema.not, Default(schema, value));
|
|
82
82
|
}
|
|
83
83
|
// prettier-ignore
|
|
84
|
-
function
|
|
84
|
+
function FromObject(schema, references, value) {
|
|
85
85
|
const defaulted = Default(schema, value);
|
|
86
86
|
if (!(0, index_6.IsPlainObject)(value))
|
|
87
87
|
return defaulted;
|
|
@@ -103,7 +103,7 @@ function TObject(schema, references, value) {
|
|
|
103
103
|
}, knownProperties);
|
|
104
104
|
}
|
|
105
105
|
// prettier-ignore
|
|
106
|
-
function
|
|
106
|
+
function FromRecord(schema, references, value) {
|
|
107
107
|
const defaulted = Default(schema, value);
|
|
108
108
|
if (!(0, index_6.IsPlainObject)(value))
|
|
109
109
|
return defaulted;
|
|
@@ -126,24 +126,24 @@ function TRecord(schema, references, value) {
|
|
|
126
126
|
}, knownProperties);
|
|
127
127
|
}
|
|
128
128
|
// prettier-ignore
|
|
129
|
-
function
|
|
129
|
+
function FromRef(schema, references, value) {
|
|
130
130
|
const target = (0, index_4.Deref)(schema, references);
|
|
131
131
|
const resolved = Visit(target, references, value);
|
|
132
132
|
return Default(schema, resolved);
|
|
133
133
|
}
|
|
134
134
|
// prettier-ignore
|
|
135
|
-
function
|
|
135
|
+
function FromThis(schema, references, value) {
|
|
136
136
|
const target = (0, index_4.Deref)(schema, references);
|
|
137
137
|
const resolved = Visit(target, references, value);
|
|
138
138
|
return Default(schema, resolved);
|
|
139
139
|
}
|
|
140
140
|
// prettier-ignore
|
|
141
|
-
function
|
|
141
|
+
function FromTuple(schema, references, value) {
|
|
142
142
|
const value1 = Default(schema, value);
|
|
143
143
|
return (0, index_6.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
|
|
144
144
|
}
|
|
145
145
|
// prettier-ignore
|
|
146
|
-
function
|
|
146
|
+
function FromUnion(schema, references, value) {
|
|
147
147
|
// test value against union variants
|
|
148
148
|
for (const subschema of schema.anyOf) {
|
|
149
149
|
if (!(0, index_5.Check)(subschema, references, value))
|
|
@@ -166,23 +166,23 @@ function Visit(schema, references, value) {
|
|
|
166
166
|
const schema_ = schema;
|
|
167
167
|
switch (schema[index_1.Kind]) {
|
|
168
168
|
case 'Array':
|
|
169
|
-
return
|
|
169
|
+
return FromArray(schema_, references_, value);
|
|
170
170
|
case 'Intersect':
|
|
171
|
-
return
|
|
171
|
+
return FromIntersect(schema_, references_, value);
|
|
172
172
|
case 'Not':
|
|
173
|
-
return
|
|
173
|
+
return FromNot(schema_, references_, value);
|
|
174
174
|
case 'Object':
|
|
175
|
-
return
|
|
175
|
+
return FromObject(schema_, references_, value);
|
|
176
176
|
case 'Record':
|
|
177
|
-
return
|
|
177
|
+
return FromRecord(schema_, references_, value);
|
|
178
178
|
case 'Ref':
|
|
179
|
-
return
|
|
179
|
+
return FromRef(schema_, references_, value);
|
|
180
180
|
case 'This':
|
|
181
|
-
return
|
|
181
|
+
return FromThis(schema_, references_, value);
|
|
182
182
|
case 'Tuple':
|
|
183
|
-
return
|
|
183
|
+
return FromTuple(schema_, references_, value);
|
|
184
184
|
case 'Union':
|
|
185
|
-
return
|
|
185
|
+
return FromUnion(schema_, references_, value);
|
|
186
186
|
default:
|
|
187
187
|
return Default(schema_, value);
|
|
188
188
|
}
|