Я учу graphql
и комбинирую его с typeorm
.Я написал запрос с graphql
и мне было интересно, если это правильный способ объединить сущность typeorm
и тип graphql
для одной и той же сущности.Или у меня есть способ использовать сущность typeorm
вместо типа graphql
в качестве возвращаемого значения?
Сущность typeorm
и тип graphql
имеют абсолютно одинаковые поля, по существуточно такие же.Только один из них определен как тип graphql
, а другой использует декораторы * 1013. *
Я также не уверен, как эта магия возвращает TestType
из Promise<Test>
.Где TestType
- это тип graphql
, а <Test>
- это typeorm
сущность.
import {GraphQLFieldConfig, GraphQLNonNull} from "graphql/type/definition";
import {TestType} from "../type/TestType";
import {GraphQLID} from "graphql";
import {IGraphQLContext} from "../IGraphQLContext";
export const Test: GraphQLFieldConfig<any, IGraphQLContext, any> = {
// notice the type to return here is the graphql type
type: new GraphQLNonNull(TestType),
description: "A query for a test",
args: {
id: {
type: new GraphQLNonNull(GraphQLID),
description: "The ID for the desired test"
}
},
async resolve (source, args, context) {
// getTest(...) here returns a promise<Test> where Test is a typeorm entity
return context.db.testDAO.getTest(args.id);
}
};