@pothos/plugin-prisma 3.35.8 → 3.37.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 +247 -39
- package/dts/connection-helpers.d.ts +40 -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 +4 -1
- 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 +7 -4
- package/dts/prisma-field-builder.d.ts.map +1 -1
- package/dts/types.d.ts +35 -33
- package/dts/types.d.ts.map +1 -1
- package/dts/util/cursors.d.ts +11 -5
- package/dts/util/cursors.d.ts.map +1 -1
- package/dts/util/map-query.d.ts.map +1 -1
- package/dts/util/relation-map.d.ts +1 -1
- package/dts/util/relation-map.d.ts.map +1 -1
- package/dts/util/selections.d.ts +1 -1
- package/dts/util/selections.d.ts.map +1 -1
- package/esm/connection-helpers.d.ts +40 -0
- package/esm/connection-helpers.d.ts.map +1 -0
- package/esm/connection-helpers.js +58 -0
- package/esm/connection-helpers.js.map +1 -0
- package/esm/field-builder.js +19 -25
- package/esm/field-builder.js.map +1 -1
- package/esm/generator.js +4 -4
- package/esm/generator.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 +4 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +8 -5
- package/esm/index.js.map +1 -1
- package/esm/model-loader.js +9 -9
- package/esm/model-loader.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 +7 -4
- package/esm/prisma-field-builder.d.ts.map +1 -1
- package/esm/prisma-field-builder.js +14 -14
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/schema-builder.js +31 -16
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts +35 -33
- package/esm/types.d.ts.map +1 -1
- package/esm/util/cursors.d.ts +11 -5
- package/esm/util/cursors.d.ts.map +1 -1
- package/esm/util/cursors.js +33 -29
- package/esm/util/cursors.js.map +1 -1
- package/esm/util/datamodel.js +1 -1
- package/esm/util/datamodel.js.map +1 -1
- package/esm/util/get-client.js +2 -2
- package/esm/util/get-client.js.map +1 -1
- package/esm/util/loader-map.js +2 -2
- package/esm/util/loader-map.js.map +1 -1
- package/esm/util/map-query.d.ts.map +1 -1
- package/esm/util/map-query.js +38 -38
- package/esm/util/map-query.js.map +1 -1
- package/esm/util/relation-map.d.ts +1 -1
- package/esm/util/relation-map.d.ts.map +1 -1
- package/esm/util/selections.d.ts +1 -1
- package/esm/util/selections.d.ts.map +1 -1
- package/esm/util/selections.js +2 -2
- package/esm/util/selections.js.map +1 -1
- package/lib/connection-helpers.js +73 -0
- package/lib/connection-helpers.js.map +1 -0
- package/lib/field-builder.js +18 -24
- package/lib/field-builder.js.map +1 -1
- package/lib/generator.js +4 -4
- package/lib/generator.js.map +1 -1
- package/lib/index.js +11 -5
- package/lib/index.js.map +1 -1
- package/lib/model-loader.js +9 -9
- package/lib/model-loader.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 +13 -13
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/schema-builder.js +31 -21
- package/lib/schema-builder.js.map +1 -1
- package/lib/util/cursors.js +33 -29
- package/lib/util/cursors.js.map +1 -1
- package/lib/util/datamodel.js +1 -1
- package/lib/util/datamodel.js.map +1 -1
- package/lib/util/get-client.js +2 -2
- package/lib/util/get-client.js.map +1 -1
- package/lib/util/loader-map.js +2 -2
- package/lib/util/loader-map.js.map +1 -1
- package/lib/util/map-query.js +38 -37
- package/lib/util/map-query.js.map +1 -1
- package/lib/util/selections.js +2 -2
- package/lib/util/selections.js.map +1 -1
- package/package.json +10 -10
- package/src/connection-helpers.ts +122 -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/cursors.ts +8 -1
- 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.37.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 26774fa0: Rewrite prismaConnectionHelpers to properly work with indirect relations
|
|
8
|
+
|
|
9
|
+
## 3.36.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 8841e861: Add builder.prismaObjectField(s) method to extend prisma objects and simplify defining
|
|
14
|
+
circular relationships
|
|
15
|
+
- cd1c0502: Add support for nested lists
|
|
16
|
+
- 99bc6574: Add initial support for reusable prisma connections
|
|
17
|
+
|
|
3
18
|
## 3.35.8
|
|
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,56 +720,177 @@ 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
|
-
|
|
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
|
+
'PostMedia', // this should be the the join table
|
|
744
|
+
{
|
|
745
|
+
cursor: 'id',
|
|
746
|
+
select: (nodeSelection) => ({
|
|
747
|
+
// select the relation to the media node using the nodeSelection function
|
|
748
|
+
media: nodeSelection({
|
|
749
|
+
// optionally specify fields to select by default for the node
|
|
750
|
+
select: {
|
|
751
|
+
id: true,
|
|
752
|
+
posts: true,
|
|
753
|
+
},
|
|
754
|
+
}),
|
|
684
755
|
}),
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
756
|
+
// resolve the node from the edge
|
|
757
|
+
resolveNode: (postMedia) => postMedia.media,
|
|
758
|
+
// additional/optional options
|
|
759
|
+
maxSize: 100,
|
|
760
|
+
defaultSize: 20,
|
|
761
|
+
},
|
|
762
|
+
);
|
|
763
|
+
|
|
764
|
+
builder.prismaObjectField('Post', 'mediaConnection', (t) =>
|
|
765
|
+
t.connection({
|
|
766
|
+
// The type for the Node
|
|
767
|
+
type: Media,
|
|
768
|
+
// since we are not using t.relatedConnection we need to manually
|
|
769
|
+
// include the selections for our connection
|
|
770
|
+
select: (args, ctx, nestedSelection) => ({
|
|
771
|
+
media: mediaConnectionHelpers.getQuery(args, ctx, nestedSelection),
|
|
688
772
|
}),
|
|
773
|
+
resolve: (post, args, ctx) =>
|
|
774
|
+
// This helper takes a list of nodes and formats them for the connection
|
|
775
|
+
mediaConnectionHelpers.resolve(
|
|
776
|
+
// map results to the list of edges
|
|
777
|
+
post.media,
|
|
778
|
+
args,
|
|
779
|
+
ctx,
|
|
780
|
+
),
|
|
689
781
|
}),
|
|
782
|
+
);
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
The above example assumes that you are paginating a relation to a join table, where the pagination
|
|
786
|
+
args are applied based on the relation to that join table, but the nodes themselves are nested
|
|
787
|
+
deeper.
|
|
788
|
+
|
|
789
|
+
`prismaConnectionHelpers` can also be used to manually create a connection where the edge and
|
|
790
|
+
connections share the same model, and pagination happens directly on a relation to nodes type (even
|
|
791
|
+
if that relation is nested).
|
|
792
|
+
|
|
793
|
+
```ts
|
|
794
|
+
const commentConnectionHelpers = prismaConnectionHelpers(builder, 'Comment', {
|
|
795
|
+
cursor: 'id',
|
|
690
796
|
});
|
|
691
797
|
|
|
692
|
-
builder.prismaObject('
|
|
798
|
+
const SelectPost = builder.prismaObject('Post', {
|
|
693
799
|
fields: (t) => ({
|
|
694
|
-
|
|
695
|
-
|
|
800
|
+
title: t.exposeString('title'),
|
|
801
|
+
comments: t.connection({
|
|
802
|
+
type: commentConnectionHelpers.ref,
|
|
696
803
|
select: (args, ctx, nestedSelection) => ({
|
|
697
|
-
|
|
698
|
-
{
|
|
699
|
-
// limit the number of postPreviews to load
|
|
700
|
-
take: 2,
|
|
701
|
-
},
|
|
702
|
-
// Look at the selections in postPreviews.post to determine what relations/fields to select
|
|
703
|
-
['post'],
|
|
704
|
-
),
|
|
804
|
+
comments: commentConnectionHelpers.getQuery(args, ctx, nestedSelection),
|
|
705
805
|
}),
|
|
706
|
-
|
|
707
|
-
resolve: (user) => user.posts,
|
|
806
|
+
resolve: (parent, args, ctx) => commentConnectionHelpers.resolve(parent.comments, args, ctx),
|
|
708
807
|
}),
|
|
709
808
|
}),
|
|
710
809
|
});
|
|
711
810
|
```
|
|
712
811
|
|
|
812
|
+
## Sharing Connections objects
|
|
813
|
+
|
|
814
|
+
You can create reusable connection objects by using `builder.connectionObject`.
|
|
815
|
+
|
|
816
|
+
These connection objects can be used with `t.prismaConnection`, `t.relatedConnection`, or
|
|
817
|
+
`t.connection`
|
|
818
|
+
|
|
819
|
+
Shared edges can also be created using `t.edgeObject`
|
|
820
|
+
|
|
821
|
+
```typescript
|
|
822
|
+
const CommentConnection = builder.connectionObject({
|
|
823
|
+
type: Comment,
|
|
824
|
+
// or
|
|
825
|
+
type: commentConnectionHelpers.ref,
|
|
826
|
+
name: 'CommentConnection',
|
|
827
|
+
});
|
|
828
|
+
|
|
829
|
+
builder.prismaObject('Post', {
|
|
830
|
+
fields: (t) => ({
|
|
831
|
+
id: t.exposeID('id'),
|
|
832
|
+
...
|
|
833
|
+
commentsConnection: t.relatedConnection(
|
|
834
|
+
'comments',
|
|
835
|
+
{ cursor: 'id' },
|
|
836
|
+
// The connection object ref can be passed in place of the connection objectoptions
|
|
837
|
+
CommentConnection
|
|
838
|
+
),
|
|
839
|
+
}),
|
|
840
|
+
});
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
## Extending connection edges
|
|
844
|
+
|
|
845
|
+
In some cases you may want to expose some data from an indirect connection on the edge object.
|
|
846
|
+
|
|
847
|
+
```typescript
|
|
848
|
+
const mediaConnectionHelpers = prismaConnectionHelpers(builder, 'PostMedia', {
|
|
849
|
+
cursor: 'id',
|
|
850
|
+
select: (nodeSelection) => ({
|
|
851
|
+
// select the relation to the media node using the nodeSelection function
|
|
852
|
+
media: nodeSelection({}),
|
|
853
|
+
// Select additional fields from the join table
|
|
854
|
+
createdAt: true,
|
|
855
|
+
}),
|
|
856
|
+
// resolve the node from the edge
|
|
857
|
+
resolveNode: (postMedia) => postMedia.media,
|
|
858
|
+
});
|
|
859
|
+
|
|
860
|
+
builder.prismaObjectFields('Post', (t) => ({
|
|
861
|
+
manualMediaConnection: t.connection(
|
|
862
|
+
{
|
|
863
|
+
type: Media,
|
|
864
|
+
select: (args, ctx, nestedSelection) => ({
|
|
865
|
+
media: mediaConnectionHelpers.getQuery(args, ctx, nestedSelection),
|
|
866
|
+
select: {
|
|
867
|
+
media: nestedSelection({}, ['edges', 'node']),
|
|
868
|
+
},
|
|
869
|
+
}),
|
|
870
|
+
|
|
871
|
+
resolve: (post, args, ctx) =>
|
|
872
|
+
mediaConnectionHelpers.resolve(
|
|
873
|
+
post.media.map(({ media }) => media),
|
|
874
|
+
args,
|
|
875
|
+
ctx,
|
|
876
|
+
),
|
|
877
|
+
},
|
|
878
|
+
{},
|
|
879
|
+
// options for the edge object
|
|
880
|
+
{
|
|
881
|
+
// define the additional fields on the edge object
|
|
882
|
+
fields: (edge) => ({
|
|
883
|
+
createdAt: edge.field({
|
|
884
|
+
type: 'DateTime',
|
|
885
|
+
// the parent shape for edge fields is inferred from the connections resolve function
|
|
886
|
+
resolve: (media) => media.createdAt,
|
|
887
|
+
}),
|
|
888
|
+
}),
|
|
889
|
+
},
|
|
890
|
+
),
|
|
891
|
+
}));
|
|
892
|
+
```
|
|
893
|
+
|
|
713
894
|
## Type variants
|
|
714
895
|
|
|
715
896
|
The prisma plugin supports defining multiple GraphQL types based on the same prisma model.
|
|
@@ -738,9 +919,6 @@ const Viewer = builder.prismaObject('User', {
|
|
|
738
919
|
});
|
|
739
920
|
|
|
740
921
|
const User = builder.prismaNode('User', {
|
|
741
|
-
// Testing that user is typed correctly
|
|
742
|
-
authScopes: (user) => !!user.id,
|
|
743
|
-
interfaces: [Named],
|
|
744
922
|
id: {
|
|
745
923
|
resolve: (user) => user.id,
|
|
746
924
|
},
|
|
@@ -782,6 +960,36 @@ const Viewer = builder.prismaObject('User', {
|
|
|
782
960
|
});
|
|
783
961
|
```
|
|
784
962
|
|
|
963
|
+
You may run into circular reference issues if you use 2 prisma object refs to reference each other.
|
|
964
|
+
To avoid this, you can split out the field definition for one of the relationships using
|
|
965
|
+
`builder.prismaObjectField`
|
|
966
|
+
|
|
967
|
+
```typescript
|
|
968
|
+
const Viewer = builder.prismaObject('User', {
|
|
969
|
+
variant: 'Viewer',
|
|
970
|
+
fields: (t) => ({
|
|
971
|
+
id: t.exposeID('id'),
|
|
972
|
+
user: t.variant(User),
|
|
973
|
+
});
|
|
974
|
+
});
|
|
975
|
+
|
|
976
|
+
const User = builder.prismaNode('User', {
|
|
977
|
+
interfaces: [Named],
|
|
978
|
+
id: {
|
|
979
|
+
resolve: (user) => user.id,
|
|
980
|
+
},
|
|
981
|
+
fields: (t) => ({
|
|
982
|
+
email: t.exposeString('email'),
|
|
983
|
+
}),
|
|
984
|
+
});
|
|
985
|
+
|
|
986
|
+
// Viewer references the `User` ref in its field definiton,
|
|
987
|
+
// referencing the `User` in fields would cause a circular type issue
|
|
988
|
+
builder.prismaObjectField(Viewer, 'user', t.variant(User));
|
|
989
|
+
```
|
|
990
|
+
|
|
991
|
+
This same workaround applies when defining relations using variants.
|
|
992
|
+
|
|
785
993
|
## Relay integration
|
|
786
994
|
|
|
787
995
|
This plugin has extensive integration with the
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { SchemaTypes } from '@pothos/core';
|
|
2
|
+
import { PrismaObjectRef } from './object-ref';
|
|
3
|
+
import type { PrismaModelTypes, ShapeFromSelection } from './types';
|
|
4
|
+
export declare const prismaModelKey: unique symbol;
|
|
5
|
+
export declare function prismaConnectionHelpers<Types extends SchemaTypes, RefOrType extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'], Select extends Model['Select'] & {}, 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'], EdgeShape = Model['Include'] extends Select ? Shape : ShapeFromSelection<Model, {
|
|
6
|
+
select: Select;
|
|
7
|
+
}>, NodeShape = EdgeShape>(builder: PothosSchemaTypes.SchemaBuilder<Types>, refOrType: RefOrType, options: {
|
|
8
|
+
cursor: string & keyof Model['WhereUnique'];
|
|
9
|
+
select?: (nestedSelection: <T extends {} | true>(selection?: T) => T) => Select;
|
|
10
|
+
defaultSize?: number | ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
11
|
+
maxSize?: number | ((args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => number);
|
|
12
|
+
resolveNode?: (edge: EdgeShape) => NodeShape;
|
|
13
|
+
}): {
|
|
14
|
+
ref: PrismaObjectRef<Model, {}>;
|
|
15
|
+
resolve: (list: (EdgeShape & {})[], args: PothosSchemaTypes.DefaultConnectionArguments, ctx: Types['Context']) => {
|
|
16
|
+
edges: (Omit<EdgeShape, 'cursor' | 'node'> & {
|
|
17
|
+
node: NodeShape;
|
|
18
|
+
cursor: string;
|
|
19
|
+
})[];
|
|
20
|
+
pageInfo: {
|
|
21
|
+
startCursor: string | null;
|
|
22
|
+
endCursor: string | null;
|
|
23
|
+
hasPreviousPage: boolean;
|
|
24
|
+
hasNextPage: boolean;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
select: {};
|
|
28
|
+
getQuery: (args: PothosSchemaTypes.DefaultConnectionArguments, ctx: Types['Context'], nestedSelection: <T extends true | {}>(selection?: T | undefined, path?: string[]) => T) => ({
|
|
29
|
+
take: number;
|
|
30
|
+
skip: number;
|
|
31
|
+
cursor?: undefined;
|
|
32
|
+
} | {
|
|
33
|
+
cursor: Record<string, unknown>;
|
|
34
|
+
take: number;
|
|
35
|
+
skip: number;
|
|
36
|
+
}) & (Model["Select"] extends Select ? {} : {
|
|
37
|
+
select: Select;
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
//# 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,EAAa,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAYpE,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,MAAM,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,EACnC,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,EACzF,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,MAAM,GACvC,KAAK,GACL,kBAAkB,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EACjD,SAAS,GAAG,SAAS,EAErB,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,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;IAChF,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;IAC7F,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC;CAC9C;;oBAcO,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,QAClB,kBAAkB,0BAA0B,OAC7C,KAAK,CAAC,SAAS,CAAC;eAUZ,CAAC,KAAK,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG;YAAE,IAAI,EAAE,SAAS,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,EAAE;kBACzE;YACR,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;YAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,eAAe,EAAE,OAAO,CAAC;YACzB,WAAW,EAAE,OAAO,CAAC;SACtB;;;qBAkBG,kBAAkB,0BAA0B,OAC7C,KAAK,CAAC,SAAS,CAAC,2EACwC,MAAM,EAAE;;;;;;;;;gBAkBlB,MAAM;;EAW5D"}
|
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,11 +4,14 @@ 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;
|
|
10
13
|
export { queryFromInfo };
|
|
11
|
-
export
|
|
14
|
+
export type PrismaObjectFieldBuilder<Types extends SchemaTypes, ParentShape> = PothosSchemaTypes.ObjectFieldBuilder<Types, ParentShape>;
|
|
12
15
|
export declare const ObjectFieldBuilder: new <Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object = Model["Shape"]>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>) => PothosSchemaTypes.PrismaObjectFieldBuilder<Types, Model, NeedsResolve, Shape>;
|
|
13
16
|
export declare class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
|
|
14
17
|
constructor(cache: BuildCache<Types>);
|
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,
|
|
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,MAAM,MAAM,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"}
|
|
@@ -5,10 +5,10 @@ import { FieldMap } from './util/relation-map';
|
|
|
5
5
|
declare const RootBuilder: {
|
|
6
6
|
new <Types extends SchemaTypes, Shape, Kind extends FieldKind>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, kind: FieldKind, graphqlKind: PothosSchemaTypes.PothosKindToGraphQLType[FieldKind]): PothosSchemaTypes.RootFieldBuilder<Types, Shape, Kind>;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
type ContextForAuth<Types extends SchemaTypes, Scopes extends {} = {}> = PothosSchemaTypes.ScopeAuthContextForAuth<Types, Scopes> extends {
|
|
9
9
|
Context: infer T;
|
|
10
10
|
} ? T extends object ? T : object : object;
|
|
11
|
-
|
|
11
|
+
type FieldAuthScopes<Types extends SchemaTypes, Parent, Args extends {} = {}> = PothosSchemaTypes.ScopeAuthFieldAuthScopes<Types, Parent, Args> extends {
|
|
12
12
|
Scopes: infer T;
|
|
13
13
|
} ? T : never;
|
|
14
14
|
export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object = Model['Shape']> extends RootBuilder<Types, Shape, 'PrismaObject'> {
|
|
@@ -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":"AAGA,OAAO,EACL,eAAe,EACf,SAAS,EACT,QAAQ,EACR,aAAa,EAGb,aAAa,EACb,SAAS,EACT,UAAU,EAEV,WAAW,EACX,kBAAkB,EAClB,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EAEpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AASjB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,QAAA,MAAM,WAAW,EAAE;IAEjB,KAAK,KAAK,SAAS,WAAW,EAAE,KAAK,EAAE,IAAI,SAAS,SAAS,EAC3D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAChE,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;CAC/B,CAAC;AAE9B,
|
|
1
|
+
{"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"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"}
|