Skip to content

Commit 6c8793b

Browse files
committed
fix(deserializer): handle inference of omitted deserializer properties
1 parent ca55539 commit 6c8793b

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/deserializer.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,29 +89,36 @@ export type InferType<T> = T extends ResourceDeserializer<
8989
>
9090
? U
9191
: never;
92+
type IsUndefined<T> = undefined extends T ? true : false;
9293
export type InferAttributesSchema<T> = T extends ResourceDeserializer<
9394
string,
9495
infer U,
9596
Relationships | undefined,
9697
MetaSchema | undefined
9798
>
98-
? U
99+
? IsUndefined<U> extends true
100+
? undefined
101+
: U
99102
: never;
100103
export type InferRelationships<T> = T extends ResourceDeserializer<
101104
string,
102105
AttributesSchema | undefined,
103106
infer U,
104107
MetaSchema | undefined
105108
>
106-
? U
109+
? IsUndefined<U> extends true
110+
? undefined
111+
: U
107112
: never;
108113
export type InferDocumentMetaSchema<T> = T extends ResourceDeserializer<
109114
string,
110115
AttributesSchema | undefined,
111116
Relationships | undefined,
112117
infer U
113118
>
114-
? U
119+
? IsUndefined<U> extends true
120+
? undefined
121+
: U
115122
: never;
116123

117124
type IncludeResult<TDeserializer extends AnyRelationshipDeserializer> =

0 commit comments

Comments
 (0)