@prisma-next/sql-orm-client 0.6.0-dev.8 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/types.ts CHANGED
@@ -241,19 +241,20 @@ type FieldOperations<
241
241
  TContract extends Contract<SqlStorage>,
242
242
  ModelName extends string,
243
243
  FieldName extends string,
244
- > = FieldCodecId<TContract, ModelName, FieldName> extends infer CodecId extends string
245
- ? ExtractQueryOperationTypes<TContract> extends infer AllOps
246
- ? {
247
- [OpName in keyof AllOps & string as OpMatchesField<
248
- AllOps[OpName],
249
- CodecId,
250
- ExtractCodecTypes<TContract>
251
- > extends true
252
- ? OpName
253
- : never]: QueryOperationMethod<AllOps[OpName], ExtractCodecTypes<TContract>>;
254
- }
255
- : unknown
256
- : unknown;
244
+ > =
245
+ FieldCodecId<TContract, ModelName, FieldName> extends infer CodecId extends string
246
+ ? ExtractQueryOperationTypes<TContract> extends infer AllOps
247
+ ? {
248
+ [OpName in keyof AllOps & string as OpMatchesField<
249
+ AllOps[OpName],
250
+ CodecId,
251
+ ExtractCodecTypes<TContract>
252
+ > extends true
253
+ ? OpName
254
+ : never]: QueryOperationMethod<AllOps[OpName], ExtractCodecTypes<TContract>>;
255
+ }
256
+ : unknown
257
+ : unknown;
257
258
 
258
259
  function param(codec: CodecRef | undefined, value: unknown): ParamRef {
259
260
  if (codec === undefined) return ParamRef.of(value);
@@ -397,58 +398,55 @@ export type DefaultModelRow<TContract extends Contract<SqlStorage>, ModelName ex
397
398
 
398
399
  type Simplify<T> = { [K in keyof T]: T[K] } & {};
399
400
 
400
- type VariantRow<TContract extends Contract<SqlStorage>, ModelName extends string> = ModelDef<
401
- TContract,
402
- ModelName
403
- > extends {
404
- readonly discriminator: { readonly field: infer DiscField extends string };
405
- readonly variants: infer V;
406
- }
407
- ? V extends Record<string, { readonly value: string }>
408
- ? {
409
- [VK in keyof V]: VK extends string & keyof ModelsOf<TContract>
410
- ? Simplify<
411
- Omit<DefaultModelRow<TContract, ModelName>, DiscField> &
412
- DefaultModelRow<TContract, VK> &
413
- Record<DiscField, V[VK]['value']>
414
- >
415
- : never;
416
- }[keyof V]
417
- : DefaultModelRow<TContract, ModelName>
418
- : DefaultModelRow<TContract, ModelName>;
401
+ type VariantRow<TContract extends Contract<SqlStorage>, ModelName extends string> =
402
+ ModelDef<TContract, ModelName> extends {
403
+ readonly discriminator: { readonly field: infer DiscField extends string };
404
+ readonly variants: infer V;
405
+ }
406
+ ? V extends Record<string, { readonly value: string }>
407
+ ? {
408
+ [VK in keyof V]: VK extends string & keyof ModelsOf<TContract>
409
+ ? Simplify<
410
+ Omit<DefaultModelRow<TContract, ModelName>, DiscField> &
411
+ DefaultModelRow<TContract, VK> &
412
+ Record<DiscField, V[VK]['value']>
413
+ >
414
+ : never;
415
+ }[keyof V]
416
+ : DefaultModelRow<TContract, ModelName>
417
+ : DefaultModelRow<TContract, ModelName>;
419
418
 
420
419
  export type InferRootRow<
421
420
  TContract extends Contract<SqlStorage>,
422
421
  ModelName extends string,
423
422
  > = VariantRow<TContract, ModelName>;
424
423
 
425
- export type VariantNames<
426
- TContract extends Contract<SqlStorage>,
427
- ModelName extends string,
428
- > = ModelDef<TContract, ModelName> extends {
429
- readonly variants: infer V extends Record<string, unknown>;
430
- }
431
- ? keyof V & string
432
- : never;
424
+ export type VariantNames<TContract extends Contract<SqlStorage>, ModelName extends string> =
425
+ ModelDef<TContract, ModelName> extends {
426
+ readonly variants: infer V extends Record<string, unknown>;
427
+ }
428
+ ? keyof V & string
429
+ : never;
433
430
 
434
431
  export type VariantModelRow<
435
432
  TContract extends Contract<SqlStorage>,
436
433
  ModelName extends string,
437
434
  VariantName extends string,
438
- > = ModelDef<TContract, ModelName> extends {
439
- readonly discriminator: { readonly field: infer DiscField extends string };
440
- readonly variants: infer V;
441
- }
442
- ? V extends Record<string, { readonly value: string }>
443
- ? VariantName extends keyof V & string & keyof ModelsOf<TContract>
444
- ? Simplify<
445
- Omit<DefaultModelRow<TContract, ModelName>, DiscField> &
446
- DefaultModelRow<TContract, VariantName> &
447
- Record<DiscField, V[VariantName]['value']>
448
- >
435
+ > =
436
+ ModelDef<TContract, ModelName> extends {
437
+ readonly discriminator: { readonly field: infer DiscField extends string };
438
+ readonly variants: infer V;
439
+ }
440
+ ? V extends Record<string, { readonly value: string }>
441
+ ? VariantName extends keyof V & string & keyof ModelsOf<TContract>
442
+ ? Simplify<
443
+ Omit<DefaultModelRow<TContract, ModelName>, DiscField> &
444
+ DefaultModelRow<TContract, VariantName> &
445
+ Record<DiscField, V[VariantName]['value']>
446
+ >
447
+ : DefaultModelRow<TContract, ModelName>
449
448
  : DefaultModelRow<TContract, ModelName>
450
- : DefaultModelRow<TContract, ModelName>
451
- : DefaultModelRow<TContract, ModelName>;
449
+ : DefaultModelRow<TContract, ModelName>;
452
450
 
453
451
  declare const aggregateResultBrand: unique symbol;
454
452
 
@@ -523,50 +521,40 @@ type ModelDef<
523
521
  ModelName extends string,
524
522
  > = ModelName extends keyof ModelsOf<TContract> ? ModelsOf<TContract>[ModelName] : never;
525
523
 
526
- type FieldsOf<TContract extends Contract<SqlStorage>, ModelName extends string> = ModelDef<
527
- TContract,
528
- ModelName
529
- > extends { readonly fields: infer F }
530
- ? F extends Record<string, unknown>
531
- ? F
532
- : Record<string, never>
533
- : Record<string, never>;
524
+ type FieldsOf<TContract extends Contract<SqlStorage>, ModelName extends string> =
525
+ ModelDef<TContract, ModelName> extends { readonly fields: infer F }
526
+ ? F extends Record<string, unknown>
527
+ ? F
528
+ : Record<string, never>
529
+ : Record<string, never>;
534
530
 
535
- type ModelStorageFields<
536
- TContract extends Contract<SqlStorage>,
537
- ModelName extends string,
538
- > = ModelDef<TContract, ModelName> extends {
539
- readonly storage: { readonly fields: infer Fields };
540
- }
541
- ? Fields extends Record<string, { readonly column: string }>
542
- ? Fields
543
- : never
544
- : never;
531
+ type ModelStorageFields<TContract extends Contract<SqlStorage>, ModelName extends string> =
532
+ ModelDef<TContract, ModelName> extends {
533
+ readonly storage: { readonly fields: infer Fields };
534
+ }
535
+ ? Fields extends Record<string, { readonly column: string }>
536
+ ? Fields
537
+ : never
538
+ : never;
545
539
 
546
- type ModelFieldToColumnMap<
547
- TContract extends Contract<SqlStorage>,
548
- ModelName extends string,
549
- > = ModelStorageFields<TContract, ModelName> extends infer Fields
550
- ? Fields extends Record<string, { readonly column: string }>
551
- ? { readonly [F in keyof Fields]: Fields[F]['column'] }
552
- : never
553
- : never;
540
+ type ModelFieldToColumnMap<TContract extends Contract<SqlStorage>, ModelName extends string> =
541
+ ModelStorageFields<TContract, ModelName> extends infer Fields
542
+ ? Fields extends Record<string, { readonly column: string }>
543
+ ? { readonly [F in keyof Fields]: Fields[F]['column'] }
544
+ : never
545
+ : never;
554
546
 
555
- type FieldToColumnMapSafe<
556
- TContract extends Contract<SqlStorage>,
557
- ModelName extends string,
558
- > = ModelFieldToColumnMap<TContract, ModelName> extends Record<string, string>
559
- ? ModelFieldToColumnMap<TContract, ModelName>
560
- : never;
547
+ type FieldToColumnMapSafe<TContract extends Contract<SqlStorage>, ModelName extends string> =
548
+ ModelFieldToColumnMap<TContract, ModelName> extends Record<string, string>
549
+ ? ModelFieldToColumnMap<TContract, ModelName>
550
+ : never;
561
551
 
562
- type ModelTableName<TContract extends Contract<SqlStorage>, ModelName extends string> = ModelDef<
563
- TContract,
564
- ModelName
565
- > extends {
566
- readonly storage: { readonly table: infer T extends string };
567
- }
568
- ? T
569
- : never;
552
+ type ModelTableName<TContract extends Contract<SqlStorage>, ModelName extends string> =
553
+ ModelDef<TContract, ModelName> extends {
554
+ readonly storage: { readonly table: infer T extends string };
555
+ }
556
+ ? T
557
+ : never;
570
558
 
571
559
  type FieldColumnName<
572
560
  TContract extends Contract<SqlStorage>,
@@ -583,36 +571,38 @@ type ResolvedStorageColumn<
583
571
  TContract extends Contract<SqlStorage>,
584
572
  ModelName extends string,
585
573
  FieldName extends string,
586
- > = ModelTableName<TContract, ModelName> extends infer TableName extends string
587
- ? FieldColumnName<TContract, ModelName, FieldName> extends infer ColName extends string
588
- ? TContract['storage']['tables'] extends Record<
589
- string,
590
- { readonly columns: Record<string, unknown> }
591
- >
592
- ? TableName extends keyof TContract['storage']['tables']
593
- ? ColName extends keyof TContract['storage']['tables'][TableName]['columns']
594
- ? TContract['storage']['tables'][TableName]['columns'][ColName] extends StorageColumn
595
- ? TContract['storage']['tables'][TableName]['columns'][ColName]
574
+ > =
575
+ ModelTableName<TContract, ModelName> extends infer TableName extends string
576
+ ? FieldColumnName<TContract, ModelName, FieldName> extends infer ColName extends string
577
+ ? TContract['storage']['tables'] extends Record<
578
+ string,
579
+ { readonly columns: Record<string, unknown> }
580
+ >
581
+ ? TableName extends keyof TContract['storage']['tables']
582
+ ? ColName extends keyof TContract['storage']['tables'][TableName]['columns']
583
+ ? TContract['storage']['tables'][TableName]['columns'][ColName] extends StorageColumn
584
+ ? TContract['storage']['tables'][TableName]['columns'][ColName]
585
+ : never
596
586
  : never
597
587
  : never
598
588
  : never
599
589
  : never
600
- : never
601
- : never;
590
+ : never;
602
591
 
603
592
  type FieldStorageJsType<
604
593
  TContract extends Contract<SqlStorage>,
605
594
  ModelName extends string,
606
595
  FieldName extends string,
607
- > = ResolvedStorageColumn<TContract, ModelName, FieldName> extends infer Col extends StorageColumn
608
- ? ComputeColumnJsType<
609
- TContract,
610
- ModelTableName<TContract, ModelName> & string,
611
- FieldColumnName<TContract, ModelName, FieldName> & string,
612
- Col,
613
- ExtractCodecTypes<TContract>
614
- >
615
- : never;
596
+ > =
597
+ ResolvedStorageColumn<TContract, ModelName, FieldName> extends infer Col extends StorageColumn
598
+ ? ComputeColumnJsType<
599
+ TContract,
600
+ ModelTableName<TContract, ModelName> & string,
601
+ FieldColumnName<TContract, ModelName, FieldName> & string,
602
+ Col,
603
+ ExtractCodecTypes<TContract>
604
+ >
605
+ : never;
616
606
 
617
607
  type FieldJsType<
618
608
  TContract extends Contract<SqlStorage>,
@@ -632,33 +622,36 @@ type FieldCodecId<
632
622
  TContract extends Contract<SqlStorage>,
633
623
  ModelName extends string,
634
624
  FieldName extends string,
635
- > = FieldStorageColumn<TContract, ModelName, FieldName> extends {
636
- readonly codecId: infer Id extends string;
637
- }
638
- ? Id
639
- : never;
625
+ > =
626
+ FieldStorageColumn<TContract, ModelName, FieldName> extends {
627
+ readonly codecId: infer Id extends string;
628
+ }
629
+ ? Id
630
+ : never;
640
631
 
641
632
  type FieldNullable<
642
633
  TContract extends Contract<SqlStorage>,
643
634
  ModelName extends string,
644
635
  FieldName extends string,
645
- > = FieldStorageColumn<TContract, ModelName, FieldName> extends {
646
- readonly nullable: infer N extends boolean;
647
- }
648
- ? N
649
- : false;
636
+ > =
637
+ FieldStorageColumn<TContract, ModelName, FieldName> extends {
638
+ readonly nullable: infer N extends boolean;
639
+ }
640
+ ? N
641
+ : false;
650
642
 
651
643
  type FieldTraits<
652
644
  TContract extends Contract<SqlStorage>,
653
645
  ModelName extends string,
654
646
  FieldName extends string,
655
- > = FieldCodecId<TContract, ModelName, FieldName> extends infer Id extends string
656
- ? Id extends keyof ExtractCodecTypes<TContract>
657
- ? ExtractCodecTypes<TContract>[Id] extends { readonly traits: infer T }
658
- ? T
647
+ > =
648
+ FieldCodecId<TContract, ModelName, FieldName> extends infer Id extends string
649
+ ? Id extends keyof ExtractCodecTypes<TContract>
650
+ ? ExtractCodecTypes<TContract>[Id] extends { readonly traits: infer T }
651
+ ? T
652
+ : never
659
653
  : never
660
- : never
661
- : never;
654
+ : never;
662
655
 
663
656
  export type NumericFieldNames<TContract extends Contract<SqlStorage>, ModelName extends string> = {
664
657
  [K in keyof DefaultModelRow<TContract, ModelName> & string]: 'numeric' extends FieldTraits<
@@ -704,15 +697,16 @@ type IsOptionalCreateField<
704
697
  TContract extends Contract<SqlStorage>,
705
698
  ModelName extends string,
706
699
  FieldName extends string,
707
- > = FieldStorageColumn<TContract, ModelName, FieldName> extends infer Column
708
- ? Column extends StorageColumn
709
- ? Column['nullable'] extends true
710
- ? true
711
- : Column extends { readonly default: unknown }
700
+ > =
701
+ FieldStorageColumn<TContract, ModelName, FieldName> extends infer Column
702
+ ? Column extends StorageColumn
703
+ ? Column['nullable'] extends true
712
704
  ? true
713
- : HasExecutionCreateDefault<TContract, ModelName, FieldName>
714
- : HasExecutionCreateDefault<TContract, ModelName, FieldName>
715
- : HasExecutionCreateDefault<TContract, ModelName, FieldName>;
705
+ : Column extends { readonly default: unknown }
706
+ ? true
707
+ : HasExecutionCreateDefault<TContract, ModelName, FieldName>
708
+ : HasExecutionCreateDefault<TContract, ModelName, FieldName>
709
+ : HasExecutionCreateDefault<TContract, ModelName, FieldName>;
716
710
 
717
711
  type CreateFieldNames<
718
712
  TContract extends Contract<SqlStorage>,
@@ -748,24 +742,20 @@ export type CreateInput<TContract extends Contract<SqlStorage>, ModelName extend
748
742
  > &
749
743
  RelationMutationFields<TContract, ModelName>;
750
744
 
751
- type IsPolymorphicBase<TContract extends Contract<SqlStorage>, ModelName extends string> = ModelDef<
752
- TContract,
753
- ModelName
754
- > extends {
755
- readonly discriminator: unknown;
756
- readonly variants: Record<string, unknown>;
757
- }
758
- ? true
759
- : false;
745
+ type IsPolymorphicBase<TContract extends Contract<SqlStorage>, ModelName extends string> =
746
+ ModelDef<TContract, ModelName> extends {
747
+ readonly discriminator: unknown;
748
+ readonly variants: Record<string, unknown>;
749
+ }
750
+ ? true
751
+ : false;
760
752
 
761
- type DiscriminatorFieldName<
762
- TContract extends Contract<SqlStorage>,
763
- ModelName extends string,
764
- > = ModelDef<TContract, ModelName> extends {
765
- readonly discriminator: { readonly field: infer F extends string };
766
- }
767
- ? F
768
- : never;
753
+ type DiscriminatorFieldName<TContract extends Contract<SqlStorage>, ModelName extends string> =
754
+ ModelDef<TContract, ModelName> extends {
755
+ readonly discriminator: { readonly field: infer F extends string };
756
+ }
757
+ ? F
758
+ : never;
769
759
 
770
760
  export type VariantCreateInput<
771
761
  TContract extends Contract<SqlStorage>,
@@ -778,44 +768,39 @@ export type ResolvedCreateInput<
778
768
  TContract extends Contract<SqlStorage>,
779
769
  ModelName extends string,
780
770
  VName extends string | undefined,
781
- > = IsPolymorphicBase<TContract, ModelName> extends true
782
- ? VName extends string
783
- ? VariantCreateInput<TContract, ModelName, VName>
784
- : never
785
- : CreateInput<TContract, ModelName>;
771
+ > =
772
+ IsPolymorphicBase<TContract, ModelName> extends true
773
+ ? VName extends string
774
+ ? VariantCreateInput<TContract, ModelName, VName>
775
+ : never
776
+ : CreateInput<TContract, ModelName>;
786
777
 
787
- type ModelStorageTableDef<
788
- TContract extends Contract<SqlStorage>,
789
- ModelName extends string,
790
- > = ModelTableName<TContract, ModelName> extends infer TableName extends string
791
- ? TContract['storage']['tables'] extends Record<string, unknown>
792
- ? TableName extends keyof TContract['storage']['tables']
793
- ? TContract['storage']['tables'][TableName]
778
+ type ModelStorageTableDef<TContract extends Contract<SqlStorage>, ModelName extends string> =
779
+ ModelTableName<TContract, ModelName> extends infer TableName extends string
780
+ ? TContract['storage']['tables'] extends Record<string, unknown>
781
+ ? TableName extends keyof TContract['storage']['tables']
782
+ ? TContract['storage']['tables'][TableName]
783
+ : never
794
784
  : never
795
- : never
796
- : never;
785
+ : never;
797
786
 
798
- type PrimaryKeyConstraintColumns<
799
- TContract extends Contract<SqlStorage>,
800
- ModelName extends string,
801
- > = ModelStorageTableDef<TContract, ModelName> extends {
802
- readonly primaryKey: { readonly columns: infer Columns extends readonly string[] };
803
- }
804
- ? Columns
805
- : never;
787
+ type PrimaryKeyConstraintColumns<TContract extends Contract<SqlStorage>, ModelName extends string> =
788
+ ModelStorageTableDef<TContract, ModelName> extends {
789
+ readonly primaryKey: { readonly columns: infer Columns extends readonly string[] };
790
+ }
791
+ ? Columns
792
+ : never;
806
793
 
807
- type UniqueConstraintColumns<
808
- TContract extends Contract<SqlStorage>,
809
- ModelName extends string,
810
- > = ModelStorageTableDef<TContract, ModelName> extends {
811
- readonly uniques: infer Uniques;
812
- }
813
- ? Uniques extends ReadonlyArray<infer Unique>
814
- ? Unique extends { readonly columns: infer Columns extends readonly string[] }
815
- ? Columns
794
+ type UniqueConstraintColumns<TContract extends Contract<SqlStorage>, ModelName extends string> =
795
+ ModelStorageTableDef<TContract, ModelName> extends {
796
+ readonly uniques: infer Uniques;
797
+ }
798
+ ? Uniques extends ReadonlyArray<infer Unique>
799
+ ? Unique extends { readonly columns: infer Columns extends readonly string[] }
800
+ ? Columns
801
+ : never
816
802
  : never
817
- : never
818
- : never;
803
+ : never;
819
804
 
820
805
  type FieldNameForColumn<
821
806
  TContract extends Contract<SqlStorage>,
@@ -864,11 +849,12 @@ type ConstraintColumnsUnion<TContract extends Contract<SqlStorage>, ModelName ex
864
849
  export type UniqueConstraintCriterion<
865
850
  TContract extends Contract<SqlStorage>,
866
851
  ModelName extends string,
867
- > = ConstraintColumnsUnion<TContract, ModelName> extends infer Columns
868
- ? Columns extends readonly string[]
869
- ? CriterionFromConstraintColumns<TContract, ModelName, Columns>
870
- : never
871
- : never;
852
+ > =
853
+ ConstraintColumnsUnion<TContract, ModelName> extends infer Columns
854
+ ? Columns extends readonly string[]
855
+ ? CriterionFromConstraintColumns<TContract, ModelName, Columns>
856
+ : never
857
+ : never;
872
858
 
873
859
  type RelationConnectCriterion<TContract extends Contract<SqlStorage>, ModelName extends string> = [
874
860
  UniqueConstraintCriterion<TContract, ModelName>,
@@ -954,19 +940,17 @@ type RelationDefWithTargetFields = {
954
940
  };
955
941
  };
956
942
 
957
- type ChildForeignKeyFieldNames<
958
- TContract extends Contract<SqlStorage>,
959
- ModelName extends string,
960
- > = Extract<AllModelRelationEntries<TContract>, RelationDefWithTargetFields> extends infer Relation
961
- ? Relation extends {
962
- readonly to: ModelName;
963
- readonly on: {
964
- readonly targetFields: infer Fields extends readonly string[];
965
- };
966
- }
967
- ? Fields[number]
968
- : never
969
- : never;
943
+ type ChildForeignKeyFieldNames<TContract extends Contract<SqlStorage>, ModelName extends string> =
944
+ Extract<AllModelRelationEntries<TContract>, RelationDefWithTargetFields> extends infer Relation
945
+ ? Relation extends {
946
+ readonly to: ModelName;
947
+ readonly on: {
948
+ readonly targetFields: infer Fields extends readonly string[];
949
+ };
950
+ }
951
+ ? Fields[number]
952
+ : never
953
+ : never;
970
954
 
971
955
  type NestedOptionalCreateFieldNames<
972
956
  TContract extends Contract<SqlStorage>,
@@ -1019,14 +1003,12 @@ export type MutationUpdateInput<
1019
1003
  ModelName extends string,
1020
1004
  > = Partial<DefaultModelRow<TContract, ModelName>> & RelationMutationFields<TContract, ModelName>;
1021
1005
 
1022
- type ModelRelations<TContract extends Contract<SqlStorage>, ModelName extends string> = ModelDef<
1023
- TContract,
1024
- ModelName
1025
- > extends { readonly relations: infer R }
1026
- ? R extends Record<string, unknown>
1027
- ? R
1028
- : Record<string, never>
1029
- : Record<string, never>;
1006
+ type ModelRelations<TContract extends Contract<SqlStorage>, ModelName extends string> =
1007
+ ModelDef<TContract, ModelName> extends { readonly relations: infer R }
1008
+ ? R extends Record<string, unknown>
1009
+ ? R
1010
+ : Record<string, never>
1011
+ : Record<string, never>;
1030
1012
 
1031
1013
  type ExactRecord<T> =
1032
1014
  T extends Record<string, unknown>
@@ -1056,13 +1038,14 @@ export type RelatedModelName<
1056
1038
  TContract extends Contract<SqlStorage>,
1057
1039
  ModelName extends string,
1058
1040
  RelName extends string,
1059
- > = RelationsOf<TContract, ModelName> extends infer Rels
1060
- ? Rels extends Record<string, unknown>
1061
- ? RelName extends keyof Rels
1062
- ? RelationModelName<Rels[RelName]>
1041
+ > =
1042
+ RelationsOf<TContract, ModelName> extends infer Rels
1043
+ ? Rels extends Record<string, unknown>
1044
+ ? RelName extends keyof Rels
1045
+ ? RelationModelName<Rels[RelName]>
1046
+ : never
1063
1047
  : never
1064
- : never
1065
- : never;
1048
+ : never;
1066
1049
 
1067
1050
  type RelationCardinalityFromRelation<Relation> = Relation extends {
1068
1051
  readonly cardinality: infer Cardinality extends RelationCardinalityTag;
@@ -1074,13 +1057,14 @@ export type RelationCardinality<
1074
1057
  TContract extends Contract<SqlStorage>,
1075
1058
  ModelName extends string,
1076
1059
  RelName extends string,
1077
- > = RelationsOf<TContract, ModelName> extends infer Rels
1078
- ? Rels extends Record<string, unknown>
1079
- ? RelName extends keyof Rels
1080
- ? RelationCardinalityFromRelation<Rels[RelName]>
1060
+ > =
1061
+ RelationsOf<TContract, ModelName> extends infer Rels
1062
+ ? Rels extends Record<string, unknown>
1063
+ ? RelName extends keyof Rels
1064
+ ? RelationCardinalityFromRelation<Rels[RelName]>
1065
+ : '1:N'
1081
1066
  : '1:N'
1082
- : '1:N'
1083
- : '1:N';
1067
+ : '1:N';
1084
1068
 
1085
1069
  type RelationLocalFieldColumns<
1086
1070
  TContract extends Contract<SqlStorage>,
@@ -1134,36 +1118,38 @@ type IsToOneRelationNullable<
1134
1118
  TContract extends Contract<SqlStorage>,
1135
1119
  ModelName extends string,
1136
1120
  RelName extends string,
1137
- > = ModelTableName<TContract, ModelName> extends infer TableName extends string
1138
- ? TableName extends keyof TContract['storage']['tables']
1139
- ? TContract['storage']['tables'][TableName] extends infer Table extends StorageTable
1140
- ? RelationsOf<TContract, ModelName> extends infer Rels extends Record<string, unknown>
1141
- ? RelName extends keyof Rels
1142
- ? RelationLocalFieldColumns<
1143
- TContract,
1144
- ModelName,
1145
- Rels[RelName]
1146
- > extends infer Cols extends readonly string[]
1147
- ? IsFkSideOfRelation<Table, Cols> extends true
1148
- ? AnyColumnNullable<Table['columns'], Cols>
1121
+ > =
1122
+ ModelTableName<TContract, ModelName> extends infer TableName extends string
1123
+ ? TableName extends keyof TContract['storage']['tables']
1124
+ ? TContract['storage']['tables'][TableName] extends infer Table extends StorageTable
1125
+ ? RelationsOf<TContract, ModelName> extends infer Rels extends Record<string, unknown>
1126
+ ? RelName extends keyof Rels
1127
+ ? RelationLocalFieldColumns<
1128
+ TContract,
1129
+ ModelName,
1130
+ Rels[RelName]
1131
+ > extends infer Cols extends readonly string[]
1132
+ ? IsFkSideOfRelation<Table, Cols> extends true
1133
+ ? AnyColumnNullable<Table['columns'], Cols>
1134
+ : true
1149
1135
  : true
1150
1136
  : true
1151
1137
  : true
1152
1138
  : true
1153
1139
  : true
1154
- : true
1155
- : true;
1140
+ : true;
1156
1141
 
1157
1142
  export type IncludeRelationValue<
1158
1143
  TContract extends Contract<SqlStorage>,
1159
1144
  ModelName extends string,
1160
1145
  RelName extends string,
1161
1146
  IncludedRow,
1162
- > = RelationCardinality<TContract, ModelName, RelName> extends '1:1' | 'N:1'
1163
- ? IsToOneRelationNullable<TContract, ModelName, RelName> extends true
1164
- ? IncludedRow | null
1165
- : IncludedRow
1166
- : IncludedRow[];
1147
+ > =
1148
+ RelationCardinality<TContract, ModelName, RelName> extends '1:1' | 'N:1'
1149
+ ? IsToOneRelationNullable<TContract, ModelName, RelName> extends true
1150
+ ? IncludedRow | null
1151
+ : IncludedRow
1152
+ : IncludedRow[];
1167
1153
 
1168
1154
  export type CollectionModelName<TContract extends Contract<SqlStorage>> =
1169
1155
  keyof ModelsOf<TContract> & string;