Skip to content

Commit c7886f8

Browse files
committed
fix: nullable relation types
1 parent 5499caa commit c7886f8

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

src/types/model.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -689,8 +689,8 @@ export interface LucidRow {
689689
loadAggregate: <
690690
Self extends this,
691691
Name extends ExtractModelRelations<Self>,
692-
RelatedBuilder = Self[Name] extends ModelRelations<LucidModel, LucidModel>
693-
? Self[Name]['subQuery']
692+
RelatedBuilder = NonNullable<Self[Name]> extends ModelRelations<LucidModel, LucidModel>
693+
? NonNullable<Self[Name]>['subQuery']
694694
: never,
695695
>(
696696
name: Name,
@@ -703,8 +703,8 @@ export interface LucidRow {
703703
loadCount: <
704704
Self extends this,
705705
Name extends ExtractModelRelations<Self>,
706-
RelatedBuilder = Self[Name] extends ModelRelations<LucidModel, LucidModel>
707-
? Self[Name]['subQuery']
706+
RelatedBuilder = NonNullable<Self[Name]> extends ModelRelations<LucidModel, LucidModel>
707+
? NonNullable<Self[Name]>['subQuery']
708708
: never,
709709
>(
710710
name: Name,
@@ -758,7 +758,9 @@ export interface LucidRow {
758758
*/
759759
related<Name extends ExtractModelRelations<this>>(
760760
relation: Name
761-
): this[Name] extends ModelRelations<LucidModel, LucidModel> ? this[Name]['client'] : never
761+
): NonNullable<this[Name]> extends ModelRelations<LucidModel, LucidModel>
762+
? NonNullable<this[Name]>['client']
763+
: never
762764
}
763765

764766
/**
@@ -908,8 +910,8 @@ export interface LucidModel {
908910
$getRelation<Model extends LucidModel, Name extends ExtractModelRelations<InstanceType<Model>>>(
909911
this: Model,
910912
name: Name
911-
): InstanceType<Model>[Name] extends ModelRelations<LucidModel, LucidModel>
912-
? InstanceType<Model>[Name]['client']['relation']
913+
): NonNullable<InstanceType<Model>[Name]> extends ModelRelations<LucidModel, LucidModel>
914+
? NonNullable<InstanceType<Model>[Name]>['client']['relation']
913915
: RelationshipsContract
914916
$getRelation<Model extends LucidModel>(this: Model, name: string): RelationshipsContract
915917

src/types/relations.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -992,8 +992,8 @@ export interface ManyToManySubQueryBuilderContract<Related extends LucidModel>
992992
export interface WithCount<Model extends LucidRow, Builder> {
993993
<
994994
Name extends ExtractModelRelations<Model>,
995-
RelatedBuilder = Model[Name] extends ModelRelations<LucidModel, LucidModel>
996-
? Model[Name]['subQuery']
995+
RelatedBuilder = NonNullable<Model[Name]> extends ModelRelations<LucidModel, LucidModel>
996+
? NonNullable<Model[Name]>['subQuery']
997997
: never,
998998
>(
999999
relation: Name,
@@ -1007,8 +1007,8 @@ export interface WithCount<Model extends LucidRow, Builder> {
10071007
export interface WithAggregate<Model extends LucidRow, Builder> {
10081008
<
10091009
Name extends ExtractModelRelations<Model>,
1010-
RelatedBuilder = Model[Name] extends ModelRelations<LucidModel, LucidModel>
1011-
? Model[Name]['subQuery']
1010+
RelatedBuilder = NonNullable<Model[Name]> extends ModelRelations<LucidModel, LucidModel>
1011+
? NonNullable<Model[Name]>['subQuery']
10121012
: never,
10131013
>(
10141014
relation: Name,
@@ -1033,8 +1033,8 @@ export interface Has<Model extends LucidRow, Builder> {
10331033
export interface WhereHas<Model extends LucidRow, Builder> {
10341034
<
10351035
Name extends ExtractModelRelations<Model>,
1036-
RelatedBuilder = Model[Name] extends ModelRelations<LucidModel, LucidModel>
1037-
? Model[Name]['subQuery']
1036+
RelatedBuilder = NonNullable<Model[Name]> extends ModelRelations<LucidModel, LucidModel>
1037+
? NonNullable<Model[Name]>['subQuery']
10381038
: never,
10391039
>(
10401040
relation: Name,
@@ -1056,8 +1056,8 @@ export interface WhereHas<Model extends LucidRow, Builder> {
10561056
export interface Preload<Model extends LucidRow, Builder> {
10571057
<
10581058
Name extends ExtractModelRelations<Model>,
1059-
RelatedBuilder = Model[Name] extends ModelRelations<LucidModel, LucidModel>
1060-
? Model[Name]['builder']
1059+
RelatedBuilder = NonNullable<Model[Name]> extends ModelRelations<LucidModel, LucidModel>
1060+
? NonNullable<Model[Name]>['builder']
10611061
: never,
10621062
>(
10631063
relation: Name,

0 commit comments

Comments
 (0)