@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/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +19 -19
- package/src/collection-internal-types.ts +8 -7
- package/src/types.ts +231 -245
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
|
-
> =
|
|
245
|
-
|
|
246
|
-
?
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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> =
|
|
401
|
-
TContract,
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
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
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
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
|
-
> =
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
?
|
|
444
|
-
?
|
|
445
|
-
|
|
446
|
-
DefaultModelRow<TContract,
|
|
447
|
-
|
|
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> =
|
|
527
|
-
TContract,
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
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
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
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
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
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
|
|
557
|
-
|
|
558
|
-
|
|
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> =
|
|
563
|
-
TContract,
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
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
|
-
> =
|
|
587
|
-
|
|
588
|
-
? TContract
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
?
|
|
594
|
-
? TContract['storage']['tables'][TableName]['columns']
|
|
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
|
-
> =
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
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
|
-
> =
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
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
|
-
> =
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
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
|
-
> =
|
|
656
|
-
|
|
657
|
-
?
|
|
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
|
-
> =
|
|
708
|
-
|
|
709
|
-
? Column
|
|
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
|
-
:
|
|
714
|
-
|
|
715
|
-
|
|
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> =
|
|
752
|
-
TContract,
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
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
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
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
|
-
> =
|
|
782
|
-
|
|
783
|
-
?
|
|
784
|
-
|
|
785
|
-
|
|
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
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
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
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
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
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
}
|
|
813
|
-
|
|
814
|
-
|
|
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
|
-
> =
|
|
868
|
-
|
|
869
|
-
?
|
|
870
|
-
|
|
871
|
-
|
|
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
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
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> =
|
|
1023
|
-
TContract,
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
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
|
-
> =
|
|
1060
|
-
|
|
1061
|
-
?
|
|
1062
|
-
?
|
|
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
|
-
> =
|
|
1078
|
-
|
|
1079
|
-
?
|
|
1080
|
-
?
|
|
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
|
-
> =
|
|
1138
|
-
|
|
1139
|
-
? TContract['storage']['tables']
|
|
1140
|
-
?
|
|
1141
|
-
?
|
|
1142
|
-
?
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
?
|
|
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
|
-
> =
|
|
1163
|
-
|
|
1164
|
-
?
|
|
1165
|
-
|
|
1166
|
-
|
|
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;
|