Skip to content

Commit

Permalink
...
Browse files Browse the repository at this point in the history
  • Loading branch information
ardatan committed May 17, 2022
1 parent 9801830 commit 895b67b
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 16 deletions.
16 changes: 16 additions & 0 deletions .changeset/fifty-experts-unite.md
Expand Up @@ -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,
})
```
8 changes: 4 additions & 4 deletions 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<MergeSchemasConfig> & {
Partial<IExecutableSchemaDefinition> & {
/**
* Adds a list of Sources in to `extensions.sources`
*
Expand All @@ -32,7 +32,7 @@ export async function loadSchema(

const { typeDefs, resolvers, schemaExtensions } = collectSchemaParts(sources);

const schema = mergeSchemas({
const schema = makeExecutableSchema({
...options,
typeDefs,
resolvers,
Expand Down Expand Up @@ -62,7 +62,7 @@ export function loadSchemaSync(

const { typeDefs, resolvers, schemaExtensions } = collectSchemaParts(sources);

const schema = mergeSchemas({
const schema = makeExecutableSchema({
...options,
typeDefs,
resolvers,
Expand Down
12 changes: 6 additions & 6 deletions packages/schema/src/makeExecutableSchema.ts
Expand Up @@ -54,11 +54,11 @@ export function makeExecutableSchema<TContext = any>({
typeDefs,
resolvers = {},
resolverValidationOptions = {},
parseOptions = {},
inheritResolversFromInterfaces = false,
pruningOptions,
updateResolversInPlace = false,
schemaExtensions,
...otherOptions
}: IExecutableSchemaDefinition<TContext>) {
// Validate and clean up arguments
if (typeof resolverValidationOptions !== 'object') {
Expand All @@ -73,15 +73,15 @@ export function makeExecutableSchema<TContext = any>({

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) {
Expand Down
7 changes: 1 addition & 6 deletions packages/schema/src/types.ts
Expand Up @@ -11,7 +11,7 @@ import { BuildSchemaOptions } from 'graphql';
/**
* Configuration object for creating an executable schema
*/
export interface IExecutableSchemaDefinition<TContext = any> {
export interface IExecutableSchemaDefinition<TContext = any> extends BuildSchemaOptions, GraphQLParseOptions {
/**
* The type definitions used to create the schema
*/
Expand All @@ -24,11 +24,6 @@ export interface IExecutableSchemaDefinition<TContext = any> {
* 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
Expand Down

0 comments on commit 895b67b

Please sign in to comment.