MCPcopy
hub / github.com/ardatan/graphql-tools / makeExecutableSchema

Function makeExecutableSchema

packages/schema/src/makeExecutableSchema.ts:51–107  ·  view source on GitHub ↗
({
  typeDefs,
  resolvers = {},
  resolverValidationOptions = {},
  inheritResolversFromInterfaces = false,
  updateResolversInPlace = false,
  schemaExtensions,
  defaultFieldResolver,
  ...otherOptions
}: IExecutableSchemaDefinition<TContext>)

Source from the content-addressed store, hash-verified

49 * ```
50 */
51export function makeExecutableSchema<TContext = any>({
52 typeDefs,
53 resolvers = {},
54 resolverValidationOptions = {},
55 inheritResolversFromInterfaces = false,
56 updateResolversInPlace = false,
57 schemaExtensions,
58 defaultFieldResolver,
59 ...otherOptions
60}: IExecutableSchemaDefinition<TContext>) {
61 // Validate and clean up arguments
62 if (typeof resolverValidationOptions !== 'object') {
63 throw new Error('Expected `resolverValidationOptions` to be an object');
64 }
65
66 if (!typeDefs) {
67 throw new Error('Must provide typeDefs');
68 }
69
70 let schema: GraphQLSchema;
71
72 if (isSchema(typeDefs)) {
73 schema = typeDefs;
74 } else if (otherOptions?.commentDescriptions) {
75 const mergedTypeDefs = mergeTypeDefs(typeDefs, {
76 ...otherOptions,
77 commentDescriptions: true,
78 });
79 schema = buildSchema(mergedTypeDefs, otherOptions);
80 } else {
81 const mergedTypeDefs = mergeTypeDefs(typeDefs, otherOptions);
82 schema = buildASTSchema(mergedTypeDefs, otherOptions);
83 }
84
85 // We allow passing in an array of resolver maps, in which case we merge them
86
87 schema = addResolversToSchema({
88 schema,
89 resolvers: mergeResolvers(resolvers),
90 resolverValidationOptions,
91 inheritResolversFromInterfaces,
92 updateResolversInPlace,
93 defaultFieldResolver,
94 });
95
96 if (Object.keys(resolverValidationOptions).length > 0) {
97 assertResolversPresent(schema, resolverValidationOptions);
98 }
99
100 if (schemaExtensions) {
101 for (const schemaExtension of asArray(schemaExtensions)) {
102 applyExtensions(schema, schemaExtension);
103 }
104 }
105
106 return schema;
107}

Calls 6

mergeTypeDefsFunction · 0.90
mergeResolversFunction · 0.90
asArrayFunction · 0.90
applyExtensionsFunction · 0.90
addResolversToSchemaFunction · 0.85
assertResolversPresentFunction · 0.85

Tested by 2

assertOptionsErrorFunction · 0.72
assertFieldErrorFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…