@sinclair/typebox
Advanced tools
Comparing version 0.32.9 to 0.32.10
@@ -12,9 +12,7 @@ import type { TSchema, SchemaOptions } from '../schema/index'; | ||
import { type TPartialFromMappedResult } from './partial-from-mapped-result'; | ||
type TFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromRest<R, [...Acc, PartialResolve<L>]> : Acc); | ||
type TFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromRest<R, [...Acc, TPartial<L>]> : Acc); | ||
type TFromProperties<T extends TProperties> = Evaluate<{ | ||
[K in keyof T]: T[K] extends (TReadonlyOptional<infer S>) ? TReadonlyOptional<S> : T[K] extends (TReadonly<infer S>) ? TReadonlyOptional<S> : T[K] extends (TOptional<infer S>) ? TOptional<S> : TOptional<T[K]>; | ||
}>; | ||
type PartialResolve<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<PartialResolve<S>> : T extends TIntersect<infer S> ? TIntersect<TFromRest<S>> : T extends TUnion<infer S> ? TUnion<TFromRest<S>> : T extends TObject<infer S> ? TObject<TFromProperties<S>> : TObject<{}>); | ||
declare function PartialResolve<T extends TSchema>(T: T): PartialResolve<T>; | ||
export type TPartial<T extends TSchema> = PartialResolve<T>; | ||
export type TPartial<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<TPartial<S>> : T extends TIntersect<infer S> ? TIntersect<TFromRest<S>> : T extends TUnion<infer S> ? TUnion<TFromRest<S>> : T extends TObject<infer S> ? TObject<TFromProperties<S>> : TObject<{}>); | ||
/** `[Json]` Constructs a type where all properties are optional */ | ||
@@ -21,0 +19,0 @@ export declare function Partial<T extends TMappedResult>(T: T, options?: SchemaOptions): TPartialFromMappedResult<T>; |
@@ -27,2 +27,5 @@ "use strict"; | ||
} | ||
// ------------------------------------------------------------------ | ||
// PartialResolve | ||
// ------------------------------------------------------------------ | ||
// prettier-ignore | ||
@@ -29,0 +32,0 @@ function PartialResolve(T) { |
@@ -12,8 +12,7 @@ import type { TSchema, SchemaOptions } from '../schema/index'; | ||
import { type TRequiredFromMappedResult } from './required-from-mapped-result'; | ||
type TFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromRest<R, [...Acc, TRequiredResolve<L>]> : Acc); | ||
type TFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromRest<R, [...Acc, TRequired<L>]> : Acc); | ||
type TFromProperties<T extends TProperties> = Evaluate<{ | ||
[K in keyof T]: T[K] extends (TReadonlyOptional<infer S>) ? TReadonly<S> : T[K] extends (TReadonly<infer S>) ? TReadonly<S> : T[K] extends (TOptional<infer S>) ? S : T[K]; | ||
}>; | ||
type TRequiredResolve<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<TRequiredResolve<S>> : T extends TIntersect<infer S> ? TIntersect<TFromRest<S>> : T extends TUnion<infer S> ? TUnion<TFromRest<S>> : T extends TObject<infer S> ? TObject<TFromProperties<S>> : TObject<{}>); | ||
export type TRequired<T extends TSchema> = TRequiredResolve<T>; | ||
export type TRequired<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<TRequired<S>> : T extends TIntersect<infer S> ? TIntersect<TFromRest<S>> : T extends TUnion<infer S> ? TUnion<TFromRest<S>> : T extends TObject<infer S> ? TObject<TFromProperties<S>> : TObject<{}>); | ||
/** `[Json]` Constructs a type where all properties are required */ | ||
@@ -20,0 +19,0 @@ export declare function Required<T extends TMappedResult>(T: T, options?: SchemaOptions): TRequiredFromMappedResult<T>; |
@@ -26,2 +26,5 @@ "use strict"; | ||
} | ||
// ------------------------------------------------------------------ | ||
// RequiredResolve | ||
// ------------------------------------------------------------------ | ||
// prettier-ignore | ||
@@ -28,0 +31,0 @@ function RequiredResolve(T) { |
{ | ||
"name": "@sinclair/typebox", | ||
"version": "0.32.9", | ||
"version": "0.32.10", | ||
"description": "Json Schema Type Builder with Static Type Resolution for TypeScript", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1357854
22485