@pothos/plugin-prisma 3.35.7 → 3.36.0
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/CHANGELOG.md +15 -0
- package/README.md +232 -41
- package/dts/connection-helpers.d.ts +34 -0
- package/dts/connection-helpers.d.ts.map +1 -0
- package/dts/global-types.d.ts +15 -6
- package/dts/global-types.d.ts.map +1 -1
- package/dts/index.d.ts +3 -0
- package/dts/index.d.ts.map +1 -1
- package/dts/node-ref.d.ts +1 -1
- package/dts/node-ref.d.ts.map +1 -1
- package/dts/object-ref.d.ts +2 -0
- package/dts/object-ref.d.ts.map +1 -1
- package/dts/prisma-field-builder.d.ts +5 -2
- package/dts/prisma-field-builder.d.ts.map +1 -1
- package/dts/types.d.ts +8 -6
- package/dts/types.d.ts.map +1 -1
- package/dts/util/map-query.d.ts.map +1 -1
- package/esm/connection-helpers.d.ts +34 -0
- package/esm/connection-helpers.d.ts.map +1 -0
- package/esm/connection-helpers.js +26 -0
- package/esm/connection-helpers.js.map +1 -0
- package/esm/field-builder.js +9 -15
- package/esm/field-builder.js.map +1 -1
- package/esm/global-types.d.ts +15 -6
- package/esm/global-types.d.ts.map +1 -1
- package/esm/global-types.js.map +1 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -1
- package/esm/node-ref.d.ts +1 -1
- package/esm/node-ref.d.ts.map +1 -1
- package/esm/node-ref.js +1 -1
- package/esm/node-ref.js.map +1 -1
- package/esm/object-ref.d.ts +2 -0
- package/esm/object-ref.d.ts.map +1 -1
- package/esm/object-ref.js +4 -0
- package/esm/object-ref.js.map +1 -1
- package/esm/prisma-field-builder.d.ts +5 -2
- package/esm/prisma-field-builder.d.ts.map +1 -1
- package/esm/prisma-field-builder.js +2 -2
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/schema-builder.js +18 -3
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts +8 -6
- package/esm/types.d.ts.map +1 -1
- package/esm/util/datamodel.js +1 -1
- package/esm/util/datamodel.js.map +1 -1
- package/esm/util/map-query.d.ts.map +1 -1
- package/esm/util/map-query.js +21 -21
- package/esm/util/map-query.js.map +1 -1
- package/lib/connection-helpers.js +41 -0
- package/lib/connection-helpers.js.map +1 -0
- package/lib/field-builder.js +8 -14
- package/lib/field-builder.js.map +1 -1
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -1
- package/lib/node-ref.js +1 -1
- package/lib/node-ref.js.map +1 -1
- package/lib/object-ref.js +4 -0
- package/lib/object-ref.js.map +1 -1
- package/lib/prisma-field-builder.js +1 -1
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/schema-builder.js +18 -8
- package/lib/schema-builder.js.map +1 -1
- package/lib/util/datamodel.js +1 -1
- package/lib/util/datamodel.js.map +1 -1
- package/lib/util/map-query.js +21 -20
- package/lib/util/map-query.js.map +1 -1
- package/package.json +10 -10
- package/src/connection-helpers.ts +65 -0
- package/src/field-builder.ts +23 -23
- package/src/global-types.ts +50 -14
- package/src/index.ts +3 -0
- package/src/node-ref.ts +1 -4
- package/src/object-ref.ts +7 -0
- package/src/prisma-field-builder.ts +38 -25
- package/src/schema-builder.ts +38 -3
- package/src/types.ts +35 -16
- package/src/util/datamodel.ts +1 -1
- package/src/util/map-query.ts +32 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 3.36.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8841e861: Add builder.prismaObjectField(s) method to extend prisma objects and simplify defining
|
|
8
|
+
circular relationships
|
|
9
|
+
- cd1c0502: Add support for nested lists
|
|
10
|
+
- 99bc6574: Add initial support for reusable prisma connections
|
|
11
|
+
|
|
12
|
+
## 3.35.8
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- d4d41796: Update dev dependencies
|
|
17
|
+
|
|
3
18
|
## 3.35.7
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -373,7 +373,7 @@ query {
|
|
|
373
373
|
|
|
374
374
|
the `me` `prismaField` would receive something like the following as its query parameter:
|
|
375
375
|
|
|
376
|
-
```
|
|
376
|
+
```typescript
|
|
377
377
|
{
|
|
378
378
|
include: {
|
|
379
379
|
posts: {
|
|
@@ -470,8 +470,10 @@ builder.prismaObject('User', {
|
|
|
470
470
|
|
|
471
471
|
Prisma supports querying for
|
|
472
472
|
[relation counts](https://www.prisma.io/docs/concepts/components/prisma-client/aggregation-grouping-summarizing#count-relations)
|
|
473
|
-
which allow including counts for relations along side other `includes`.
|
|
474
|
-
support any filters on the counts, but can give a total count for a relation.
|
|
473
|
+
which allow including counts for relations along side other `includes`. Before prisma 4.2.0, this
|
|
474
|
+
does not support any filters on the counts, but can give a total count for a relation. Starting from
|
|
475
|
+
prisma 4.2.0, filters on relation count are available under the `filteredRelationCount` preview
|
|
476
|
+
feature flag.
|
|
475
477
|
|
|
476
478
|
```typescript
|
|
477
479
|
builder.prismaObject('User', {
|
|
@@ -566,7 +568,7 @@ builder.prismaObject('User', {
|
|
|
566
568
|
The following is a slightly contrived example, but shows how arguments can be used when creating a
|
|
567
569
|
selection for a field:
|
|
568
570
|
|
|
569
|
-
```
|
|
571
|
+
```typescript
|
|
570
572
|
const PostDraft = builder.prismaObject('Post', {
|
|
571
573
|
fields: (t) => ({
|
|
572
574
|
title: t.exposeString('title'),
|
|
@@ -590,6 +592,64 @@ const PostDraft = builder.prismaObject('Post', {
|
|
|
590
592
|
});
|
|
591
593
|
```
|
|
592
594
|
|
|
595
|
+
## Extending prisma objects
|
|
596
|
+
|
|
597
|
+
The normal `builder.objectField(s)` methods can be used to extend prisma objects, but do not support
|
|
598
|
+
using selections, or exposing fields not in the default selection. To use these features, you can
|
|
599
|
+
use
|
|
600
|
+
|
|
601
|
+
`builder.prismaObjectField` or `builder.prismaObjectFields` instead.
|
|
602
|
+
|
|
603
|
+
## Selecting fields from a nested GraphQL field
|
|
604
|
+
|
|
605
|
+
By default, the `nestedSelection` function will return selections based on the type of the current
|
|
606
|
+
field. `nestedSelection` can also be used to get a selection from a field nested deeper inside other
|
|
607
|
+
fields. This is useful if the field returns a type that is not a `prismaObject`, but a field nested
|
|
608
|
+
inside the returned type is.
|
|
609
|
+
|
|
610
|
+
```typescript
|
|
611
|
+
const PostRef = builder.prismaObject('Post', {
|
|
612
|
+
fields: (t) => ({
|
|
613
|
+
title: t.exposeString('title'),
|
|
614
|
+
content: t.exposeString('content'),
|
|
615
|
+
author: t.relation('author'),
|
|
616
|
+
}),
|
|
617
|
+
});
|
|
618
|
+
|
|
619
|
+
const PostPreview = builder.objectRef<Post>('PostPreview').implement({
|
|
620
|
+
fields: (t) => ({
|
|
621
|
+
post: t.field({
|
|
622
|
+
type: PostRef,
|
|
623
|
+
resolve: (post) => post,
|
|
624
|
+
}),
|
|
625
|
+
preview: t.string({
|
|
626
|
+
nullable: true,
|
|
627
|
+
resolve: (post) => post.content?.slice(10),
|
|
628
|
+
}),
|
|
629
|
+
}),
|
|
630
|
+
});
|
|
631
|
+
|
|
632
|
+
builder.prismaObject('User', {
|
|
633
|
+
fields: (t) => ({
|
|
634
|
+
id: t.exposeID('id'),
|
|
635
|
+
postPreviews: t.field({
|
|
636
|
+
select: (args, ctx, nestedSelection) => ({
|
|
637
|
+
posts: nestedSelection(
|
|
638
|
+
{
|
|
639
|
+
// limit the number of postPreviews to load
|
|
640
|
+
take: 2,
|
|
641
|
+
},
|
|
642
|
+
// Look at the selections in postPreviews.post to determine what relations/fields to select
|
|
643
|
+
['post'],
|
|
644
|
+
),
|
|
645
|
+
}),
|
|
646
|
+
type: [PostPreview],
|
|
647
|
+
resolve: (user) => user.posts,
|
|
648
|
+
}),
|
|
649
|
+
}),
|
|
650
|
+
});
|
|
651
|
+
```
|
|
652
|
+
|
|
593
653
|
## Indirect relations (eg. Join tables)
|
|
594
654
|
|
|
595
655
|
If you want to define a GraphQL field that directly exposes data from a nested relationship (many to
|
|
@@ -625,7 +685,7 @@ model PostMedia {
|
|
|
625
685
|
|
|
626
686
|
You can define a media field that can pre-load the correct relations based on the graphql query:
|
|
627
687
|
|
|
628
|
-
```
|
|
688
|
+
```typescript
|
|
629
689
|
const PostDraft = builder.prismaObject('Post', {
|
|
630
690
|
fields: (t) => ({
|
|
631
691
|
title: t.exposeString('title'),
|
|
@@ -660,54 +720,158 @@ const Media = builder.prismaObject('Media', {
|
|
|
660
720
|
});
|
|
661
721
|
```
|
|
662
722
|
|
|
663
|
-
##
|
|
723
|
+
## Indirect relations as connections
|
|
664
724
|
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
fields. This is useful if the field returns a type that is not a `prismaObject`, but a field nested
|
|
668
|
-
inside the returned type is.
|
|
725
|
+
Creating connections from indirect relations is a little more involved, but can be acheived using
|
|
726
|
+
`prismaConnectionHelpers` with a normal `t.connection` field:
|
|
669
727
|
|
|
670
|
-
```
|
|
671
|
-
|
|
728
|
+
```typescript
|
|
729
|
+
// Create a prisma object for the node type of your connection
|
|
730
|
+
const Media = builder.prismaObject('Media', {
|
|
731
|
+
select: {
|
|
732
|
+
id: true,
|
|
733
|
+
},
|
|
672
734
|
fields: (t) => ({
|
|
673
|
-
|
|
674
|
-
content: t.exposeString('content'),
|
|
675
|
-
author: t.relation('author'),
|
|
735
|
+
url: t.exposeString('url'),
|
|
676
736
|
}),
|
|
677
737
|
});
|
|
678
738
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
739
|
+
// Create connection helpers for the media type. This will allow you
|
|
740
|
+
// to use the normal t.connection with a prisma type
|
|
741
|
+
const mediaConnectionHelpers = prismaConnectionHelpers(
|
|
742
|
+
builder,
|
|
743
|
+
Media, // you can also reference the prisma model by string name
|
|
744
|
+
{
|
|
745
|
+
cursor: 'id',
|
|
746
|
+
// additional/optional options
|
|
747
|
+
maxSize: 100,
|
|
748
|
+
defaultSize: 20,
|
|
749
|
+
},
|
|
750
|
+
);
|
|
751
|
+
|
|
752
|
+
builder.prismaObjectField('Post', 'mediaConnection', (t) =>
|
|
753
|
+
t.connection({
|
|
754
|
+
type: Media,
|
|
755
|
+
// or if you don't have the `ref` you can get it from the helper
|
|
756
|
+
type: mediaConnectionHelpers.ref,
|
|
757
|
+
// since we are not using t.relatedConnection we need to manually
|
|
758
|
+
// include the selections for our connection
|
|
759
|
+
select: (args, ctx, nestedSelection) => ({
|
|
760
|
+
media: {
|
|
761
|
+
// this turns connection args into `cursor` and `take` for prisma
|
|
762
|
+
// to enable pagination
|
|
763
|
+
...mediaConnectionHelpers.getQuery(args, ctx),
|
|
764
|
+
// this is the selection for the join table
|
|
765
|
+
select: {
|
|
766
|
+
// this is the selection for the nodes from the join table
|
|
767
|
+
media: nestedSelection(
|
|
768
|
+
{
|
|
769
|
+
// you can add additional selections for the node type here if needed
|
|
770
|
+
},
|
|
771
|
+
// This tells pothos what field in the query
|
|
772
|
+
// we want to use to find nested selections
|
|
773
|
+
['edges', 'node'],
|
|
774
|
+
),
|
|
775
|
+
},
|
|
776
|
+
},
|
|
688
777
|
}),
|
|
778
|
+
resolve: (post, args, ctx) =>
|
|
779
|
+
// This helper takes a list of nodes and formats them for the connection
|
|
780
|
+
mediaConnectionHelpers.resolve(
|
|
781
|
+
// map results to the list of nodes
|
|
782
|
+
post.media.map(({ media }) => media),
|
|
783
|
+
args,
|
|
784
|
+
ctx,
|
|
785
|
+
),
|
|
689
786
|
}),
|
|
787
|
+
);
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
## Sharing Connections objects
|
|
791
|
+
|
|
792
|
+
You can create reusable connection objects by using `builder.connectionObject`.
|
|
793
|
+
|
|
794
|
+
These connection objects can be used with `t.prismaConnection`, `t.relatedConnection`, or
|
|
795
|
+
`t.connection`
|
|
796
|
+
|
|
797
|
+
Shared edges can also be created using `t.edgeObject`
|
|
798
|
+
|
|
799
|
+
```typescript
|
|
800
|
+
const CommentConnection = builder.connectionObject({
|
|
801
|
+
type: Comment,
|
|
802
|
+
// or
|
|
803
|
+
type: commentConnectionHelpers.ref,
|
|
804
|
+
name: 'CommentConnection',
|
|
690
805
|
});
|
|
691
806
|
|
|
692
|
-
builder.prismaObject('
|
|
807
|
+
builder.prismaObject('Post', {
|
|
693
808
|
fields: (t) => ({
|
|
694
809
|
id: t.exposeID('id'),
|
|
695
|
-
|
|
810
|
+
...
|
|
811
|
+
commentsConnection: t.relatedConnection(
|
|
812
|
+
'comments',
|
|
813
|
+
{ cursor: 'id' },
|
|
814
|
+
// The connection object ref can be passed in place of the connection objectoptions
|
|
815
|
+
CommentConnection
|
|
816
|
+
),
|
|
817
|
+
}),
|
|
818
|
+
});
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
## Extending connection edges
|
|
822
|
+
|
|
823
|
+
In some cases you may want to expose some data from an indirect connection on the edge object.
|
|
824
|
+
|
|
825
|
+
```typescript
|
|
826
|
+
const mediaConnectionHelpers = prismaConnectionHelpers(builder, Media, {
|
|
827
|
+
cursor: 'id',
|
|
828
|
+
});
|
|
829
|
+
|
|
830
|
+
builder.prismaObjectFields('Post', (t) => ({
|
|
831
|
+
manualMediaConnection: t.connection(
|
|
832
|
+
{
|
|
833
|
+
type: Media,
|
|
696
834
|
select: (args, ctx, nestedSelection) => ({
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
835
|
+
media: {
|
|
836
|
+
...mediaConnectionHelpers.getQuery(args, ctx),
|
|
837
|
+
select: {
|
|
838
|
+
// Select additional fields from the join table
|
|
839
|
+
createdAt: true,
|
|
840
|
+
media: nestedSelection({}, ['edges', 'node']),
|
|
701
841
|
},
|
|
702
|
-
|
|
703
|
-
['post'],
|
|
704
|
-
),
|
|
842
|
+
},
|
|
705
843
|
}),
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
844
|
+
resolve: (post, args, ctx) => {
|
|
845
|
+
const connection = mediaConnectionHelpers.resolve(
|
|
846
|
+
post.media.map(({ media }) => media),
|
|
847
|
+
args,
|
|
848
|
+
ctx,
|
|
849
|
+
);
|
|
850
|
+
|
|
851
|
+
// Manually map the additional fields from the join table to the edge objects
|
|
852
|
+
return {
|
|
853
|
+
...connection,
|
|
854
|
+
edges: connection.edges.map((edge, i) => ({
|
|
855
|
+
createdAt: edge.createdAt,
|
|
856
|
+
...edge!,
|
|
857
|
+
})),
|
|
858
|
+
};
|
|
859
|
+
},
|
|
860
|
+
},
|
|
861
|
+
{},
|
|
862
|
+
// options for the edge object
|
|
863
|
+
{
|
|
864
|
+
// define the additional fields on the edge object
|
|
865
|
+
fields: (edge) => ({
|
|
866
|
+
createdAt: edge.field({
|
|
867
|
+
type: 'DateTime',
|
|
868
|
+
// the parent shape for edge fields is inferred from the connections resolve function
|
|
869
|
+
resolve: (media) => media.createdAt,
|
|
870
|
+
}),
|
|
871
|
+
}),
|
|
872
|
+
},
|
|
873
|
+
),
|
|
874
|
+
}));
|
|
711
875
|
```
|
|
712
876
|
|
|
713
877
|
## Type variants
|
|
@@ -738,9 +902,6 @@ const Viewer = builder.prismaObject('User', {
|
|
|
738
902
|
});
|
|
739
903
|
|
|
740
904
|
const User = builder.prismaNode('User', {
|
|
741
|
-
// Testing that user is typed correctly
|
|
742
|
-
authScopes: (user) => !!user.id,
|
|
743
|
-
interfaces: [Named],
|
|
744
905
|
id: {
|
|
745
906
|
resolve: (user) => user.id,
|
|
746
907
|
},
|
|
@@ -782,6 +943,36 @@ const Viewer = builder.prismaObject('User', {
|
|
|
782
943
|
});
|
|
783
944
|
```
|
|
784
945
|
|
|
946
|
+
You may run into circular reference issues if you use 2 prisma object refs to reference each other.
|
|
947
|
+
To avoid this, you can split out the field definition for one of the relationships using
|
|
948
|
+
`builder.prismaObjectField`
|
|
949
|
+
|
|
950
|
+
```typescript
|
|
951
|
+
const Viewer = builder.prismaObject('User', {
|
|
952
|
+
variant: 'Viewer',
|
|
953
|
+
fields: (t) => ({
|
|
954
|
+
id: t.exposeID('id'),
|
|
955
|
+
user: t.variant(User),
|
|
956
|
+
});
|
|
957
|
+
});
|
|
958
|
+
|
|
959
|
+
const User = builder.prismaNode('User', {
|
|
960
|
+
interfaces: [Named],
|
|
961
|
+
id: {
|
|
962
|
+
resolve: (user) => user.id,
|
|
963
|
+
},
|
|
964
|
+
fields: (t) => ({
|
|
965
|
+
email: t.exposeString('email'),
|
|
966
|
+
}),
|
|
967
|
+
});
|
|
968
|
+
|
|
969
|
+
// Viewer references the `User` ref in its field definiton,
|
|
970
|
+
// referencing the `User` in fields would cause a circular type issue
|
|
971
|
+
builder.prismaObjectField(Viewer, 'user', t.variant(User));
|
|
972
|
+
```
|
|
973
|
+
|
|
974
|
+
This same workaround applies when defining relations using variants.
|
|
975
|
+
|
|
785
976
|
## Relay integration
|
|
786
977
|
|
|
787
978
|
This plugin has extensive integration with the
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SchemaTypes } from '@pothos/core';
|
|
2
|
+
import { PrismaObjectRef } from './object-ref';
|
|
3
|
+
import type { PrismaModelTypes } from './types';
|
|
4
|
+
export declare const prismaModelKey: unique symbol;
|
|
5
|
+
export declare function prismaConnectionHelpers<Types extends SchemaTypes, RefOrType extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'], Model extends PrismaModelTypes = RefOrType extends PrismaObjectRef<infer T> ? T & PrismaModelTypes : Types['PrismaTypes'][RefOrType & keyof Types['PrismaTypes']] & PrismaModelTypes, Shape = RefOrType extends PrismaObjectRef<PrismaModelTypes, infer T> ? T : Model['Shape']>(builder: PothosSchemaTypes.SchemaBuilder<Types>, refOrType: RefOrType, options: {
|
|
6
|
+
cursor: string & keyof Model['WhereUnique'];
|
|
7
|
+
defaultSize?: number | ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
8
|
+
maxSize?: number | ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
9
|
+
}): {
|
|
10
|
+
ref: PrismaObjectRef<Model, {}>;
|
|
11
|
+
resolve: (list: (Shape & {})[], args: PothosSchemaTypes.DefaultConnectionArguments, ctx: Types['Context']) => {
|
|
12
|
+
totalCount: number | (() => import("@pothos/core").MaybePromise<number>) | undefined;
|
|
13
|
+
edges: ({
|
|
14
|
+
cursor: string;
|
|
15
|
+
node: Shape & {};
|
|
16
|
+
} | null)[];
|
|
17
|
+
pageInfo: {
|
|
18
|
+
startCursor: string | undefined;
|
|
19
|
+
endCursor: string | undefined;
|
|
20
|
+
hasPreviousPage: boolean;
|
|
21
|
+
hasNextPage: boolean;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
getQuery: (args: PothosSchemaTypes.DefaultConnectionArguments, ctx: Types['Context']) => {
|
|
25
|
+
take: number;
|
|
26
|
+
skip: number;
|
|
27
|
+
cursor?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
cursor: Record<string, unknown>;
|
|
30
|
+
take: number;
|
|
31
|
+
skip: number;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=connection-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-helpers.d.ts","sourceRoot":"","sources":["../src/connection-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAShD,eAAO,MAAM,cAAc,eAAsC,CAAC;AAElE,wBAAgB,uBAAuB,CACrC,KAAK,SAAS,WAAW,EACzB,SAAS,SAAS,eAAe,CAAC,gBAAgB,CAAC,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,EAChF,KAAK,SAAS,gBAAgB,GAAG,SAAS,SAAS,eAAe,CAAC,MAAM,CAAC,CAAC,GACvE,CAAC,GAAG,gBAAgB,GACpB,KAAK,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,gBAAgB,EACnF,KAAK,GAAG,SAAS,SAAS,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAEzF,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5C,WAAW,CAAC,EACR,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IAC9E,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;CAC9F;;oBAQO,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,QACd,kBAAkB,0BAA0B,OAC7C,KAAK,CAAC,SAAS,CAAC;;;;;;;;;;;;;qBAKC,kBAAkB,0BAA0B,OAAO,KAAK,CAAC,SAAS,CAAC;;;;;;;;;EAoB5F"}
|
package/dts/global-types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { FieldKind, FieldNullability, FieldRef, InputFieldMap, InputFieldRef, InterfaceParam, NormalizeArgs, OutputType, PluginName, SchemaTypes, ShapeFromTypeParam, TypeParam } from '@pothos/core';
|
|
2
|
-
import PrismaNodeRef from './node-ref';
|
|
1
|
+
import { FieldKind, FieldMap, FieldNullability, FieldRef, InputFieldMap, InputFieldRef, InterfaceParam, NormalizeArgs, OutputType, PluginName, SchemaTypes, ShapeFromTypeParam, TypeParam } from '@pothos/core';
|
|
2
|
+
import { PrismaNodeRef } from './node-ref';
|
|
3
3
|
import { prismaModelKey, PrismaObjectRef } from './object-ref';
|
|
4
4
|
import { PrismaObjectFieldBuilder as InternalPrismaObjectFieldBuilder } from './prisma-field-builder';
|
|
5
|
-
import { PrismaClient, PrismaConnectionFieldOptions, PrismaFieldOptions, PrismaFieldWithInputOptions, PrismaModelTypes, PrismaNodeOptions, PrismaObjectFieldOptions, PrismaObjectTypeOptions, ShapeFromConnection, ShapeFromSelection } from './types';
|
|
5
|
+
import { PrismaClient, PrismaConnectionFieldOptions, PrismaFieldOptions, PrismaFieldWithInputOptions, prismaModelName, PrismaModelTypes, PrismaNodeOptions, PrismaObjectFieldOptions, PrismaObjectTypeOptions, ShapeFromConnection, ShapeFromSelection } from './types';
|
|
6
6
|
import type { PrismaPlugin } from '.';
|
|
7
7
|
declare global {
|
|
8
8
|
export namespace PothosSchemaTypes {
|
|
@@ -49,6 +49,12 @@ declare global {
|
|
|
49
49
|
select: Select;
|
|
50
50
|
include: Include;
|
|
51
51
|
}>>;
|
|
52
|
+
prismaObjectField: <Type extends PrismaObjectRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'], Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer M, {}> ? M : Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes, Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S> ? S : Model['Shape'] & {
|
|
53
|
+
[prismaModelName]?: Type;
|
|
54
|
+
}>(type: Type, fieldName: string, field: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldRef) => void;
|
|
55
|
+
prismaObjectFields: <Type extends PrismaObjectRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'], Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer M, {}> ? M : Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes, Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S> ? S : Model['Shape'] & {
|
|
56
|
+
[prismaModelName]?: Type;
|
|
57
|
+
}>(type: Type, fields: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldMap) => void;
|
|
52
58
|
prismaNode: 'relay' extends PluginName ? <Name extends keyof Types['PrismaTypes'], Interfaces extends InterfaceParam<Types>[] = [], Include = unknown, Select = unknown, UniqueField = unknown>(name: Name, options: PrismaNodeOptions<Types, Types['PrismaTypes'][Name] & PrismaModelTypes, Interfaces, Include, Select, ShapeFromSelection<PrismaModelTypes & Types['PrismaTypes'][Name], {
|
|
53
59
|
select: Select;
|
|
54
60
|
include: Include;
|
|
@@ -59,9 +65,12 @@ declare global {
|
|
|
59
65
|
}
|
|
60
66
|
interface RootFieldBuilder<Types extends SchemaTypes, ParentShape, Kind extends FieldKind = FieldKind> {
|
|
61
67
|
prismaField: <Args extends InputFieldMap, TypeParam extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'] | [keyof Types['PrismaTypes']] | [PrismaObjectRef<PrismaModelTypes>], Nullable extends FieldNullability<Type>, ResolveShape, ResolveReturnShape, Type extends TypeParam extends [unknown] ? [ObjectRef<Model['Shape']>] : ObjectRef<Model['Shape']>, Model extends PrismaModelTypes = PrismaModelTypes & (TypeParam extends [keyof Types['PrismaTypes']] ? Types['PrismaTypes'][TypeParam[0]] : TypeParam extends [PrismaObjectRef<PrismaModelTypes>] ? TypeParam[0][typeof prismaModelKey] : TypeParam extends PrismaObjectRef<PrismaModelTypes> ? TypeParam[typeof prismaModelKey] : TypeParam extends keyof Types['PrismaTypes'] ? Types['PrismaTypes'][TypeParam] : never)>(options: PrismaFieldOptions<Types, ParentShape, TypeParam, Model, Type, Args, Nullable, ResolveShape, ResolveReturnShape, Kind>) => FieldRef<ShapeFromTypeParam<Types, Type, Nullable>>;
|
|
62
|
-
prismaConnection: 'relay' extends PluginName ? <Type extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'], Nullable extends boolean, ResolveReturnShape, Args extends InputFieldMap = {}, Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer T> ? T : PrismaModelTypes & Types['PrismaTypes'][Type & keyof Types['PrismaTypes']]>(options: PrismaConnectionFieldOptions<Types, ParentShape, Type, Model, ObjectRef<Model['Shape']>, Nullable, Args, ResolveReturnShape, Kind>, ...args: NormalizeArgs<[
|
|
63
|
-
connectionOptions: ConnectionObjectOptions<Types, ObjectRef<
|
|
64
|
-
edgeOptions: ConnectionEdgeObjectOptions<Types, ObjectRef<
|
|
68
|
+
prismaConnection: 'relay' extends PluginName ? <Type extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'], Nullable extends boolean, ResolveReturnShape, Args extends InputFieldMap = {}, Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer T> ? T : PrismaModelTypes & Types['PrismaTypes'][Type & keyof Types['PrismaTypes']], Shape = Type extends PrismaObjectRef<PrismaModelTypes, infer S> ? S : Model['Shape']>(options: PrismaConnectionFieldOptions<Types, ParentShape, Type, Model, ObjectRef<Model['Shape']>, Nullable, Args, ResolveReturnShape, Kind>, ...args: NormalizeArgs<[
|
|
69
|
+
connectionOptions: ConnectionObjectOptions<Types, ObjectRef<Shape>, false, false, ResolveReturnShape> | ObjectRef<ShapeFromConnection<ConnectionShapeHelper<Types, Shape, false>>>,
|
|
70
|
+
edgeOptions: ConnectionEdgeObjectOptions<Types, ObjectRef<Shape>, false, ResolveReturnShape> | ObjectRef<{
|
|
71
|
+
cursor: string;
|
|
72
|
+
node?: Shape | null | undefined;
|
|
73
|
+
}>
|
|
65
74
|
], 0>) => FieldRef<ShapeFromConnection<ConnectionShapeHelper<Types, Model['Shape'], Nullable>>> : '@pothos/plugin-relay is required to use this method';
|
|
66
75
|
prismaFieldWithInput: 'prisma' extends PluginName ? <Fields extends Record<string, InputFieldRef<unknown, 'InputObject'>>, TypeParam extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'] | [keyof Types['PrismaTypes']] | [PrismaObjectRef<PrismaModelTypes>], Type extends TypeParam extends [unknown] ? [ObjectRef<Model['Shape']>] : ObjectRef<Model['Shape']>, ResolveShape, ResolveReturnShape, ArgRequired extends boolean, Args extends Record<string, InputFieldRef<unknown, 'Arg'>> = {}, Nullable extends FieldNullability<Type> = Types['DefaultFieldNullability'], InputName extends string = 'input', Model extends PrismaModelTypes = PrismaModelTypes & (TypeParam extends [keyof Types['PrismaTypes']] ? Types['PrismaTypes'][TypeParam[0]] : TypeParam extends [PrismaObjectRef<PrismaModelTypes>] ? TypeParam[0][typeof prismaModelKey] : TypeParam extends PrismaObjectRef<PrismaModelTypes> ? TypeParam[typeof prismaModelKey] : TypeParam extends keyof Types['PrismaTypes'] ? Types['PrismaTypes'][TypeParam] : never)>(options: PrismaFieldWithInputOptions<Types, ParentShape, Kind, Args, Fields, TypeParam, Model, Type, Nullable, InputName, ResolveShape, ResolveReturnShape, boolean extends ArgRequired ? (Types & {
|
|
67
76
|
WithInputArgRequired: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-types.d.ts","sourceRoot":"","sources":["../src/global-types.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,aAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"global-types.d.ts","sourceRoot":"","sources":["../src/global-types.ts"],"names":[],"mappings":"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"}
|
package/dts/index.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ import { GraphQLFieldResolver } from 'graphql';
|
|
|
4
4
|
import SchemaBuilder, { BasePlugin, BuildCache, PothosOutputFieldConfig, SchemaTypes } from '@pothos/core';
|
|
5
5
|
import { PrismaModelTypes } from './types';
|
|
6
6
|
import { queryFromInfo } from './util/map-query';
|
|
7
|
+
export { prismaConnectionHelpers } from './connection-helpers';
|
|
8
|
+
export { PrismaNodeRef } from './node-ref';
|
|
9
|
+
export { PrismaObjectRef } from './object-ref';
|
|
7
10
|
export * from './types';
|
|
8
11
|
declare const pluginName: "prisma";
|
|
9
12
|
export default pluginName;
|
package/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,aAAa,EAAE,EACpB,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAEzE,cAAc,SAAS,CAAC;AAExB,QAAA,MAAM,UAAU,UAAoB,CAAC;AAErC,eAAe,UAAU,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,oBAAY,wBAAwB,CAClC,KAAK,SAAS,WAAW,EACzB,WAAW,IACT,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAE7D,eAAO,MAAM,kBAAkB,6IAMvB,MAAM,mIAEoE,CAAC;AAEnF,qBAAa,YAAY,CAAC,KAAK,SAAS,WAAW,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC;gBAChE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;IAI3B,mBAAmB,CAC1B,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,uBAAuB,CAAC,KAAK,CAAC,GAAG,IAAI;IA4B/B,WAAW,CAClB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC1E,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CA6C3D"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,aAAa,EAAE,EACpB,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,cAAc,SAAS,CAAC;AAExB,QAAA,MAAM,UAAU,UAAoB,CAAC;AAErC,eAAe,UAAU,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,oBAAY,wBAAwB,CAClC,KAAK,SAAS,WAAW,EACzB,WAAW,IACT,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAE7D,eAAO,MAAM,kBAAkB,6IAMvB,MAAM,mIAEoE,CAAC;AAEnF,qBAAa,YAAY,CAAC,KAAK,SAAS,WAAW,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC;gBAChE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;IAI3B,mBAAmB,CAC1B,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,uBAAuB,CAAC,KAAK,CAAC,GAAG,IAAI;IA4B/B,WAAW,CAClB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC1E,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CA6C3D"}
|
package/dts/node-ref.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PrismaObjectRef } from './object-ref';
|
|
2
2
|
import type { PrismaModelTypes } from './types';
|
|
3
|
-
export
|
|
3
|
+
export declare class PrismaNodeRef<Model extends PrismaModelTypes, T> extends PrismaObjectRef<Model, T> {
|
|
4
4
|
}
|
|
5
5
|
//# sourceMappingURL=node-ref.d.ts.map
|
package/dts/node-ref.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-ref.d.ts","sourceRoot":"","sources":["../src/node-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"node-ref.d.ts","sourceRoot":"","sources":["../src/node-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,qBAAa,aAAa,CAAC,KAAK,SAAS,gBAAgB,EAAE,CAAC,CAAE,SAAQ,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;CAAG"}
|
package/dts/object-ref.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare const prismaModelKey: unique symbol;
|
|
|
4
4
|
export declare class PrismaObjectRef<Model extends PrismaModelTypes, T = {}> extends ObjectRef<T> {
|
|
5
5
|
[prismaModelKey]: Model;
|
|
6
6
|
[abstractReturnShapeKey]: WithBrand<T>;
|
|
7
|
+
modelName: string;
|
|
8
|
+
constructor(name: string, modelName: string);
|
|
7
9
|
addBrand<V extends T | T[]>(value: V): V extends T[] ? {
|
|
8
10
|
[K in keyof V]: WithBrand<V[K]>;
|
|
9
11
|
} : WithBrand<V>;
|
package/dts/object-ref.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-ref.d.ts","sourceRoot":"","sources":["../src/object-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiB,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3D,eAAO,MAAM,cAAc,eAAsC,CAAC;AAElE,qBAAa,eAAe,CAAC,KAAK,SAAS,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC,cAAc,CAAC,EAAG,KAAK,CAAC;IACzB,CAAC,sBAAsB,CAAC,EAAG,SAAS,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"object-ref.d.ts","sourceRoot":"","sources":["../src/object-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiB,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3D,eAAO,MAAM,cAAc,eAAsC,CAAC;AAElE,qBAAa,eAAe,CAAC,KAAK,SAAS,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC,cAAc,CAAC,EAAG,KAAK,CAAC;IACzB,CAAC,sBAAsB,CAAC,EAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;gBAEN,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM3C,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EACxB,KAAK,EAAE,CAAC,GACP,CAAC,SAAS,CAAC,EAAE,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAYrE,QAAQ,CAAC,KAAK,EAAE,OAAO;CAQxB"}
|
|
@@ -48,8 +48,11 @@ export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model e
|
|
|
48
48
|
Context: ContextForAuth<Types, Scopes>;
|
|
49
49
|
}, Model, NeedsResolve, Shape> : '@pothos/plugin-scope-auth is required to use this method';
|
|
50
50
|
relatedConnection: 'relay' extends PluginName ? <Field extends Model['ListRelations'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(field: Field, options: RelatedConnectionOptions<Types, Model, Field, Nullable, Args, NeedsResolve>, ...args: NormalizeArgs<[
|
|
51
|
-
connectionOptions: PothosSchemaTypes.ConnectionObjectOptions<Types, ObjectRef<Shape>, false, false, ResolveReturnShape
|
|
52
|
-
edgeOptions: PothosSchemaTypes.ConnectionEdgeObjectOptions<Types, ObjectRef<Shape>, false, ResolveReturnShape>
|
|
51
|
+
connectionOptions: PothosSchemaTypes.ConnectionObjectOptions<Types, ObjectRef<Shape>, false, false, ResolveReturnShape> | ObjectRef<ShapeFromConnection<PothosSchemaTypes.ConnectionShapeHelper<Types, Shape, false>>>,
|
|
52
|
+
edgeOptions: PothosSchemaTypes.ConnectionEdgeObjectOptions<Types, ObjectRef<Shape>, false, ResolveReturnShape> | ObjectRef<{
|
|
53
|
+
cursor: string;
|
|
54
|
+
node?: ShapeFromTypeParam<Types, Model['Shape'], false>;
|
|
55
|
+
}>
|
|
53
56
|
], 0>) => FieldRef<ShapeFromConnection<PothosSchemaTypes.ConnectionShapeHelper<Types, Shape, Nullable>>> : '@pothos/plugin-relay is required to use this method';
|
|
54
57
|
constructor(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, model: string, fieldMap: FieldMap);
|
|
55
58
|
relation<Field extends Model['RelationName'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(name: Field, ...allArgs: NormalizeArgs<[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"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"}
|
package/dts/types.d.ts
CHANGED
|
@@ -55,12 +55,7 @@ export declare type ShapeFromCount<Selection> = Selection extends true ? {
|
|
|
55
55
|
declare type RelationShapeFromInclude<Model extends PrismaModelTypes, Include> = Normalize<{
|
|
56
56
|
[K in SelectedKeys<Include> as K extends Model['RelationName'] ? K : never]: K extends keyof Model['Relations'] ? Model['Relations'][K]['Shape'] extends unknown[] ? ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]>[] : ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]> : unknown;
|
|
57
57
|
}>;
|
|
58
|
-
export declare type
|
|
59
|
-
description?: string | false;
|
|
60
|
-
fields?: PrismaObjectFieldsShape<Types, Model, FindUnique extends null ? true : false, Shape & (FindUnique extends null ? {} : {
|
|
61
|
-
[prismaModelName]?: Model['Name'];
|
|
62
|
-
}), Select>;
|
|
63
|
-
} & ({
|
|
58
|
+
export declare type PrismaObjectRefOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, FindUnique, Include, Select, Shape extends object> = NameOrVariant & ({
|
|
64
59
|
include?: Include & Model['Include'];
|
|
65
60
|
select?: never;
|
|
66
61
|
findUnique?: FindUnique & (((parent: Shape, context: Types['Context']) => Model['WhereUnique']) | null);
|
|
@@ -69,6 +64,13 @@ export declare type PrismaObjectTypeOptions<Types extends SchemaTypes, Model ext
|
|
|
69
64
|
include?: never;
|
|
70
65
|
findUnique?: (parent: Shape, context: Types['Context']) => Model['WhereUnique'];
|
|
71
66
|
});
|
|
67
|
+
export declare type PrismaObjectImplementationOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, Interfaces extends InterfaceParam<Types>[], FindUnique, Select, Shape extends object> = Omit<PothosSchemaTypes.ObjectTypeOptions<Types, Shape> | PothosSchemaTypes.ObjectTypeWithInterfaceOptions<Types, Shape, Interfaces>, 'fields' | 'description'> & {
|
|
68
|
+
description?: string | false;
|
|
69
|
+
fields?: PrismaObjectFieldsShape<Types, Model, FindUnique extends null ? true : false, Shape & (FindUnique extends null ? {} : {
|
|
70
|
+
[prismaModelName]?: Model['Name'];
|
|
71
|
+
}), Select>;
|
|
72
|
+
};
|
|
73
|
+
export declare type PrismaObjectTypeOptions<Types extends SchemaTypes, Model extends PrismaModelTypes, Interfaces extends InterfaceParam<Types>[], FindUnique, Include, Select, Shape extends object> = PrismaObjectRefOptions<Types, Model, FindUnique, Include, Select, Shape> & PrismaObjectImplementationOptions<Types, Model, Interfaces, FindUnique, Select, Shape>;
|
|
72
74
|
declare type NameOrVariant = {
|
|
73
75
|
name?: never;
|
|
74
76
|
variant?: string;
|