@sinclair/typebox 0.31.10 → 0.31.11
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 +3 -3
- package/typebox.js +2 -2
package/package.json
CHANGED
package/typebox.d.ts
CHANGED
|
@@ -162,8 +162,8 @@ export type TEnumValue = string | number;
|
|
|
162
162
|
export type TEnumKey = string;
|
|
163
163
|
export type TEnumToLiteralUnion<T extends TEnumValue> = T extends TEnumValue ? TLiteral<T> : never;
|
|
164
164
|
export type TEnumToLiteralTuple<T extends TEnumValue> = UnionToTuple<TEnumToLiteralUnion<T>>;
|
|
165
|
-
export type TEnumToUnion<T extends TEnumValue
|
|
166
|
-
export type TEnum<T extends
|
|
165
|
+
export type TEnumToUnion<T extends TEnumValue> = UnionType<AssertRest<TEnumToLiteralTuple<T>>>;
|
|
166
|
+
export type TEnum<T extends TEnumRecord> = TEnumToUnion<T[keyof T]>;
|
|
167
167
|
export type TExtends<L extends TSchema, R extends TSchema, T extends TSchema, U extends TSchema> = (Static<L> extends Static<R> ? T : U) extends infer O ? UnionToTuple<O> extends [infer X, infer Y] ? TUnion<[AssertType<X>, AssertType<Y>]> : AssertType<O> : never;
|
|
168
168
|
export type TExcludeTemplateLiteralResult<T extends string> = UnionType<AssertRest<UnionToTuple<{
|
|
169
169
|
[K in T]: TLiteral<K>;
|
|
@@ -797,7 +797,7 @@ export declare class JsonTypeBuilder extends TypeBuilder {
|
|
|
797
797
|
/** `[Json]` Creates a Composite object type */
|
|
798
798
|
Composite<T extends TObject[]>(objects: [...T], options?: ObjectOptions): TComposite<T>;
|
|
799
799
|
/** `[Json]` Creates a Enum type */
|
|
800
|
-
Enum<V extends TEnumValue, T extends Record<TEnumKey, V>>(item: T, options?: SchemaOptions): TEnum<T
|
|
800
|
+
Enum<V extends TEnumValue, T extends Record<TEnumKey, V>>(item: T, options?: SchemaOptions): TEnum<T>;
|
|
801
801
|
/** `[Json]` Creates a Conditional type */
|
|
802
802
|
Extends<L extends TSchema, R extends TSchema, T extends TSchema, U extends TSchema>(left: L, right: R, trueType: T, falseType: U, options?: SchemaOptions): TExtends<L, R, T, U>;
|
|
803
803
|
/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
|
package/typebox.js
CHANGED
|
@@ -1935,10 +1935,10 @@ class JsonTypeBuilder extends TypeBuilder {
|
|
|
1935
1935
|
/** `[Json]` Creates a Enum type */
|
|
1936
1936
|
Enum(item, options = {}) {
|
|
1937
1937
|
if (ValueGuard.IsUndefined(item))
|
|
1938
|
-
return this.
|
|
1938
|
+
return this.Never(options);
|
|
1939
1939
|
// prettier-ignore
|
|
1940
1940
|
const values1 = Object.getOwnPropertyNames(item).filter((key) => isNaN(key)).map((key) => item[key]);
|
|
1941
|
-
const values2 = [...new Set(values1)];
|
|
1941
|
+
const values2 = [...new Set(values1)];
|
|
1942
1942
|
const anyOf = values2.map((value) => exports.Type.Literal(value));
|
|
1943
1943
|
return this.Union(anyOf, options);
|
|
1944
1944
|
}
|