@sinclair/typebox 0.31.27 → 0.31.28
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/package.json +1 -1
- package/readme.md +5 -5
- package/value/transform.d.ts +0 -5
- package/value/transform.js +136 -180
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -1719,11 +1719,11 @@ The following table lists esbuild compiled and minified sizes for each TypeBox m
|
|
|
1719
1719
|
┌──────────────────────┬────────────┬────────────┬─────────────┐
|
|
1720
1720
|
│ (index) │ Compiled │ Minified │ Compression │
|
|
1721
1721
|
├──────────────────────┼────────────┼────────────┼─────────────┤
|
|
1722
|
-
│ typebox/compiler │ '
|
|
1723
|
-
│ typebox/errors │ '
|
|
1724
|
-
│ typebox/system │ '
|
|
1725
|
-
│ typebox/value │ '
|
|
1726
|
-
│ typebox │ '
|
|
1722
|
+
│ typebox/compiler │ '163.6 kb' │ ' 71.6 kb' │ '2.28 x' │
|
|
1723
|
+
│ typebox/errors │ '113.3 kb' │ ' 50.1 kb' │ '2.26 x' │
|
|
1724
|
+
│ typebox/system │ ' 83.9 kb' │ ' 37.5 kb' │ '2.24 x' │
|
|
1725
|
+
│ typebox/value │ '191.1 kb' │ ' 82.3 kb' │ '2.32 x' │
|
|
1726
|
+
│ typebox │ ' 73.8 kb' │ ' 32.3 kb' │ '2.29 x' │
|
|
1727
1727
|
└──────────────────────┴────────────┴────────────┴─────────────┘
|
|
1728
1728
|
```
|
|
1729
1729
|
|
package/value/transform.d.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { ValueError } from '../errors/errors';
|
|
2
2
|
import * as Types from '../typebox';
|
|
3
|
-
export type CheckFunction = (schema: Types.TSchema, references: Types.TSchema[], value: unknown) => boolean;
|
|
4
|
-
export declare class TransformUnknownTypeError extends Types.TypeBoxError {
|
|
5
|
-
readonly schema: Types.TRef | Types.TThis;
|
|
6
|
-
constructor(schema: Types.TRef | Types.TThis);
|
|
7
|
-
}
|
|
8
3
|
export declare class TransformDecodeCheckError extends Types.TypeBoxError {
|
|
9
4
|
readonly schema: Types.TSchema;
|
|
10
5
|
readonly value: unknown;
|
package/value/transform.js
CHANGED
|
@@ -27,7 +27,7 @@ THE SOFTWARE.
|
|
|
27
27
|
|
|
28
28
|
---------------------------------------------------------------------------*/
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.EncodeTransform = exports.DecodeTransform = exports.HasTransform = exports.TransformEncodeError = exports.TransformDecodeError = exports.TransformEncodeCheckError = exports.TransformDecodeCheckError =
|
|
30
|
+
exports.EncodeTransform = exports.DecodeTransform = exports.HasTransform = exports.TransformEncodeError = exports.TransformDecodeError = exports.TransformEncodeCheckError = exports.TransformDecodeCheckError = void 0;
|
|
31
31
|
const guard_1 = require("./guard");
|
|
32
32
|
const deref_1 = require("./deref");
|
|
33
33
|
const check_1 = require("./check");
|
|
@@ -35,13 +35,6 @@ const Types = require("../typebox");
|
|
|
35
35
|
// -------------------------------------------------------------------------
|
|
36
36
|
// Errors
|
|
37
37
|
// -------------------------------------------------------------------------
|
|
38
|
-
class TransformUnknownTypeError extends Types.TypeBoxError {
|
|
39
|
-
constructor(schema) {
|
|
40
|
-
super(`Unknown type`);
|
|
41
|
-
this.schema = schema;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.TransformUnknownTypeError = TransformUnknownTypeError;
|
|
45
38
|
class TransformDecodeCheckError extends Types.TypeBoxError {
|
|
46
39
|
constructor(schema, value, error) {
|
|
47
40
|
super(`Unable to decode due to invalid value`);
|
|
@@ -76,9 +69,9 @@ class TransformEncodeError extends Types.TypeBoxError {
|
|
|
76
69
|
}
|
|
77
70
|
}
|
|
78
71
|
exports.TransformEncodeError = TransformEncodeError;
|
|
79
|
-
//
|
|
72
|
+
// ------------------------------------------------------------------
|
|
80
73
|
// HasTransform
|
|
81
|
-
//
|
|
74
|
+
// ------------------------------------------------------------------
|
|
82
75
|
/** Recursively checks a schema for transform codecs */
|
|
83
76
|
var HasTransform;
|
|
84
77
|
(function (HasTransform) {
|
|
@@ -139,9 +132,6 @@ var HasTransform;
|
|
|
139
132
|
if (schema.$id)
|
|
140
133
|
visited.add(schema.$id);
|
|
141
134
|
switch (schema[Types.Kind]) {
|
|
142
|
-
// ------------------------------------------------------
|
|
143
|
-
// Structural
|
|
144
|
-
// ------------------------------------------------------
|
|
145
135
|
case 'Array':
|
|
146
136
|
return TArray(schema_, references_);
|
|
147
137
|
case 'AsyncIterator':
|
|
@@ -170,29 +160,7 @@ var HasTransform;
|
|
|
170
160
|
return TTuple(schema_, references_);
|
|
171
161
|
case 'Union':
|
|
172
162
|
return TUnion(schema_, references_);
|
|
173
|
-
// ------------------------------------------------------
|
|
174
|
-
// Default
|
|
175
|
-
// ------------------------------------------------------
|
|
176
|
-
case 'Any':
|
|
177
|
-
case 'BigInt':
|
|
178
|
-
case 'Boolean':
|
|
179
|
-
case 'Date':
|
|
180
|
-
case 'Integer':
|
|
181
|
-
case 'Literal':
|
|
182
|
-
case 'Never':
|
|
183
|
-
case 'Null':
|
|
184
|
-
case 'Number':
|
|
185
|
-
case 'String':
|
|
186
|
-
case 'Symbol':
|
|
187
|
-
case 'TemplateLiteral':
|
|
188
|
-
case 'Undefined':
|
|
189
|
-
case 'Uint8Array':
|
|
190
|
-
case 'Unknown':
|
|
191
|
-
case 'Void':
|
|
192
|
-
return Types.TypeGuard.TTransform(schema);
|
|
193
163
|
default:
|
|
194
|
-
if (!Types.TypeRegistry.Has(schema_[Types.Kind]))
|
|
195
|
-
throw new TransformUnknownTypeError(schema_);
|
|
196
164
|
return Types.TypeGuard.TTransform(schema);
|
|
197
165
|
}
|
|
198
166
|
}
|
|
@@ -204,9 +172,9 @@ var HasTransform;
|
|
|
204
172
|
}
|
|
205
173
|
HasTransform.Has = Has;
|
|
206
174
|
})(HasTransform || (exports.HasTransform = HasTransform = {}));
|
|
207
|
-
//
|
|
175
|
+
// ------------------------------------------------------------------
|
|
208
176
|
// DecodeTransform
|
|
209
|
-
//
|
|
177
|
+
// ------------------------------------------------------------------
|
|
210
178
|
/** Decodes a value using transform decoders if available. Does not ensure correct results. */
|
|
211
179
|
var DecodeTransform;
|
|
212
180
|
(function (DecodeTransform) {
|
|
@@ -218,89 +186,109 @@ var DecodeTransform;
|
|
|
218
186
|
throw new TransformDecodeError(schema, value, error);
|
|
219
187
|
}
|
|
220
188
|
}
|
|
189
|
+
// prettier-ignore
|
|
221
190
|
function TArray(schema, references, value) {
|
|
222
|
-
|
|
223
|
-
|
|
191
|
+
return ((0, guard_1.IsArray)(value))
|
|
192
|
+
? Default(schema, value.map((value) => Visit(schema.items, references, value)))
|
|
193
|
+
: Default(schema, value);
|
|
224
194
|
}
|
|
195
|
+
// prettier-ignore
|
|
225
196
|
function TIntersect(schema, references, value) {
|
|
226
197
|
if (!(0, guard_1.IsPlainObject)(value) || (0, guard_1.IsValueType)(value))
|
|
227
198
|
return Default(schema, value);
|
|
228
|
-
const
|
|
229
|
-
const
|
|
230
|
-
return
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return
|
|
236
|
-
}
|
|
237
|
-
|
|
199
|
+
const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });
|
|
200
|
+
const knownProperties = knownKeys.reduce((value, key) => {
|
|
201
|
+
return (key in value)
|
|
202
|
+
? { ...value, [key]: Visit(Types.IndexedAccessor.Resolve(schema, [key]), references, value[key]) }
|
|
203
|
+
: value;
|
|
204
|
+
}, value);
|
|
205
|
+
if (!Types.TypeGuard.TTransform(schema.unevaluatedProperties)) {
|
|
206
|
+
return Default(schema, knownProperties);
|
|
207
|
+
}
|
|
208
|
+
const unknownKeys = Object.getOwnPropertyNames(knownProperties);
|
|
209
|
+
const unevaluatedProperties = schema.unevaluatedProperties;
|
|
210
|
+
const unknownProperties = unknownKeys.reduce((value, key) => {
|
|
211
|
+
return !knownKeys.includes(key)
|
|
212
|
+
? { ...value, [key]: Default(unevaluatedProperties, value[key]) }
|
|
213
|
+
: value;
|
|
214
|
+
}, knownProperties);
|
|
215
|
+
return Default(schema, unknownProperties);
|
|
238
216
|
}
|
|
239
217
|
function TNot(schema, references, value) {
|
|
240
|
-
|
|
241
|
-
return Default(schema, value1);
|
|
218
|
+
return Default(schema, Visit(schema.not, references, value));
|
|
242
219
|
}
|
|
220
|
+
// prettier-ignore
|
|
243
221
|
function TObject(schema, references, value) {
|
|
244
222
|
if (!(0, guard_1.IsPlainObject)(value))
|
|
245
223
|
return Default(schema, value);
|
|
246
|
-
const
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
224
|
+
const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });
|
|
225
|
+
const knownProperties = knownKeys.reduce((value, key) => {
|
|
226
|
+
return (key in value)
|
|
227
|
+
? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
|
|
228
|
+
: value;
|
|
229
|
+
}, value);
|
|
230
|
+
if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {
|
|
231
|
+
return Default(schema, knownProperties);
|
|
232
|
+
}
|
|
233
|
+
const unknownKeys = Object.getOwnPropertyNames(knownProperties);
|
|
251
234
|
const additionalProperties = schema.additionalProperties;
|
|
252
|
-
const
|
|
253
|
-
return
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
235
|
+
const unknownProperties = unknownKeys.reduce((value, key) => {
|
|
236
|
+
return !knownKeys.includes(key)
|
|
237
|
+
? { ...value, [key]: Default(additionalProperties, value[key]) }
|
|
238
|
+
: value;
|
|
239
|
+
}, knownProperties);
|
|
240
|
+
return Default(schema, unknownProperties);
|
|
241
|
+
}
|
|
242
|
+
// prettier-ignore
|
|
257
243
|
function TRecord(schema, references, value) {
|
|
258
244
|
if (!(0, guard_1.IsPlainObject)(value))
|
|
259
245
|
return Default(schema, value);
|
|
260
246
|
const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
261
|
-
const
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
247
|
+
const knownKeys = new RegExp(pattern);
|
|
248
|
+
const knownProperties = Object.getOwnPropertyNames(value).reduce((value, key) => {
|
|
249
|
+
return knownKeys.test(key)
|
|
250
|
+
? { ...value, [key]: Visit(schema.patternProperties[pattern], references, value[key]) }
|
|
251
|
+
: value;
|
|
252
|
+
}, value);
|
|
253
|
+
if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {
|
|
254
|
+
return Default(schema, knownProperties);
|
|
255
|
+
}
|
|
256
|
+
const unknownKeys = Object.getOwnPropertyNames(knownProperties);
|
|
268
257
|
const additionalProperties = schema.additionalProperties;
|
|
269
|
-
const
|
|
270
|
-
return
|
|
271
|
-
|
|
272
|
-
|
|
258
|
+
const unknownProperties = unknownKeys.reduce((value, key) => {
|
|
259
|
+
return !knownKeys.test(key)
|
|
260
|
+
? { ...value, [key]: Default(additionalProperties, value[key]) }
|
|
261
|
+
: value;
|
|
262
|
+
}, knownProperties);
|
|
263
|
+
return Default(schema, unknownProperties);
|
|
273
264
|
}
|
|
274
265
|
function TRef(schema, references, value) {
|
|
275
266
|
const target = (0, deref_1.Deref)(schema, references);
|
|
276
|
-
|
|
277
|
-
return Default(schema, resolved);
|
|
267
|
+
return Default(schema, Visit(target, references, value));
|
|
278
268
|
}
|
|
279
269
|
function TThis(schema, references, value) {
|
|
280
270
|
const target = (0, deref_1.Deref)(schema, references);
|
|
281
|
-
|
|
282
|
-
return Default(schema, resolved);
|
|
271
|
+
return Default(schema, Visit(target, references, value));
|
|
283
272
|
}
|
|
273
|
+
// prettier-ignore
|
|
284
274
|
function TTuple(schema, references, value) {
|
|
285
|
-
|
|
286
|
-
|
|
275
|
+
return ((0, guard_1.IsArray)(value) && (0, guard_1.IsArray)(schema.items))
|
|
276
|
+
? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
|
|
277
|
+
: Default(schema, value);
|
|
287
278
|
}
|
|
288
279
|
function TUnion(schema, references, value) {
|
|
289
|
-
const
|
|
280
|
+
const defaulted = Default(schema, value);
|
|
290
281
|
for (const subschema of schema.anyOf) {
|
|
291
|
-
if (!(0, check_1.Check)(subschema, references,
|
|
282
|
+
if (!(0, check_1.Check)(subschema, references, defaulted))
|
|
292
283
|
continue;
|
|
293
|
-
return Visit(subschema, references,
|
|
284
|
+
return Visit(subschema, references, defaulted);
|
|
294
285
|
}
|
|
295
|
-
return
|
|
286
|
+
return defaulted;
|
|
296
287
|
}
|
|
297
288
|
function Visit(schema, references, value) {
|
|
298
289
|
const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
|
|
299
290
|
const schema_ = schema;
|
|
300
291
|
switch (schema[Types.Kind]) {
|
|
301
|
-
// ------------------------------------------------------
|
|
302
|
-
// Structural
|
|
303
|
-
// ------------------------------------------------------
|
|
304
292
|
case 'Array':
|
|
305
293
|
return TArray(schema_, references_, value);
|
|
306
294
|
case 'Intersect':
|
|
@@ -321,33 +309,7 @@ var DecodeTransform;
|
|
|
321
309
|
return TTuple(schema_, references_, value);
|
|
322
310
|
case 'Union':
|
|
323
311
|
return TUnion(schema_, references_, value);
|
|
324
|
-
// ------------------------------------------------------
|
|
325
|
-
// Default
|
|
326
|
-
// ------------------------------------------------------
|
|
327
|
-
case 'Any':
|
|
328
|
-
case 'AsyncIterator':
|
|
329
|
-
case 'BigInt':
|
|
330
|
-
case 'Boolean':
|
|
331
|
-
case 'Constructor':
|
|
332
|
-
case 'Date':
|
|
333
|
-
case 'Function':
|
|
334
|
-
case 'Integer':
|
|
335
|
-
case 'Iterator':
|
|
336
|
-
case 'Literal':
|
|
337
|
-
case 'Never':
|
|
338
|
-
case 'Null':
|
|
339
|
-
case 'Number':
|
|
340
|
-
case 'Promise':
|
|
341
|
-
case 'String':
|
|
342
|
-
case 'TemplateLiteral':
|
|
343
|
-
case 'Undefined':
|
|
344
|
-
case 'Uint8Array':
|
|
345
|
-
case 'Unknown':
|
|
346
|
-
case 'Void':
|
|
347
|
-
return Default(schema_, value);
|
|
348
312
|
default:
|
|
349
|
-
if (!Types.TypeRegistry.Has(schema_[Types.Kind]))
|
|
350
|
-
throw new TransformUnknownTypeError(schema_);
|
|
351
313
|
return Default(schema_, value);
|
|
352
314
|
}
|
|
353
315
|
}
|
|
@@ -356,9 +318,9 @@ var DecodeTransform;
|
|
|
356
318
|
}
|
|
357
319
|
DecodeTransform.Decode = Decode;
|
|
358
320
|
})(DecodeTransform || (exports.DecodeTransform = DecodeTransform = {}));
|
|
359
|
-
//
|
|
321
|
+
// ------------------------------------------------------------------
|
|
360
322
|
// DecodeTransform
|
|
361
|
-
//
|
|
323
|
+
// ------------------------------------------------------------------
|
|
362
324
|
/** Encodes a value using transform encoders if available. Does not ensure correct results. */
|
|
363
325
|
var EncodeTransform;
|
|
364
326
|
(function (EncodeTransform) {
|
|
@@ -370,58 +332,82 @@ var EncodeTransform;
|
|
|
370
332
|
throw new TransformEncodeError(schema, value, error);
|
|
371
333
|
}
|
|
372
334
|
}
|
|
335
|
+
// prettier-ignore
|
|
373
336
|
function TArray(schema, references, value) {
|
|
374
|
-
const
|
|
375
|
-
return
|
|
337
|
+
const defaulted = Default(schema, value);
|
|
338
|
+
return (0, guard_1.IsArray)(defaulted)
|
|
339
|
+
? defaulted.map((value) => Visit(schema.items, references, value))
|
|
340
|
+
: defaulted;
|
|
376
341
|
}
|
|
342
|
+
// prettier-ignore
|
|
377
343
|
function TIntersect(schema, references, value) {
|
|
378
|
-
const
|
|
344
|
+
const defaulted = Default(schema, value);
|
|
379
345
|
if (!(0, guard_1.IsPlainObject)(value) || (0, guard_1.IsValueType)(value))
|
|
380
|
-
return
|
|
381
|
-
const
|
|
382
|
-
const
|
|
383
|
-
return
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
return
|
|
389
|
-
}
|
|
346
|
+
return defaulted;
|
|
347
|
+
const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });
|
|
348
|
+
const knownProperties = knownKeys.reduce((value, key) => {
|
|
349
|
+
return key in defaulted
|
|
350
|
+
? { ...value, [key]: Visit(Types.IndexedAccessor.Resolve(schema, [key]), references, value[key]) }
|
|
351
|
+
: value;
|
|
352
|
+
}, defaulted);
|
|
353
|
+
if (!Types.TypeGuard.TTransform(schema.unevaluatedProperties)) {
|
|
354
|
+
return Default(schema, knownProperties);
|
|
355
|
+
}
|
|
356
|
+
const unknownKeys = Object.getOwnPropertyNames(knownProperties);
|
|
357
|
+
const unevaluatedProperties = schema.unevaluatedProperties;
|
|
358
|
+
return unknownKeys.reduce((value, key) => {
|
|
359
|
+
return !knownKeys.includes(key)
|
|
360
|
+
? { ...value, [key]: Default(unevaluatedProperties, value[key]) }
|
|
361
|
+
: value;
|
|
362
|
+
}, knownProperties);
|
|
390
363
|
}
|
|
391
364
|
function TNot(schema, references, value) {
|
|
392
|
-
|
|
393
|
-
return Default(schema.not, value1);
|
|
365
|
+
return Default(schema.not, Default(schema, value));
|
|
394
366
|
}
|
|
367
|
+
// prettier-ignore
|
|
395
368
|
function TObject(schema, references, value) {
|
|
396
|
-
const
|
|
369
|
+
const defaulted = Default(schema, value);
|
|
397
370
|
if (!(0, guard_1.IsPlainObject)(value))
|
|
398
|
-
return
|
|
399
|
-
const
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
371
|
+
return defaulted;
|
|
372
|
+
const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });
|
|
373
|
+
const knownProperties = knownKeys.reduce((value, key) => {
|
|
374
|
+
return key in value
|
|
375
|
+
? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
|
|
376
|
+
: value;
|
|
377
|
+
}, defaulted);
|
|
378
|
+
if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {
|
|
379
|
+
return knownProperties;
|
|
380
|
+
}
|
|
381
|
+
const unknownKeys = Object.getOwnPropertyNames(knownProperties);
|
|
404
382
|
const additionalProperties = schema.additionalProperties;
|
|
405
|
-
return
|
|
406
|
-
return
|
|
407
|
-
|
|
383
|
+
return unknownKeys.reduce((value, key) => {
|
|
384
|
+
return !knownKeys.includes(key)
|
|
385
|
+
? { ...value, [key]: Default(additionalProperties, value[key]) }
|
|
386
|
+
: value;
|
|
387
|
+
}, knownProperties);
|
|
408
388
|
}
|
|
389
|
+
// prettier-ignore
|
|
409
390
|
function TRecord(schema, references, value) {
|
|
410
|
-
const
|
|
391
|
+
const defaulted = Default(schema, value);
|
|
411
392
|
if (!(0, guard_1.IsPlainObject)(value))
|
|
412
|
-
return
|
|
393
|
+
return defaulted;
|
|
413
394
|
const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
414
|
-
const
|
|
415
|
-
const
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
395
|
+
const knownKeys = new RegExp(pattern);
|
|
396
|
+
const knownProperties = Object.getOwnPropertyNames(value).reduce((value, key) => {
|
|
397
|
+
return knownKeys.test(key)
|
|
398
|
+
? { ...value, [key]: Visit(schema.patternProperties[pattern], references, value[key]) }
|
|
399
|
+
: value;
|
|
400
|
+
}, defaulted);
|
|
401
|
+
if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {
|
|
402
|
+
return Default(schema, knownProperties);
|
|
403
|
+
}
|
|
404
|
+
const unknownKeys = Object.getOwnPropertyNames(knownProperties);
|
|
421
405
|
const additionalProperties = schema.additionalProperties;
|
|
422
|
-
return
|
|
423
|
-
return
|
|
424
|
-
|
|
406
|
+
return unknownKeys.reduce((value, key) => {
|
|
407
|
+
return !knownKeys.test(key)
|
|
408
|
+
? { ...value, [key]: Default(additionalProperties, value[key]) }
|
|
409
|
+
: value;
|
|
410
|
+
}, knownProperties);
|
|
425
411
|
}
|
|
426
412
|
function TRef(schema, references, value) {
|
|
427
413
|
const target = (0, deref_1.Deref)(schema, references);
|
|
@@ -458,9 +444,6 @@ var EncodeTransform;
|
|
|
458
444
|
const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
|
|
459
445
|
const schema_ = schema;
|
|
460
446
|
switch (schema[Types.Kind]) {
|
|
461
|
-
// ------------------------------------------------------
|
|
462
|
-
// Structural
|
|
463
|
-
// ------------------------------------------------------
|
|
464
447
|
case 'Array':
|
|
465
448
|
return TArray(schema_, references_, value);
|
|
466
449
|
case 'Intersect':
|
|
@@ -479,34 +462,7 @@ var EncodeTransform;
|
|
|
479
462
|
return TTuple(schema_, references_, value);
|
|
480
463
|
case 'Union':
|
|
481
464
|
return TUnion(schema_, references_, value);
|
|
482
|
-
// ------------------------------------------------------
|
|
483
|
-
// Apply
|
|
484
|
-
// ------------------------------------------------------
|
|
485
|
-
case 'Any':
|
|
486
|
-
case 'AsyncIterator':
|
|
487
|
-
case 'BigInt':
|
|
488
|
-
case 'Boolean':
|
|
489
|
-
case 'Constructor':
|
|
490
|
-
case 'Date':
|
|
491
|
-
case 'Function':
|
|
492
|
-
case 'Integer':
|
|
493
|
-
case 'Iterator':
|
|
494
|
-
case 'Literal':
|
|
495
|
-
case 'Never':
|
|
496
|
-
case 'Null':
|
|
497
|
-
case 'Number':
|
|
498
|
-
case 'Promise':
|
|
499
|
-
case 'String':
|
|
500
|
-
case 'Symbol':
|
|
501
|
-
case 'TemplateLiteral':
|
|
502
|
-
case 'Undefined':
|
|
503
|
-
case 'Uint8Array':
|
|
504
|
-
case 'Unknown':
|
|
505
|
-
case 'Void':
|
|
506
|
-
return Default(schema_, value);
|
|
507
465
|
default:
|
|
508
|
-
if (!Types.TypeRegistry.Has(schema_[Types.Kind]))
|
|
509
|
-
throw new TransformUnknownTypeError(schema_);
|
|
510
466
|
return Default(schema_, value);
|
|
511
467
|
}
|
|
512
468
|
}
|