@sinclair/typebox 0.31.11 → 0.31.13
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/typebox.d.ts +1 -1
- package/value/convert.js +8 -1
package/package.json
CHANGED
package/typebox.d.ts
CHANGED
|
@@ -160,7 +160,7 @@ export interface TDate extends TSchema, DateOptions {
|
|
|
160
160
|
export type TEnumRecord = Record<TEnumKey, TEnumValue>;
|
|
161
161
|
export type TEnumValue = string | number;
|
|
162
162
|
export type TEnumKey = string;
|
|
163
|
-
export type TEnumToLiteralUnion<T extends TEnumValue> = T extends TEnumValue ? TLiteral<T> : never;
|
|
163
|
+
export type TEnumToLiteralUnion<T extends TEnumValue> = T extends TEnumValue ? (string extends T ? TNever : TLiteral<T>) : never;
|
|
164
164
|
export type TEnumToLiteralTuple<T extends TEnumValue> = UnionToTuple<TEnumToLiteralUnion<T>>;
|
|
165
165
|
export type TEnumToUnion<T extends TEnumValue> = UnionType<AssertRest<TEnumToLiteralTuple<T>>>;
|
|
166
166
|
export type TEnum<T extends TEnumRecord> = TEnumToUnion<T[keyof T]>;
|
package/value/convert.js
CHANGED
|
@@ -180,6 +180,12 @@ function TDate(schema, references, value) {
|
|
|
180
180
|
function TInteger(schema, references, value) {
|
|
181
181
|
return TryConvertInteger(value);
|
|
182
182
|
}
|
|
183
|
+
function TIntersect(schema, references, value) {
|
|
184
|
+
// prettier-ignore
|
|
185
|
+
return (schema.allOf.every(schema => Types.TypeGuard.TObject(schema)))
|
|
186
|
+
? Visit(Types.Type.Composite(schema.allOf), references, value)
|
|
187
|
+
: Visit(schema.allOf[0], references, value);
|
|
188
|
+
}
|
|
183
189
|
function TLiteral(schema, references, value) {
|
|
184
190
|
return TryConvertLiteral(schema, value);
|
|
185
191
|
}
|
|
@@ -254,6 +260,8 @@ function Visit(schema, references, value) {
|
|
|
254
260
|
return TDate(schema_, references_, value);
|
|
255
261
|
case 'Integer':
|
|
256
262
|
return TInteger(schema_, references_, value);
|
|
263
|
+
case 'Intersect':
|
|
264
|
+
return TIntersect(schema_, references_, value);
|
|
257
265
|
case 'Literal':
|
|
258
266
|
return TLiteral(schema_, references_, value);
|
|
259
267
|
case 'Null':
|
|
@@ -285,7 +293,6 @@ function Visit(schema, references, value) {
|
|
|
285
293
|
case 'AsyncIterator':
|
|
286
294
|
case 'Constructor':
|
|
287
295
|
case 'Function':
|
|
288
|
-
case 'Intersect':
|
|
289
296
|
case 'Iterator':
|
|
290
297
|
case 'Never':
|
|
291
298
|
case 'Promise':
|