2023-11-23 16:12:36 +00:00
|
|
|
import { GraphQLEnumType, GraphQLInputObjectType, GraphQLInt, GraphQLObjectType, GraphQLSchema, GraphQLString } from 'graphql';
|
|
|
|
|
|
|
|
const TypeVars = new GraphQLObjectType({
|
|
|
|
name: 'Vars',
|
|
|
|
fields: () => ({
|
|
|
|
stringVar: { type: GraphQLString },
|
|
|
|
intVar: { type: GraphQLInt },
|
|
|
|
}),
|
|
|
|
});
|
|
|
|
|
|
|
|
const InputVars = new GraphQLInputObjectType({
|
|
|
|
name: 'VarsInput',
|
|
|
|
fields: () => ({
|
|
|
|
stringVar: { type: GraphQLString },
|
|
|
|
intVar: { type: GraphQLInt },
|
|
|
|
}),
|
|
|
|
});
|
2022-06-22 15:29:27 +00:00
|
|
|
|
2023-08-10 11:37:37 +00:00
|
|
|
export const schema = new GraphQLSchema({
|
|
|
|
query: new GraphQLObjectType({
|
|
|
|
name: 'Query',
|
|
|
|
fields: {
|
|
|
|
hello: {
|
|
|
|
type: GraphQLString,
|
|
|
|
resolve: () => 'Hello world!',
|
|
|
|
},
|
|
|
|
bearer: {
|
|
|
|
type: new GraphQLEnumType({
|
|
|
|
name: 'RingBearer',
|
|
|
|
description: 'Characters who at any time bore a Ring of Power.',
|
|
|
|
values: {
|
|
|
|
Frodo: { value: 0 },
|
|
|
|
Bilbo: { value: 1 },
|
|
|
|
Thror: { value: 2 },
|
|
|
|
Gandalf: { value: 3 },
|
|
|
|
Galadriel: { value: 4 },
|
|
|
|
WitchKing: { value: 5 },
|
|
|
|
Nazgul: { value: 6 },
|
|
|
|
Elrond: { value: 7 },
|
|
|
|
GilGalad: { value: 8 },
|
|
|
|
Cirdan: { value: 9 },
|
|
|
|
Thrain: { value: 10 },
|
|
|
|
},
|
|
|
|
}),
|
|
|
|
resolve: () => 3,
|
|
|
|
},
|
2023-11-23 16:12:36 +00:00
|
|
|
echoNum: {
|
|
|
|
type: GraphQLInt,
|
|
|
|
args: {
|
|
|
|
'intVar': { type: GraphQLInt },
|
|
|
|
},
|
|
|
|
resolve: () => 777,
|
|
|
|
},
|
|
|
|
echoVars: {
|
|
|
|
type: TypeVars,
|
|
|
|
args: {
|
|
|
|
'vars': { type: InputVars },
|
|
|
|
},
|
|
|
|
resolve: vars => vars,
|
|
|
|
},
|
2023-08-10 11:37:37 +00:00
|
|
|
},
|
|
|
|
}),
|
|
|
|
});
|