Да, ты определенно мало понимаешь, что делаешь :)
И главная проблема в том, что ты даже не сращиваешь типы данных. То есть тут уже как раз не вопрос в более высокоуровневых библиотеках, а в базовах вещах в принципе. Вот твой код

export const createpost: FieldResolver<'Mutation', 'createPost'> = async ( _, args, ctx ) => { const title: string = args.where.title || {} const text: string = args.where.text || {} const post = await ctx.prisma.post.create({ data: { title, text, }, }) return { data: post, } }
Давай его разберем.
Вот у тебя идет вызов призма-метода на создание поста с передачей в него данных в data
const post = await ctx.prisma.post.create({ data: { title, text, }, })
А какой тип у data?


/** * Post create */ export type PostCreateArgs = { /** * Select specific fields to fetch from the Post * **/ select?: PostSelect | null /** * Choose, which related nodes to fetch as well. * **/ include?: PostInclude | null /** * The data needed to create a Post. * **/ data: XOR<PostCreateInput, PostUncheckedCreateInput> }

export type PostCreateInput = { id?: string createdAt?: Date | string updatedAt?: Date | string title: string text?: string | null mashroom?: MashroomCreateNestedOneWithoutPostsInput CreatedBy: UserCreateNestedOneWithoutPostsInput Likes?: LikeCreateNestedManyWithoutPostLikeInput }
Что ты там пытаешься передать? title и text. Какие у них типы?
title: string text?: string | null
То есть титл - обязательно строка должна быть, а text - не обязательный (undefined) или строка или null.

А что ты делаешь?

const title: string = args.where.title || {} const text: string = args.where.text || {}
То есть у тебя переменная равно переменная или Объект? А с чего вдруг объект? У тебя что, title или text может быть объектом? Уж в крайнем случае тебе надо было сделать так:
const title: string = args.where.title || "" const text: string = args.where.text || ""
Но title у тебя на вход итак обязательно строка, зачем его проверять?

Я тебе более того скажу: если бы ты даже вот так сделал:
const post = await ctx.prisma.post.create({ data: args.where, })
то у тебя не было бы проблем здесь с титлом и текстом, у тебя там другая ошибка:
Property 'CreatedBy' is missing in type '{ text?: string | null | undefined; title: string; }' but required in type 'PostCreateInput'.ts(2322) index.d.ts(10047, 5): 'CreatedBy' is declared here.
Призма ругается на то, что у тебя не передан CreatedBy, что вполне логично, ведь у тебя же это поле в призма-схеме обязательное. https://github.com/linklib/gribok-prisma/blob/94458e23ae35e773b31e1e9ae4a03ea4eb59baa5/prisma/schema.prisma#L125-L126

Откуда его взять? Это же текущий пользователь и его просто надо взять из контекста, проверив, что он есть.
const { currentUser } = ctx if (!currentUser) { throw new Error('Не был получен пользователь') }
Но и это еще не все. У тебя сам резолвер ругается:
Type '{ data: Post; }' is missing the following properties from type '{ id: MaybePromise<string>; createdAt: MaybePromise<Date>; updatedAt: MaybePromise<Date>; mashroomId: MaybePromise<string | null>; title: MaybePromise<...>; text: MaybePromise<...>; createdById: MaybePromise<...>; }': id, createdAt, updatedAt, mashroomId, and 3 more.ts(2322)
То есть то, что ты пытаешься вернуть, это не то, что он ожидает. Что у тебя в схему мутации прописано?
t.nonNull.field('createPost', { type: 'Post', args: { where: nonNull('PostCreateInput'), }, resolve: createpost, })
Возвращаемый type - Post. А ты что пытаешься вернуть в мутации?
return { data: post, }
Так почему же { data: post, } (что есть суть Объект со свойством post, тип которому Post)? А не просто post. То есть ты возвращаешь {post: Post} вместо Post.

Знаешь чем все это объясняется? Большими перерывами в практике и малыми объемами этой самой практики. Типы и прочее - это все ты оттачивал на фронте. И очень странно, что здесь ты начал с типами плавать.

Ну и еще момент: если в ctx.prisma.post.create ты передаешь data, то почему ты в параметры мутации прописал where? Нельзя было переименовать в data? Не будь таким великим последователем копипасты.


Изучай и исправляйся.