@@ -17,38 +17,38 @@ interface StringSchema {
17
17
}
18
18
19
19
interface AnyEnumSchema extends EnumSchema < any > { }
20
- interface EnumSchema < T > {
21
- enum : T [ ]
20
+ interface EnumSchema < Enum > {
21
+ enum : Enum [ ]
22
22
}
23
23
24
24
interface AnyArraySchema extends ArraySchema < AnySchema > { }
25
- interface ArraySchema < T extends AnySchema > {
25
+ interface ArraySchema < ItemSchema extends AnySchema > {
26
26
type : 'array'
27
- items : T
27
+ items : ItemSchema
28
28
}
29
29
30
30
interface AnyObjectSchema extends ObjectSchema < Record < string , AnySchema > , string > { }
31
- interface ObjectSchema < T extends Record < string , AnySchema > , R extends keyof T > {
31
+ interface ObjectSchema < Properties extends Record < string , AnySchema > , Required extends keyof Properties > {
32
32
additionalProperties ?: boolean
33
33
type : 'object'
34
- properties : T
35
- required : R [ ]
34
+ properties : Properties
35
+ required : Required [ ]
36
36
}
37
37
38
- interface ExtractedSchemaArray < T > extends Array < ExtractSchemaType < T > > { }
38
+ interface ExtractedSchemaArray < Schema > extends Array < ExtractSchemaType < Schema > > { }
39
39
40
- declare type ExtractedSchemaObject < T , R > = {
41
- [ K in keyof T ] : ( K extends R ? ExtractSchemaType < T [ K ] > : ExtractSchemaType < T [ K ] > | undefined )
40
+ declare type ExtractedSchemaObject < Properties , Required > = {
41
+ [ Key in keyof Properties ] : ( Key extends Required ? ExtractSchemaType < Properties [ Key ] > : ExtractSchemaType < Properties [ Key ] > | undefined )
42
42
}
43
43
44
- declare type ExtractSchemaType < Type > = (
45
- Type extends EnumSchema < infer T > ? T
46
- : Type extends NullSchema ? null
47
- : Type extends BooleanSchema ? boolean
48
- : Type extends NumberSchema ? number
49
- : Type extends StringSchema ? string
50
- : Type extends ArraySchema < infer T > ? ExtractedSchemaArray < T >
51
- : Type extends ObjectSchema < infer T , infer R > ? ExtractedSchemaObject < T , R >
44
+ declare type ExtractSchemaType < Schema > = (
45
+ Schema extends EnumSchema < infer Enum > ? Enum
46
+ : Schema extends NullSchema ? null
47
+ : Schema extends BooleanSchema ? boolean
48
+ : Schema extends NumberSchema ? number
49
+ : Schema extends StringSchema ? string
50
+ : Schema extends ArraySchema < infer ItemSchema > ? ExtractedSchemaArray < ItemSchema >
51
+ : Schema extends ObjectSchema < infer Properties , infer Required > ? ExtractedSchemaObject < Properties , Required >
52
52
: never
53
53
)
54
54
@@ -72,11 +72,11 @@ declare interface Filter<Output> {
72
72
}
73
73
74
74
declare interface Factory {
75
- < T extends Record < string , AnySchema > , R extends keyof T > ( schema : ObjectSchema < T , R > , options ?: any ) : Validator < ObjectSchema < T , R > >
76
- < T extends AnySchema > ( schema : T , options ?: any ) : Validator < T >
75
+ < Properties extends Record < string , AnySchema > , Required extends keyof Properties > ( schema : ObjectSchema < Properties , Required > , options ?: any ) : Validator < ObjectSchema < Properties , Required > >
76
+ < Schema extends AnySchema > ( schema : Schema , options ?: any ) : Validator < Schema >
77
77
78
- createFilter < T extends Record < string , AnySchema > , R extends keyof T > ( schema : ObjectSchema < T , R > , options ?: any ) : Filter < ExtractedSchemaObject < T , R > >
79
- createFilter < T extends AnySchema > ( schema : T , options ?: any ) : Filter < ExtractSchemaType < T > >
78
+ createFilter < Properties extends Record < string , AnySchema > , Required extends keyof Properties > ( schema : ObjectSchema < Properties , Required > , options ?: any ) : Filter < ExtractedSchemaObject < Properties , Required > >
79
+ createFilter < Schema extends AnySchema > ( schema : Schema , options ?: any ) : Filter < ExtractSchemaType < Schema > >
80
80
}
81
81
82
82
declare const factory : Factory
0 commit comments