Skip to content

Commit d170399

Browse files
committed
fix(code-gen): propagate optional relations correctly when resolving query results
1 parent 6b6cd2e commit d170399

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

packages/code-gen/src/processors/model-query.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,14 @@ export function modelQueryResultTypes(generateContext) {
172172
relationInfo.modelOwn.name,
173173
);
174174

175+
if (relation.subType === "oneToOneReverse" && relation.isOptional) {
176+
// oneToMany's are never optional, since they then return an empty array. A oneToOne is
177+
// only optional if the owning side says so.
178+
joinedExpansionType.optional();
179+
}
180+
175181
expansionType.keys[relationInfo.virtualKeyNameInverse] =
176-
joinedExpansionType.optional().build();
182+
joinedExpansionType.build();
177183
}
178184

179185
structureAddType(generateContext.structure, type, {
@@ -430,7 +436,7 @@ export type QueryBuilderResolver<
430436
>
431437
>
432438
>
433-
: never;
439+
: DefinitionType extends undefined ? undefined : never;
434440
435441
/// End Query builder resolver types
436442
/// ================================

packages/store/types/advanced-types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,4 +297,4 @@ export type QueryBuilderResolver<
297297
>
298298
>
299299
>
300-
: never;
300+
: DefinitionType extends undefined ? undefined : never;

0 commit comments

Comments
 (0)