From 856aad353d90ae6702b90fad11b627e8fe7f3def Mon Sep 17 00:00:00 2001 From: Arda TANRIKULU Date: Tue, 17 May 2022 17:21:05 +0300 Subject: [PATCH] ... --- .changeset/fifty-experts-unite.md | 16 ++++++++++++++++ packages/load/src/schema.ts | 8 ++++---- packages/schema/src/makeExecutableSchema.ts | 12 ++++++------ packages/schema/src/types.ts | 7 +------ 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/.changeset/fifty-experts-unite.md b/.changeset/fifty-experts-unite.md index ead60b86679..f9479682f93 100644 --- a/.changeset/fifty-experts-unite.md +++ b/.changeset/fifty-experts-unite.md @@ -49,3 +49,19 @@ mergeSchemas({ }) ``` +`makeExecutableSchema` no longer takes `parseOptions` and you can pass those options directly; + +```ts +makeExecutableSchema({ + typeDefs: ``, + parseOptions: { + assumeValid: true, + } +}) + +// After +makeExecutableSchema({ + typeDefs: ``, + assumeValid: true, +}) +``` diff --git a/packages/load/src/schema.ts b/packages/load/src/schema.ts index a021232ba46..5c26ddb4576 100644 --- a/packages/load/src/schema.ts +++ b/packages/load/src/schema.ts @@ -1,13 +1,13 @@ import { loadTypedefs, LoadTypedefsOptions, UnnormalizedTypeDefPointer, loadTypedefsSync } from './load-typedefs'; import { GraphQLSchema, BuildSchemaOptions, Source as GraphQLSource, print, lexicographicSortSchema } from 'graphql'; import { OPERATION_KINDS } from './documents'; -import { mergeSchemas, MergeSchemasConfig } from '@graphql-tools/schema'; +import { makeExecutableSchema, IExecutableSchemaDefinition } from '@graphql-tools/schema'; import { getResolversFromSchema, IResolvers, Source, TypeSource } from '@graphql-tools/utils'; import { extractExtensionsFromSchema, SchemaExtensions } from '@graphql-tools/merge'; export type LoadSchemaOptions = BuildSchemaOptions & LoadTypedefsOptions & - Partial & { + Partial & { /** * Adds a list of Sources in to `extensions.sources` * @@ -32,7 +32,7 @@ export async function loadSchema( const { typeDefs, resolvers, schemaExtensions } = collectSchemaParts(sources); - const schema = mergeSchemas({ + const schema = makeExecutableSchema({ ...options, typeDefs, resolvers, @@ -62,7 +62,7 @@ export function loadSchemaSync( const { typeDefs, resolvers, schemaExtensions } = collectSchemaParts(sources); - const schema = mergeSchemas({ + const schema = makeExecutableSchema({ ...options, typeDefs, resolvers, diff --git a/packages/schema/src/makeExecutableSchema.ts b/packages/schema/src/makeExecutableSchema.ts index f9c63c38b82..3d121d9c23e 100644 --- a/packages/schema/src/makeExecutableSchema.ts +++ b/packages/schema/src/makeExecutableSchema.ts @@ -54,11 +54,11 @@ export function makeExecutableSchema({ typeDefs, resolvers = {}, resolverValidationOptions = {}, - parseOptions = {}, inheritResolversFromInterfaces = false, pruningOptions, updateResolversInPlace = false, schemaExtensions, + ...otherOptions }: IExecutableSchemaDefinition) { // Validate and clean up arguments if (typeof resolverValidationOptions !== 'object') { @@ -73,15 +73,15 @@ export function makeExecutableSchema({ if (isSchema(typeDefs)) { schema = typeDefs; - } else if (parseOptions?.commentDescriptions) { + } else if (otherOptions?.commentDescriptions) { const mergedTypeDefs = mergeTypeDefs(typeDefs, { - ...parseOptions, + ...otherOptions, commentDescriptions: true, }); - schema = buildSchema(mergedTypeDefs, parseOptions); + schema = buildSchema(mergedTypeDefs, otherOptions); } else { - const mergedTypeDefs = mergeTypeDefs(typeDefs, parseOptions); - schema = buildASTSchema(mergedTypeDefs, parseOptions); + const mergedTypeDefs = mergeTypeDefs(typeDefs, otherOptions); + schema = buildASTSchema(mergedTypeDefs, otherOptions); } if (pruningOptions) { diff --git a/packages/schema/src/types.ts b/packages/schema/src/types.ts index a5a917ddbb1..c83f11a2244 100644 --- a/packages/schema/src/types.ts +++ b/packages/schema/src/types.ts @@ -11,7 +11,7 @@ import { BuildSchemaOptions } from 'graphql'; /** * Configuration object for creating an executable schema */ -export interface IExecutableSchemaDefinition { +export interface IExecutableSchemaDefinition extends BuildSchemaOptions, GraphQLParseOptions { /** * The type definitions used to create the schema */ @@ -24,11 +24,6 @@ export interface IExecutableSchemaDefinition { * Additional options for validating the provided resolvers */ resolverValidationOptions?: IResolverValidationOptions; - /** - * Additional options for parsing the type definitions if they are provided - * as a string - */ - parseOptions?: BuildSchemaOptions & GraphQLParseOptions; /** * GraphQL object types that implement interfaces will inherit any missing * resolvers from their interface types defined in the `resolvers` object