Skip to content

Commit 1fc1c78

Browse files
fix graphql example
1 parent 6e19a09 commit 1fc1c78

6 files changed

Lines changed: 67 additions & 12 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/* eslint-disable */
2+
import type { Prisma, User, Post } from "../prisma/generated/client";
3+
import type { PothosPrismaDatamodel } from "@pothos/plugin-prisma";
4+
export default interface PrismaTypes {
5+
User: {
6+
Name: "User";
7+
Shape: User;
8+
Include: Prisma.UserInclude;
9+
Select: Prisma.UserSelect;
10+
OrderBy: Prisma.UserOrderByWithRelationInput;
11+
WhereUnique: Prisma.UserWhereUniqueInput;
12+
Where: Prisma.UserWhereInput;
13+
Create: {};
14+
Update: {};
15+
RelationName: "posts";
16+
ListRelations: "posts";
17+
Relations: {
18+
posts: {
19+
Shape: Post[];
20+
Name: "Post";
21+
Nullable: false;
22+
};
23+
};
24+
};
25+
Post: {
26+
Name: "Post";
27+
Shape: Post;
28+
Include: Prisma.PostInclude;
29+
Select: Prisma.PostSelect;
30+
OrderBy: Prisma.PostOrderByWithRelationInput;
31+
WhereUnique: Prisma.PostWhereUniqueInput;
32+
Where: Prisma.PostWhereInput;
33+
Create: {};
34+
Update: {};
35+
RelationName: "author";
36+
ListRelations: never;
37+
Relations: {
38+
author: {
39+
Shape: User | null;
40+
Name: "User";
41+
Nullable: true;
42+
};
43+
};
44+
};
45+
}
46+
export function getDatamodel(): PothosPrismaDatamodel { return JSON.parse("{\"datamodel\":{\"models\":{\"User\":{\"fields\":[{\"type\":\"Int\",\"kind\":\"scalar\",\"name\":\"id\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":true,\"isUnique\":false,\"isId\":true,\"isUpdatedAt\":false},{\"type\":\"String\",\"kind\":\"scalar\",\"name\":\"email\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":false,\"isUnique\":true,\"isId\":false,\"isUpdatedAt\":false},{\"type\":\"String\",\"kind\":\"scalar\",\"name\":\"name\",\"isRequired\":false,\"isList\":false,\"hasDefaultValue\":false,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":false},{\"type\":\"Post\",\"kind\":\"object\",\"name\":\"posts\",\"isRequired\":true,\"isList\":true,\"hasDefaultValue\":false,\"isUnique\":false,\"isId\":false,\"relationName\":\"PostToUser\",\"relationFromFields\":[],\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueIndexes\":[]},\"Post\":{\"fields\":[{\"type\":\"Int\",\"kind\":\"scalar\",\"name\":\"id\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":true,\"isUnique\":false,\"isId\":true,\"isUpdatedAt\":false},{\"type\":\"DateTime\",\"kind\":\"scalar\",\"name\":\"createdAt\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":true,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":false},{\"type\":\"DateTime\",\"kind\":\"scalar\",\"name\":\"updatedAt\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":false,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":true},{\"type\":\"String\",\"kind\":\"scalar\",\"name\":\"title\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":false,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":false},{\"type\":\"String\",\"kind\":\"scalar\",\"name\":\"content\",\"isRequired\":false,\"isList\":false,\"hasDefaultValue\":false,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":false},{\"type\":\"Boolean\",\"kind\":\"scalar\",\"name\":\"published\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":true,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":false},{\"type\":\"Int\",\"kind\":\"scalar\",\"name\":\"viewCount\",\"isRequired\":true,\"isList\":false,\"hasDefaultValue\":true,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":false},{\"type\":\"User\",\"kind\":\"object\",\"name\":\"author\",\"isRequired\":false,\"isList\":false,\"hasDefaultValue\":false,\"isUnique\":false,\"isId\":false,\"relationName\":\"PostToUser\",\"relationFromFields\":[\"authorId\"],\"isUpdatedAt\":false},{\"type\":\"Int\",\"kind\":\"scalar\",\"name\":\"authorId\",\"isRequired\":false,\"isList\":false,\"hasDefaultValue\":false,\"isUnique\":false,\"isId\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueIndexes\":[]}}}}"); }

orm/graphql/prisma/schema.prisma

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ generator client {
55
}
66

77
generator pothos {
8-
provider = "prisma-pothos-types"
8+
provider = "prisma-pothos-types"
9+
clientOutput = "../prisma/generated/client"
10+
output = "../lib/pothos-prisma-types.ts"
11+
generateDatamodel = "true"
912
}
1013

1114
datasource db {

orm/graphql/src/builder.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import SchemaBuilder from '@pothos/core'
22
import PrismaPlugin from '@pothos/plugin-prisma'
3-
import type PrismaTypes from '@pothos/plugin-prisma/generated'
43
import { DateTimeResolver } from 'graphql-scalars'
4+
import type PrismaTypes from "../lib/pothos-prisma-types";
5+
import { getDatamodel } from "../lib/pothos-prisma-types";
56
import { prisma } from './db'
67

78
export const builder = new SchemaBuilder<{
@@ -17,6 +18,7 @@ export const builder = new SchemaBuilder<{
1718
plugins: [PrismaPlugin],
1819
prisma: {
1920
client: prisma,
21+
dmmf: getDatamodel(),
2022
},
2123
})
2224

orm/graphql/src/schema/post.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { prisma } from '../db'
33
import { UserUniqueInput } from './user'
44

55
builder.prismaObject('Post', {
6-
fields: (t) => ({
6+
fields: (t: any) => ({
77
id: t.exposeInt('id'),
88
createdAt: t.expose('createdAt', { type: 'DateTime' }),
99
updatedAt: t.expose('updatedAt', { type: 'DateTime' }),
@@ -64,11 +64,11 @@ builder.queryFields((t) => ({
6464
resolve: (query, parent, args) => {
6565
const or = args.searchString
6666
? {
67-
OR: [
68-
{ title: { contains: args.searchString } },
69-
{ content: { contains: args.searchString } },
70-
],
71-
}
67+
OR: [
68+
{ title: { contains: args.searchString } },
69+
{ content: { contains: args.searchString } },
70+
],
71+
}
7272
: {}
7373

7474
return prisma.post.findMany({

orm/graphql/src/schema/user.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { prisma } from '../db'
33
import { PostCreateInput } from './post'
44

55
builder.prismaObject('User', {
6-
fields: (t) => ({
6+
fields: (t: any) => ({
77
id: t.exposeInt('id'),
88
name: t.exposeString('name', { nullable: true }),
99
email: t.exposeString('email'),

orm/graphql/tsconfig.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
{
22
"compilerOptions": {
33
"outDir": "dist",
4-
"rootDir": "src",
4+
"rootDir": ".",
55
"esModuleInterop": true,
6-
"lib": ["esnext"],
6+
"lib": [
7+
"esnext"
8+
],
79
"strict": true,
810
},
9-
"include": ["src/**/*"]
11+
"include": [
12+
"src/**/*"
13+
]
1014
}

0 commit comments

Comments
 (0)