From 9932028bb779b164fe8944c32de51aa0f39c1f95 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Mon, 29 Apr 2019 13:32:18 +0300 Subject: [PATCH] Use Flow shorcut for importing types and enable related ESLint rules --- .eslintrc.yml | 4 +- src/error/GraphQLError.js | 7 +- src/error/formatError.js | 4 +- src/error/locatedError.js | 2 +- src/error/printError.js | 7 +- src/error/syntaxError.js | 2 +- src/execution/execute.js | 44 ++++--- src/execution/values.js | 21 ++-- src/graphql.js | 17 ++- src/jsutils/keyMap.js | 2 +- src/jsutils/keyValMap.js | 2 +- src/jsutils/mapValue.js | 2 +- src/jsutils/promiseForObject.js | 2 +- src/jsutils/promiseReduce.js | 2 +- src/language/ast.js | 4 +- src/language/lexer.js | 4 +- src/language/location.js | 2 +- src/language/parser.js | 110 +++++++++--------- src/language/predicates.js | 2 +- src/language/printer.js | 2 +- src/language/visitor.js | 4 +- src/polyfills/objectEntries.js | 2 +- src/polyfills/objectValues.js | 2 +- src/subscription/mapAsyncIterator.js | 2 +- src/subscription/subscribe.js | 10 +- src/type/__tests__/definition-test.js | 3 +- src/type/__tests__/validation-test.js | 8 +- src/type/definition.js | 46 ++++---- src/type/directives.js | 12 +- src/type/introspection.js | 2 +- src/type/schema.js | 20 ++-- src/type/validate.js | 30 +++-- src/utilities/TypeInfo.js | 24 ++-- src/utilities/assertValidName.js | 2 +- src/utilities/astFromValue.js | 4 +- src/utilities/buildASTSchema.js | 68 ++++++----- src/utilities/buildClientSchema.js | 44 ++++--- src/utilities/coerceValue.js | 4 +- src/utilities/concatAST.js | 2 +- src/utilities/extendSchema.js | 20 ++-- src/utilities/findBreakingChanges.js | 20 ++-- src/utilities/findDeprecatedUsages.js | 4 +- src/utilities/getOperationAST.js | 5 +- src/utilities/getOperationRootType.js | 10 +- src/utilities/introspectionFromSchema.js | 10 +- src/utilities/introspectionQuery.js | 2 +- src/utilities/isValidJSValue.js | 2 +- src/utilities/isValidLiteralValue.js | 6 +- src/utilities/lexicographicSortSchema.js | 4 +- src/utilities/schemaPrinter.js | 18 ++- src/utilities/separateOperations.js | 7 +- src/utilities/typeComparators.js | 5 +- src/utilities/typeFromAST.js | 17 +-- src/utilities/valueFromAST.js | 6 +- src/utilities/valueFromASTUntyped.js | 4 +- src/validation/ValidationContext.js | 37 +++--- src/validation/__tests__/harness.js | 5 +- src/validation/rules/ExecutableDefinitions.js | 4 +- src/validation/rules/FieldsOnCorrectType.js | 10 +- .../rules/FragmentsOnCompositeTypes.js | 4 +- src/validation/rules/KnownArgumentNames.js | 8 +- src/validation/rules/KnownDirectives.js | 8 +- src/validation/rules/KnownFragmentNames.js | 4 +- src/validation/rules/KnownTypeNames.js | 10 +- .../rules/LoneAnonymousOperation.js | 4 +- src/validation/rules/LoneSchemaDefinition.js | 4 +- src/validation/rules/NoFragmentCycles.js | 6 +- src/validation/rules/NoUndefinedVariables.js | 4 +- src/validation/rules/NoUnusedFragments.js | 4 +- src/validation/rules/NoUnusedVariables.js | 4 +- .../rules/OverlappingFieldsCanBeMerged.js | 26 ++--- .../rules/PossibleFragmentSpreads.js | 4 +- .../rules/PossibleTypeExtensions.js | 4 +- .../rules/ProvidedRequiredArguments.js | 8 +- src/validation/rules/ScalarLeafs.js | 6 +- .../rules/SingleFieldSubscriptions.js | 6 +- src/validation/rules/UniqueArgumentNames.js | 4 +- src/validation/rules/UniqueDirectiveNames.js | 4 +- .../rules/UniqueDirectivesPerLocation.js | 6 +- src/validation/rules/UniqueEnumValueNames.js | 4 +- .../rules/UniqueFieldDefinitionNames.js | 4 +- src/validation/rules/UniqueFragmentNames.js | 4 +- src/validation/rules/UniqueInputFieldNames.js | 4 +- src/validation/rules/UniqueOperationNames.js | 4 +- src/validation/rules/UniqueOperationTypes.js | 4 +- src/validation/rules/UniqueTypeNames.js | 6 +- src/validation/rules/UniqueVariableNames.js | 6 +- src/validation/rules/ValuesOfCorrectType.js | 8 +- .../rules/VariablesAreInputTypes.js | 6 +- .../rules/VariablesInAllowedPosition.js | 11 +- src/validation/specifiedRules.js | 17 ++- src/validation/validate.js | 14 ++- 92 files changed, 476 insertions(+), 471 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index e43659a547..2d5bfb4872 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -69,7 +69,7 @@ rules: flowtype/space-before-type-colon: off flowtype/spread-exact-type: off flowtype/type-id-match: off - #flowtype/type-import-style: undecided + flowtype/type-import-style: [error, identifier, { ignoreTypeDefault: true }] flowtype/union-intersection-spacing: off flowtype/use-flow-type: error flowtype/valid-syntax: off @@ -340,7 +340,7 @@ rules: no-confusing-arrow: off no-const-assign: error no-dupe-class-members: error - #no-duplicate-imports: undecided + no-duplicate-imports: error no-new-symbol: error no-restricted-imports: off no-this-before-super: error diff --git a/src/error/GraphQLError.js b/src/error/GraphQLError.js index b52334ee57..c25c964f95 100644 --- a/src/error/GraphQLError.js +++ b/src/error/GraphQLError.js @@ -8,10 +8,9 @@ */ import { printError } from './printError'; -import { getLocation } from '../language/location'; -import type { SourceLocation } from '../language/location'; -import type { ASTNode } from '../language/ast'; -import type { Source } from '../language/source'; +import { type ASTNode } from '../language/ast'; +import { type Source } from '../language/source'; +import { type SourceLocation, getLocation } from '../language/location'; /** * A GraphQLError describes an Error found during the parse, validate, or diff --git a/src/error/formatError.js b/src/error/formatError.js index db6a51c1f0..d5ea1b9e58 100644 --- a/src/error/formatError.js +++ b/src/error/formatError.js @@ -8,8 +8,8 @@ */ import invariant from '../jsutils/invariant'; -import type { GraphQLError } from './GraphQLError'; -import type { SourceLocation } from '../language/location'; +import { type GraphQLError } from './GraphQLError'; +import { type SourceLocation } from '../language/location'; /** * Given a GraphQLError, format it according to the rules described by the diff --git a/src/error/locatedError.js b/src/error/locatedError.js index f3c4cd8b33..fb8ff62414 100644 --- a/src/error/locatedError.js +++ b/src/error/locatedError.js @@ -8,7 +8,7 @@ */ import { GraphQLError } from './GraphQLError'; -import type { ASTNode } from '../language/ast'; +import { type ASTNode } from '../language/ast'; /** * Given an arbitrary Error, presumably thrown while attempting to execute a diff --git a/src/error/printError.js b/src/error/printError.js index 9841d90bf7..f05da20bdd 100644 --- a/src/error/printError.js +++ b/src/error/printError.js @@ -7,10 +7,9 @@ * @flow strict */ -import { getLocation } from '../language/location'; -import type { SourceLocation } from '../language/location'; -import type { Source } from '../language/source'; -import type { GraphQLError } from './GraphQLError'; +import { type SourceLocation, getLocation } from '../language/location'; +import { type Source } from '../language/source'; +import { type GraphQLError } from './GraphQLError'; /** * Prints a GraphQLError to a string, representing useful location information diff --git a/src/error/syntaxError.js b/src/error/syntaxError.js index f8ff7c65c9..47f8b75f44 100644 --- a/src/error/syntaxError.js +++ b/src/error/syntaxError.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { Source } from '../language/source'; +import { type Source } from '../language/source'; import { GraphQLError } from './GraphQLError'; /** diff --git a/src/execution/execute.js b/src/execution/execute.js index 41f188528a..113bf9bfd2 100644 --- a/src/execution/execute.js +++ b/src/execution/execute.js @@ -18,8 +18,8 @@ import isPromise from '../jsutils/isPromise'; import memoize3 from '../jsutils/memoize3'; import promiseForObject from '../jsutils/promiseForObject'; import promiseReduce from '../jsutils/promiseReduce'; -import type { ObjMap } from '../jsutils/ObjMap'; -import type { PromiseOrValue } from '../jsutils/PromiseOrValue'; +import { type ObjMap } from '../jsutils/ObjMap'; +import { type PromiseOrValue } from '../jsutils/PromiseOrValue'; import { getOperationRootType } from '../utilities/getOperationRootType'; import { typeFromAST } from '../utilities/typeFromAST'; @@ -30,25 +30,23 @@ import { getDirectiveValues, } from './values'; import { + type GraphQLObjectType, + type GraphQLOutputType, + type GraphQLLeafType, + type GraphQLAbstractType, + type GraphQLField, + type GraphQLFieldResolver, + type GraphQLResolveInfo, + type GraphQLTypeResolver, + type ResponsePath, + type GraphQLList, isObjectType, isAbstractType, isLeafType, isListType, isNonNullType, } from '../type/definition'; -import type { - GraphQLObjectType, - GraphQLOutputType, - GraphQLLeafType, - GraphQLAbstractType, - GraphQLField, - GraphQLFieldResolver, - GraphQLResolveInfo, - GraphQLTypeResolver, - ResponsePath, - GraphQLList, -} from '../type/definition'; -import type { GraphQLSchema } from '../type/schema'; +import { type GraphQLSchema } from '../type/schema'; import { SchemaMetaFieldDef, TypeMetaFieldDef, @@ -59,14 +57,14 @@ import { GraphQLSkipDirective, } from '../type/directives'; import { assertValidSchema } from '../type/validate'; -import type { - DocumentNode, - OperationDefinitionNode, - SelectionSetNode, - FieldNode, - FragmentSpreadNode, - InlineFragmentNode, - FragmentDefinitionNode, +import { + type DocumentNode, + type OperationDefinitionNode, + type SelectionSetNode, + type FieldNode, + type FragmentSpreadNode, + type InlineFragmentNode, + type FragmentDefinitionNode, } from '../language/ast'; /** diff --git a/src/execution/values.js b/src/execution/values.js index 7bb65b8829..ed01800375 100644 --- a/src/execution/values.js +++ b/src/execution/values.js @@ -17,15 +17,18 @@ import { typeFromAST } from '../utilities/typeFromAST'; import { valueFromAST } from '../utilities/valueFromAST'; import { Kind } from '../language/kinds'; import { print } from '../language/printer'; -import { isInputType, isNonNullType } from '../type/definition'; -import type { ObjMap } from '../jsutils/ObjMap'; -import type { GraphQLField } from '../type/definition'; -import type { GraphQLDirective } from '../type/directives'; -import type { GraphQLSchema } from '../type/schema'; -import type { - FieldNode, - DirectiveNode, - VariableDefinitionNode, +import { + type GraphQLField, + isInputType, + isNonNullType, +} from '../type/definition'; +import { type GraphQLDirective } from '../type/directives'; +import { type ObjMap } from '../jsutils/ObjMap'; +import { type GraphQLSchema } from '../type/schema'; +import { + type FieldNode, + type DirectiveNode, + type VariableDefinitionNode, } from '../language/ast'; type CoercedVariableValues = {| diff --git a/src/graphql.js b/src/graphql.js index efbd94f1d5..e8cdfdc9ed 100644 --- a/src/graphql.js +++ b/src/graphql.js @@ -10,16 +10,15 @@ import { validateSchema } from './type/validate'; import { parse } from './language/parser'; import { validate } from './validation/validate'; -import { execute } from './execution/execute'; -import type { ObjMap } from './jsutils/ObjMap'; -import type { Source } from './language/source'; -import type { - GraphQLFieldResolver, - GraphQLTypeResolver, +import { type ExecutionResult, execute } from './execution/execute'; +import { type ObjMap } from './jsutils/ObjMap'; +import { type Source } from './language/source'; +import { + type GraphQLFieldResolver, + type GraphQLTypeResolver, } from './type/definition'; -import type { GraphQLSchema } from './type/schema'; -import type { ExecutionResult } from './execution/execute'; -import type { PromiseOrValue } from './jsutils/PromiseOrValue'; +import { type GraphQLSchema } from './type/schema'; +import { type PromiseOrValue } from './jsutils/PromiseOrValue'; /** * This is the primary entry point function for fulfilling GraphQL operations diff --git a/src/jsutils/keyMap.js b/src/jsutils/keyMap.js index d5d6bc3f24..26a7da9d9d 100644 --- a/src/jsutils/keyMap.js +++ b/src/jsutils/keyMap.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ObjMap } from './ObjMap'; +import { type ObjMap } from './ObjMap'; /** * Creates a keyed JS object from an array, given a function to produce the keys diff --git a/src/jsutils/keyValMap.js b/src/jsutils/keyValMap.js index 8fba11eb77..f0823605c3 100644 --- a/src/jsutils/keyValMap.js +++ b/src/jsutils/keyValMap.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ObjMap } from './ObjMap'; +import { type ObjMap } from './ObjMap'; /** * Creates a keyed JS object from an array, given a function to produce the keys diff --git a/src/jsutils/mapValue.js b/src/jsutils/mapValue.js index 958c001e6e..7661b14885 100644 --- a/src/jsutils/mapValue.js +++ b/src/jsutils/mapValue.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ObjMap } from './ObjMap'; +import { type ObjMap } from './ObjMap'; import objectEntries from '../polyfills/objectEntries'; /** diff --git a/src/jsutils/promiseForObject.js b/src/jsutils/promiseForObject.js index 0bc3ecb5fe..ed5b15de7e 100644 --- a/src/jsutils/promiseForObject.js +++ b/src/jsutils/promiseForObject.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ObjMap } from './ObjMap'; +import { type ObjMap } from './ObjMap'; /** * This function transforms a JS object `ObjMap>` into diff --git a/src/jsutils/promiseReduce.js b/src/jsutils/promiseReduce.js index a241797edf..4be5341c6a 100644 --- a/src/jsutils/promiseReduce.js +++ b/src/jsutils/promiseReduce.js @@ -8,7 +8,7 @@ */ import isPromise from './isPromise'; -import type { PromiseOrValue } from './PromiseOrValue'; +import { type PromiseOrValue } from './PromiseOrValue'; /** * Similar to Array.prototype.reduce(), however the reducing callback may return diff --git a/src/language/ast.js b/src/language/ast.js index 52eec5bd35..fa37d94c1f 100644 --- a/src/language/ast.js +++ b/src/language/ast.js @@ -7,8 +7,8 @@ * @flow strict */ -import type { Source } from './source'; -import type { TokenKindEnum } from './lexer'; +import { type Source } from './source'; +import { type TokenKindEnum } from './lexer'; /** * Contains a range of UTF-8 character offsets and token references that diff --git a/src/language/lexer.js b/src/language/lexer.js index cce81d6eee..780233e051 100644 --- a/src/language/lexer.js +++ b/src/language/lexer.js @@ -8,8 +8,8 @@ */ import defineToJSON from '../jsutils/defineToJSON'; -import type { Token } from './ast'; -import type { Source } from './source'; +import { type Token } from './ast'; +import { type Source } from './source'; import { syntaxError } from '../error'; import { dedentBlockStringValue } from './blockString'; diff --git a/src/language/location.js b/src/language/location.js index 26160bf1bd..bb127daa00 100644 --- a/src/language/location.js +++ b/src/language/location.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { Source } from './source'; +import { type Source } from './source'; /** * Represents a location in a Source. diff --git a/src/language/parser.js b/src/language/parser.js index 7014d0c8c0..aa0bf952bf 100644 --- a/src/language/parser.js +++ b/src/language/parser.js @@ -10,59 +10,63 @@ import inspect from '../jsutils/inspect'; import defineToJSON from '../jsutils/defineToJSON'; import { Source } from './source'; -import { syntaxError } from '../error'; -import type { GraphQLError } from '../error'; -import { createLexer, TokenKind, getTokenDesc } from './lexer'; -import type { Lexer, TokenKindEnum } from './lexer'; -import type { - Location, - Token, - NameNode, - VariableNode, - DocumentNode, - DefinitionNode, - ExecutableDefinitionNode, - OperationDefinitionNode, - OperationTypeNode, - VariableDefinitionNode, - SelectionSetNode, - SelectionNode, - FieldNode, - ArgumentNode, - FragmentSpreadNode, - InlineFragmentNode, - FragmentDefinitionNode, - ValueNode, - StringValueNode, - ListValueNode, - ObjectValueNode, - ObjectFieldNode, - DirectiveNode, - TypeNode, - NamedTypeNode, - ListTypeNode, - NonNullTypeNode, - TypeSystemDefinitionNode, - SchemaDefinitionNode, - OperationTypeDefinitionNode, - ScalarTypeDefinitionNode, - ObjectTypeDefinitionNode, - FieldDefinitionNode, - InputValueDefinitionNode, - InterfaceTypeDefinitionNode, - UnionTypeDefinitionNode, - EnumTypeDefinitionNode, - EnumValueDefinitionNode, - InputObjectTypeDefinitionNode, - DirectiveDefinitionNode, - TypeSystemExtensionNode, - SchemaExtensionNode, - ScalarTypeExtensionNode, - ObjectTypeExtensionNode, - InterfaceTypeExtensionNode, - UnionTypeExtensionNode, - EnumTypeExtensionNode, - InputObjectTypeExtensionNode, +import { type GraphQLError, syntaxError } from '../error'; +import { + type Lexer, + type TokenKindEnum, + TokenKind, + getTokenDesc, + createLexer, +} from './lexer'; +import { + type Location, + type Token, + type NameNode, + type VariableNode, + type DocumentNode, + type DefinitionNode, + type ExecutableDefinitionNode, + type OperationDefinitionNode, + type OperationTypeNode, + type VariableDefinitionNode, + type SelectionSetNode, + type SelectionNode, + type FieldNode, + type ArgumentNode, + type FragmentSpreadNode, + type InlineFragmentNode, + type FragmentDefinitionNode, + type ValueNode, + type StringValueNode, + type ListValueNode, + type ObjectValueNode, + type ObjectFieldNode, + type DirectiveNode, + type TypeNode, + type NamedTypeNode, + type ListTypeNode, + type NonNullTypeNode, + type TypeSystemDefinitionNode, + type SchemaDefinitionNode, + type OperationTypeDefinitionNode, + type ScalarTypeDefinitionNode, + type ObjectTypeDefinitionNode, + type FieldDefinitionNode, + type InputValueDefinitionNode, + type InterfaceTypeDefinitionNode, + type UnionTypeDefinitionNode, + type EnumTypeDefinitionNode, + type EnumValueDefinitionNode, + type InputObjectTypeDefinitionNode, + type DirectiveDefinitionNode, + type TypeSystemExtensionNode, + type SchemaExtensionNode, + type ScalarTypeExtensionNode, + type ObjectTypeExtensionNode, + type InterfaceTypeExtensionNode, + type UnionTypeExtensionNode, + type EnumTypeExtensionNode, + type InputObjectTypeExtensionNode, } from './ast'; import { Kind } from './kinds'; diff --git a/src/language/predicates.js b/src/language/predicates.js index ae0c139ebc..70a37d914b 100644 --- a/src/language/predicates.js +++ b/src/language/predicates.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ASTNode } from './ast'; +import { type ASTNode } from './ast'; import { Kind } from './kinds'; export function isDefinitionNode(node: ASTNode): boolean %checks { diff --git a/src/language/printer.js b/src/language/printer.js index 550c68de12..509cdb77bd 100644 --- a/src/language/printer.js +++ b/src/language/printer.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ASTNode } from './ast'; +import { type ASTNode } from './ast'; import { visit } from './visitor'; import { printBlockString } from './blockString'; diff --git a/src/language/visitor.js b/src/language/visitor.js index d16696176a..5cbc4ac78c 100644 --- a/src/language/visitor.js +++ b/src/language/visitor.js @@ -8,8 +8,8 @@ */ import inspect from '../jsutils/inspect'; -import type { ASTNode, ASTKindToNode } from './ast'; -import type { TypeInfo } from '../utilities/TypeInfo'; +import { type ASTNode, type ASTKindToNode } from './ast'; +import { type TypeInfo } from '../utilities/TypeInfo'; /** * A visitor is provided to visit, it contains the collection of diff --git a/src/polyfills/objectEntries.js b/src/polyfills/objectEntries.js index 67050c31ea..6b93762cce 100644 --- a/src/polyfills/objectEntries.js +++ b/src/polyfills/objectEntries.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; declare function objectEntries(obj: ObjMap): Array<[string, T]>; diff --git a/src/polyfills/objectValues.js b/src/polyfills/objectValues.js index eabff478bb..dd84b6c6fc 100644 --- a/src/polyfills/objectValues.js +++ b/src/polyfills/objectValues.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; declare function objectValues(obj: ObjMap): Array; diff --git a/src/subscription/mapAsyncIterator.js b/src/subscription/mapAsyncIterator.js index 369901342c..5773474c1e 100644 --- a/src/subscription/mapAsyncIterator.js +++ b/src/subscription/mapAsyncIterator.js @@ -8,7 +8,7 @@ */ import { $$asyncIterator, getAsyncIterator } from 'iterall'; -import type { PromiseOrValue } from '../jsutils/PromiseOrValue'; +import { type PromiseOrValue } from '../jsutils/PromiseOrValue'; /** * Given an AsyncIterable and a callback function, return an AsyncIterator diff --git a/src/subscription/subscribe.js b/src/subscription/subscribe.js index 215adbea00..804537b284 100644 --- a/src/subscription/subscribe.js +++ b/src/subscription/subscribe.js @@ -12,6 +12,7 @@ import inspect from '../jsutils/inspect'; import { GraphQLError } from '../error/GraphQLError'; import { locatedError } from '../error/locatedError'; import { + type ExecutionResult, addPath, assertValidExecutionArguments, buildExecutionContext, @@ -22,13 +23,12 @@ import { resolveFieldValueOrError, responsePathAsArray, } from '../execution/execute'; -import type { GraphQLSchema } from '../type/schema'; +import { type GraphQLSchema } from '../type/schema'; import mapAsyncIterator from './mapAsyncIterator'; -import type { ObjMap } from '../jsutils/ObjMap'; -import type { ExecutionResult } from '../execution/execute'; -import type { DocumentNode } from '../language/ast'; -import type { GraphQLFieldResolver } from '../type/definition'; +import { type ObjMap } from '../jsutils/ObjMap'; +import { type DocumentNode } from '../language/ast'; +import { type GraphQLFieldResolver } from '../type/definition'; import { getOperationRootType } from '../utilities/getOperationRootType'; /** diff --git a/src/type/__tests__/definition-test.js b/src/type/__tests__/definition-test.js index b5a0945d4f..ee6650ac6e 100644 --- a/src/type/__tests__/definition-test.js +++ b/src/type/__tests__/definition-test.js @@ -11,6 +11,8 @@ import { describe, it } from 'mocha'; import { expect } from 'chai'; import { + type GraphQLType, + type GraphQLNullableType, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, @@ -20,7 +22,6 @@ import { GraphQLList, GraphQLNonNull, } from '../definition'; -import type { GraphQLType, GraphQLNullableType } from '../definition'; const ScalarType = new GraphQLScalarType({ name: 'Scalar', serialize() {} }); const ObjectType = new GraphQLObjectType({ name: 'Object', fields: {} }); diff --git a/src/type/__tests__/validation-test.js b/src/type/__tests__/validation-test.js index e0ef932727..506c917219 100644 --- a/src/type/__tests__/validation-test.js +++ b/src/type/__tests__/validation-test.js @@ -11,6 +11,9 @@ import { describe, it } from 'mocha'; import { expect } from 'chai'; import inspect from '../../jsutils/inspect'; import { + type GraphQLNamedType, + type GraphQLInputType, + type GraphQLOutputType, GraphQLSchema, GraphQLScalarType, GraphQLObjectType, @@ -22,11 +25,6 @@ import { GraphQLNonNull, GraphQLString, } from '../../'; -import type { - GraphQLNamedType, - GraphQLInputType, - GraphQLOutputType, -} from '../../'; import { parse } from '../../language/parser'; import { validateSchema } from '../validate'; import { buildSchema } from '../../utilities/buildASTSchema'; diff --git a/src/type/definition.js b/src/type/definition.js index e6f311d10d..43873407ba 100644 --- a/src/type/definition.js +++ b/src/type/definition.js @@ -16,32 +16,32 @@ import invariant from '../jsutils/invariant'; import keyMap from '../jsutils/keyMap'; import keyValMap from '../jsutils/keyValMap'; import mapValue from '../jsutils/mapValue'; -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; import { Kind } from '../language/kinds'; import { valueFromASTUntyped } from '../utilities/valueFromASTUntyped'; -import type { - ScalarTypeDefinitionNode, - ObjectTypeDefinitionNode, - FieldDefinitionNode, - InputValueDefinitionNode, - InterfaceTypeDefinitionNode, - UnionTypeDefinitionNode, - EnumTypeDefinitionNode, - EnumValueDefinitionNode, - InputObjectTypeDefinitionNode, - ScalarTypeExtensionNode, - ObjectTypeExtensionNode, - InterfaceTypeExtensionNode, - UnionTypeExtensionNode, - EnumTypeExtensionNode, - InputObjectTypeExtensionNode, - OperationDefinitionNode, - FieldNode, - FragmentDefinitionNode, - ValueNode, +import { + type ScalarTypeDefinitionNode, + type ObjectTypeDefinitionNode, + type FieldDefinitionNode, + type InputValueDefinitionNode, + type InterfaceTypeDefinitionNode, + type UnionTypeDefinitionNode, + type EnumTypeDefinitionNode, + type EnumValueDefinitionNode, + type InputObjectTypeDefinitionNode, + type ScalarTypeExtensionNode, + type ObjectTypeExtensionNode, + type InterfaceTypeExtensionNode, + type UnionTypeExtensionNode, + type EnumTypeExtensionNode, + type InputObjectTypeExtensionNode, + type OperationDefinitionNode, + type FieldNode, + type FragmentDefinitionNode, + type ValueNode, } from '../language/ast'; -import type { GraphQLSchema } from './schema'; -import type { PromiseOrValue } from '../jsutils/PromiseOrValue'; +import { type GraphQLSchema } from './schema'; +import { type PromiseOrValue } from '../jsutils/PromiseOrValue'; // Predicates & Assertions diff --git a/src/type/directives.js b/src/type/directives.js index c3ef545557..29caa14b8a 100644 --- a/src/type/directives.js +++ b/src/type/directives.js @@ -8,19 +8,19 @@ */ import objectEntries from '../polyfills/objectEntries'; -import { argsToArgsConfig } from './definition'; -import type { - GraphQLFieldConfigArgumentMap, - GraphQLArgument, +import { + type GraphQLFieldConfigArgumentMap, + type GraphQLArgument, + argsToArgsConfig, + GraphQLNonNull, } from './definition'; -import { GraphQLNonNull } from './definition'; import { GraphQLString, GraphQLBoolean } from './scalars'; import defineToStringTag from '../jsutils/defineToStringTag'; import defineToJSON from '../jsutils/defineToJSON'; import instanceOf from '../jsutils/instanceOf'; import invariant from '../jsutils/invariant'; import inspect from '../jsutils/inspect'; -import type { DirectiveDefinitionNode } from '../language/ast'; +import { type DirectiveDefinitionNode } from '../language/ast'; import { DirectiveLocation, type DirectiveLocationEnum, diff --git a/src/type/introspection.js b/src/type/introspection.js index f2435f8f5b..731e5412d9 100644 --- a/src/type/introspection.js +++ b/src/type/introspection.js @@ -12,6 +12,7 @@ import inspect from '../jsutils/inspect'; import { astFromValue } from '../utilities/astFromValue'; import { print } from '../language/printer'; import { + type GraphQLField, GraphQLObjectType, GraphQLEnumType, GraphQLList, @@ -29,7 +30,6 @@ import { } from './definition'; import { GraphQLString, GraphQLBoolean } from './scalars'; import { DirectiveLocation } from '../language/directiveLocation'; -import type { GraphQLField } from './definition'; export const __Schema = new GraphQLObjectType({ name: '__Schema', diff --git a/src/type/schema.js b/src/type/schema.js index 4fe2258fe5..5ea5164c1f 100644 --- a/src/type/schema.js +++ b/src/type/schema.js @@ -10,6 +10,10 @@ import find from '../polyfills/find'; import objectValues from '../polyfills/objectValues'; import { + type GraphQLType, + type GraphQLNamedType, + type GraphQLAbstractType, + type GraphQLObjectType, isAbstractType, isObjectType, isInterfaceType, @@ -17,28 +21,22 @@ import { isInputObjectType, isWrappingType, } from './definition'; -import type { - GraphQLType, - GraphQLNamedType, - GraphQLAbstractType, - GraphQLObjectType, -} from './definition'; -import type { - SchemaDefinitionNode, - SchemaExtensionNode, +import { + type SchemaDefinitionNode, + type SchemaExtensionNode, } from '../language/ast'; import { GraphQLDirective, isDirective, specifiedDirectives, } from './directives'; -import type { GraphQLError } from '../error/GraphQLError'; +import { type GraphQLError } from '../error/GraphQLError'; import inspect from '../jsutils/inspect'; import { __Schema } from './introspection'; import defineToStringTag from '../jsutils/defineToStringTag'; import instanceOf from '../jsutils/instanceOf'; import invariant from '../jsutils/invariant'; -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; /** * Test if the given value is a GraphQL schema. diff --git a/src/type/validate.js b/src/type/validate.js index dbeaf76833..2e5d2df38e 100644 --- a/src/type/validate.js +++ b/src/type/validate.js @@ -12,6 +12,11 @@ import flatMap from '../polyfills/flatMap'; import objectValues from '../polyfills/objectValues'; import objectEntries from '../polyfills/objectEntries'; import { + type GraphQLObjectType, + type GraphQLInterfaceType, + type GraphQLUnionType, + type GraphQLEnumType, + type GraphQLInputObjectType, isObjectType, isInterfaceType, isUnionType, @@ -22,26 +27,17 @@ import { isOutputType, isRequiredArgument, } from './definition'; -import type { - GraphQLObjectType, - GraphQLInterfaceType, - GraphQLUnionType, - GraphQLEnumType, - GraphQLInputObjectType, -} from './definition'; -import { isDirective } from './directives'; -import type { GraphQLDirective } from './directives'; +import { type GraphQLDirective, isDirective } from './directives'; import { isIntrospectionType } from './introspection'; -import { assertSchema } from './schema'; -import type { GraphQLSchema } from './schema'; +import { type GraphQLSchema, assertSchema } from './schema'; import inspect from '../jsutils/inspect'; import { GraphQLError } from '../error/GraphQLError'; -import type { - ASTNode, - FieldDefinitionNode, - InputValueDefinitionNode, - NamedTypeNode, - TypeNode, +import { + type ASTNode, + type FieldDefinitionNode, + type InputValueDefinitionNode, + type NamedTypeNode, + type TypeNode, } from '../language/ast'; import { isValidNameError } from '../utilities/assertValidName'; import { isEqualType, isTypeSubTypeOf } from '../utilities/typeComparators'; diff --git a/src/utilities/TypeInfo.js b/src/utilities/TypeInfo.js index 0c21b69fae..a74d52725b 100644 --- a/src/utilities/TypeInfo.js +++ b/src/utilities/TypeInfo.js @@ -10,6 +10,14 @@ import find from '../polyfills/find'; import { Kind } from '../language/kinds'; import { + type GraphQLType, + type GraphQLInputType, + type GraphQLOutputType, + type GraphQLCompositeType, + type GraphQLField, + type GraphQLArgument, + type GraphQLInputField, + type GraphQLEnumValue, isObjectType, isInterfaceType, isEnumType, @@ -21,24 +29,14 @@ import { getNullableType, getNamedType, } from '../type/definition'; -import type { - GraphQLType, - GraphQLInputType, - GraphQLOutputType, - GraphQLCompositeType, - GraphQLField, - GraphQLArgument, - GraphQLInputField, - GraphQLEnumValue, -} from '../type/definition'; -import type { GraphQLDirective } from '../type/directives'; +import { type GraphQLDirective } from '../type/directives'; import { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, } from '../type/introspection'; -import type { GraphQLSchema } from '../type/schema'; -import type { ASTNode, FieldNode } from '../language/ast'; +import { type GraphQLSchema } from '../type/schema'; +import { type ASTNode, type FieldNode } from '../language/ast'; import { typeFromAST } from './typeFromAST'; /** diff --git a/src/utilities/assertValidName.js b/src/utilities/assertValidName.js index 6687f68e59..7bf0b93791 100644 --- a/src/utilities/assertValidName.js +++ b/src/utilities/assertValidName.js @@ -8,7 +8,7 @@ */ import { GraphQLError } from '../error/GraphQLError'; -import type { ASTNode } from '../language/ast'; +import { type ASTNode } from '../language/ast'; import invariant from '../jsutils/invariant'; const NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/; diff --git a/src/utilities/astFromValue.js b/src/utilities/astFromValue.js index b843ca9d69..0ba2f323fc 100644 --- a/src/utilities/astFromValue.js +++ b/src/utilities/astFromValue.js @@ -13,10 +13,10 @@ import objectValues from '../polyfills/objectValues'; import inspect from '../jsutils/inspect'; import isNullish from '../jsutils/isNullish'; import isInvalid from '../jsutils/isInvalid'; -import type { ValueNode } from '../language/ast'; +import { type ValueNode } from '../language/ast'; import { Kind } from '../language/kinds'; -import type { GraphQLInputType } from '../type/definition'; import { + type GraphQLInputType, isLeafType, isEnumType, isInputObjectType, diff --git a/src/utilities/buildASTSchema.js b/src/utilities/buildASTSchema.js index 27f0059f97..97addcf335 100644 --- a/src/utilities/buildASTSchema.js +++ b/src/utilities/buildASTSchema.js @@ -12,51 +12,47 @@ import inspect from '../jsutils/inspect'; import invariant from '../jsutils/invariant'; import keyMap from '../jsutils/keyMap'; import keyValMap from '../jsutils/keyValMap'; -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; import { valueFromAST } from './valueFromAST'; import { assertValidSDL } from '../validation/validate'; import { dedentBlockStringValue } from '../language/blockString'; import { TokenKind } from '../language/lexer'; -import { parse } from '../language/parser'; -import type { ParseOptions } from '../language/parser'; -import type { Source } from '../language/source'; +import { type ParseOptions, parse } from '../language/parser'; +import { type Source } from '../language/source'; import { getDirectiveValues } from '../execution/values'; import { Kind } from '../language/kinds'; -import type { - DocumentNode, - NameNode, - TypeNode, - NamedTypeNode, - SchemaDefinitionNode, - TypeDefinitionNode, - ScalarTypeDefinitionNode, - ObjectTypeDefinitionNode, - FieldDefinitionNode, - InputValueDefinitionNode, - InterfaceTypeDefinitionNode, - UnionTypeDefinitionNode, - EnumTypeDefinitionNode, - EnumValueDefinitionNode, - InputObjectTypeDefinitionNode, - DirectiveDefinitionNode, - StringValueNode, - Location, +import { + type DocumentNode, + type NameNode, + type TypeNode, + type NamedTypeNode, + type SchemaDefinitionNode, + type TypeDefinitionNode, + type ScalarTypeDefinitionNode, + type ObjectTypeDefinitionNode, + type FieldDefinitionNode, + type InputValueDefinitionNode, + type InterfaceTypeDefinitionNode, + type UnionTypeDefinitionNode, + type EnumTypeDefinitionNode, + type EnumValueDefinitionNode, + type InputObjectTypeDefinitionNode, + type DirectiveDefinitionNode, + type StringValueNode, + type Location, } from '../language/ast'; import { isTypeDefinitionNode } from '../language/predicates'; -import type { DirectiveLocationEnum } from '../language/directiveLocation'; - -import type { - GraphQLType, - GraphQLNamedType, - GraphQLFieldConfig, - GraphQLArgumentConfig, - GraphQLEnumValueConfig, - GraphQLInputFieldConfig, -} from '../type/definition'; +import { type DirectiveLocationEnum } from '../language/directiveLocation'; import { + type GraphQLType, + type GraphQLNamedType, + type GraphQLFieldConfig, + type GraphQLArgumentConfig, + type GraphQLEnumValueConfig, + type GraphQLInputFieldConfig, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, @@ -78,8 +74,10 @@ import { introspectionTypes } from '../type/introspection'; import { specifiedScalarTypes } from '../type/scalars'; -import { GraphQLSchema } from '../type/schema'; -import type { GraphQLSchemaValidationOptions } from '../type/schema'; +import { + type GraphQLSchemaValidationOptions, + GraphQLSchema, +} from '../type/schema'; export type BuildSchemaOptions = { ...GraphQLSchemaValidationOptions, diff --git a/src/utilities/buildClientSchema.js b/src/utilities/buildClientSchema.js index 69e4966d91..26c8ad6084 100644 --- a/src/utilities/buildClientSchema.js +++ b/src/utilities/buildClientSchema.js @@ -13,9 +13,16 @@ import invariant from '../jsutils/invariant'; import keyValMap from '../jsutils/keyValMap'; import { valueFromAST } from './valueFromAST'; import { parseValue } from '../language/parser'; -import { GraphQLSchema } from '../type/schema'; +import { + type GraphQLSchemaValidationOptions, + GraphQLSchema, +} from '../type/schema'; import { + type GraphQLType, + type GraphQLInputType, + type GraphQLOutputType, + type GraphQLNamedType, isInputType, isOutputType, GraphQLScalarType, @@ -31,36 +38,27 @@ import { assertInterfaceType, } from '../type/definition'; -import type { - GraphQLType, - GraphQLInputType, - GraphQLOutputType, - GraphQLNamedType, -} from '../type/definition'; - import { GraphQLDirective } from '../type/directives'; import { introspectionTypes, TypeKind } from '../type/introspection'; import { specifiedScalarTypes } from '../type/scalars'; -import type { - IntrospectionQuery, - IntrospectionType, - IntrospectionScalarType, - IntrospectionObjectType, - IntrospectionInterfaceType, - IntrospectionUnionType, - IntrospectionEnumType, - IntrospectionInputObjectType, - IntrospectionTypeRef, - IntrospectionInputTypeRef, - IntrospectionOutputTypeRef, - IntrospectionNamedTypeRef, +import { + type IntrospectionQuery, + type IntrospectionType, + type IntrospectionScalarType, + type IntrospectionObjectType, + type IntrospectionInterfaceType, + type IntrospectionUnionType, + type IntrospectionEnumType, + type IntrospectionInputObjectType, + type IntrospectionTypeRef, + type IntrospectionInputTypeRef, + type IntrospectionOutputTypeRef, + type IntrospectionNamedTypeRef, } from './introspectionQuery'; -import type { GraphQLSchemaValidationOptions } from '../type/schema'; - type Options = {| ...GraphQLSchemaValidationOptions, |}; diff --git a/src/utilities/coerceValue.js b/src/utilities/coerceValue.js index 9786332e38..a0ccd1ab4b 100644 --- a/src/utilities/coerceValue.js +++ b/src/utilities/coerceValue.js @@ -14,15 +14,15 @@ import isInvalid from '../jsutils/isInvalid'; import orList from '../jsutils/orList'; import suggestionList from '../jsutils/suggestionList'; import { GraphQLError } from '../error/GraphQLError'; -import type { ASTNode } from '../language/ast'; +import { type ASTNode } from '../language/ast'; import { + type GraphQLInputType, isScalarType, isEnumType, isInputObjectType, isListType, isNonNullType, } from '../type/definition'; -import type { GraphQLInputType } from '../type/definition'; type CoercedValue = {| +errors: $ReadOnlyArray | void, diff --git a/src/utilities/concatAST.js b/src/utilities/concatAST.js index f419607094..16c1e1b019 100644 --- a/src/utilities/concatAST.js +++ b/src/utilities/concatAST.js @@ -8,7 +8,7 @@ */ import flatMap from '../polyfills/flatMap'; -import type { DocumentNode } from '../language/ast'; +import { type DocumentNode } from '../language/ast'; /** * Provided a collection of ASTs, presumably each from different files, diff --git a/src/utilities/extendSchema.js b/src/utilities/extendSchema.js index 38cfe6665f..279c4a932f 100644 --- a/src/utilities/extendSchema.js +++ b/src/utilities/extendSchema.js @@ -15,14 +15,16 @@ import mapValue from '../jsutils/mapValue'; import keyValMap from '../jsutils/keyValMap'; import { ASTDefinitionBuilder } from './buildASTSchema'; import { assertValidSDLExtension } from '../validation/validate'; -import { assertSchema, GraphQLSchema } from '../type/schema'; +import { + type GraphQLSchemaValidationOptions, + assertSchema, + GraphQLSchema, +} from '../type/schema'; import { isIntrospectionType } from '../type/introspection'; import { isSpecifiedScalarType } from '../type/scalars'; -import type { GraphQLSchemaValidationOptions } from '../type/schema'; -import type { GraphQLNamedType } from '../type/definition'; - import { + type GraphQLNamedType, isScalarType, isObjectType, isInterfaceType, @@ -45,11 +47,11 @@ import { GraphQLDirective } from '../type/directives'; import { Kind } from '../language/kinds'; -import type { - DocumentNode, - DirectiveDefinitionNode, - SchemaExtensionNode, - SchemaDefinitionNode, +import { + type DocumentNode, + type DirectiveDefinitionNode, + type SchemaExtensionNode, + type SchemaDefinitionNode, } from '../language/ast'; import { isTypeDefinitionNode, diff --git a/src/utilities/findBreakingChanges.js b/src/utilities/findBreakingChanges.js index 5293a90a2e..f4c22359d6 100644 --- a/src/utilities/findBreakingChanges.js +++ b/src/utilities/findBreakingChanges.js @@ -9,6 +9,10 @@ import find from '../polyfills/find'; import { + type GraphQLNamedType, + type GraphQLFieldMap, + type GraphQLType, + type GraphQLArgument, isScalarType, isObjectType, isInterfaceType, @@ -21,20 +25,12 @@ import { isRequiredArgument, isRequiredInputField, } from '../type/definition'; - -import type { - GraphQLNamedType, - GraphQLFieldMap, - GraphQLType, - GraphQLArgument, -} from '../type/definition'; - -import type { GraphQLDirective } from '../type/directives'; -import type { GraphQLSchema } from '../type/schema'; +import { type GraphQLDirective } from '../type/directives'; +import { type GraphQLSchema } from '../type/schema'; import keyMap from '../jsutils/keyMap'; -import type { ObjMap } from '../jsutils/ObjMap'; -import type { DirectiveLocationEnum } from '../language/directiveLocation'; +import { type ObjMap } from '../jsutils/ObjMap'; +import { type DirectiveLocationEnum } from '../language/directiveLocation'; export const BreakingChangeType = { FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND', diff --git a/src/utilities/findDeprecatedUsages.js b/src/utilities/findDeprecatedUsages.js index 3061b8f71f..92c17a73d5 100644 --- a/src/utilities/findDeprecatedUsages.js +++ b/src/utilities/findDeprecatedUsages.js @@ -9,9 +9,9 @@ import { GraphQLError } from '../error/GraphQLError'; import { visit, visitWithTypeInfo } from '../language/visitor'; -import type { DocumentNode } from '../language/ast'; +import { type DocumentNode } from '../language/ast'; import { getNamedType } from '../type/definition'; -import type { GraphQLSchema } from '../type/schema'; +import { type GraphQLSchema } from '../type/schema'; import { TypeInfo } from './TypeInfo'; /** diff --git a/src/utilities/getOperationAST.js b/src/utilities/getOperationAST.js index 3f297444b2..6c09e17b37 100644 --- a/src/utilities/getOperationAST.js +++ b/src/utilities/getOperationAST.js @@ -8,7 +8,10 @@ */ import { Kind } from '../language/kinds'; -import type { DocumentNode, OperationDefinitionNode } from '../language/ast'; +import { + type DocumentNode, + type OperationDefinitionNode, +} from '../language/ast'; /** * Returns an operation AST given a document AST and optionally an operation diff --git a/src/utilities/getOperationRootType.js b/src/utilities/getOperationRootType.js index 5202fda962..06690f857d 100644 --- a/src/utilities/getOperationRootType.js +++ b/src/utilities/getOperationRootType.js @@ -8,12 +8,12 @@ */ import { GraphQLError } from '../error/GraphQLError'; -import type { - OperationDefinitionNode, - OperationTypeDefinitionNode, +import { + type OperationDefinitionNode, + type OperationTypeDefinitionNode, } from '../language/ast'; -import type { GraphQLSchema } from '../type/schema'; -import type { GraphQLObjectType } from '../type/definition'; +import { type GraphQLSchema } from '../type/schema'; +import { type GraphQLObjectType } from '../type/definition'; /** * Extracts the root type of the operation from the schema. diff --git a/src/utilities/introspectionFromSchema.js b/src/utilities/introspectionFromSchema.js index fbb8683f3f..96de81d6e0 100644 --- a/src/utilities/introspectionFromSchema.js +++ b/src/utilities/introspectionFromSchema.js @@ -8,13 +8,13 @@ */ import invariant from '../jsutils/invariant'; -import { getIntrospectionQuery } from './introspectionQuery'; -import type { GraphQLSchema } from '../type/schema'; +import { type GraphQLSchema } from '../type/schema'; import { execute } from '../execution/execute'; import { parse } from '../language/parser'; -import type { - IntrospectionQuery, - IntrospectionOptions, +import { + type IntrospectionQuery, + type IntrospectionOptions, + getIntrospectionQuery, } from './introspectionQuery'; /** diff --git a/src/utilities/introspectionQuery.js b/src/utilities/introspectionQuery.js index 922b29c45e..50b66e90fe 100644 --- a/src/utilities/introspectionQuery.js +++ b/src/utilities/introspectionQuery.js @@ -7,7 +7,7 @@ * @flow strict */ -import type { DirectiveLocationEnum } from '../language/directiveLocation'; +import { type DirectiveLocationEnum } from '../language/directiveLocation'; export type IntrospectionOptions = {| // Whether to include descriptions in the introspection result. diff --git a/src/utilities/isValidJSValue.js b/src/utilities/isValidJSValue.js index d6e786ac6b..c6002a42ba 100644 --- a/src/utilities/isValidJSValue.js +++ b/src/utilities/isValidJSValue.js @@ -9,7 +9,7 @@ /* istanbul ignore file */ import { coerceValue } from './coerceValue'; -import type { GraphQLInputType } from '../type/definition'; +import { type GraphQLInputType } from '../type/definition'; /** * Deprecated. Use coerceValue() directly for richer information. diff --git a/src/utilities/isValidLiteralValue.js b/src/utilities/isValidLiteralValue.js index a431014a41..fb946aef82 100644 --- a/src/utilities/isValidLiteralValue.js +++ b/src/utilities/isValidLiteralValue.js @@ -8,11 +8,11 @@ */ import { TypeInfo } from './TypeInfo'; -import type { GraphQLError } from '../error/GraphQLError'; -import type { ValueNode } from '../language/ast'; +import { type GraphQLError } from '../error/GraphQLError'; +import { type ValueNode } from '../language/ast'; import { Kind } from '../language/kinds'; import { visit, visitWithTypeInfo } from '../language/visitor'; -import type { GraphQLInputType } from '../type/definition'; +import { type GraphQLInputType } from '../type/definition'; import { GraphQLSchema } from '../type/schema'; import { ValuesOfCorrectType } from '../validation/rules/ValuesOfCorrectType'; import { ValidationContext } from '../validation/ValidationContext'; diff --git a/src/utilities/lexicographicSortSchema.js b/src/utilities/lexicographicSortSchema.js index 00515556d3..99ea0eb625 100644 --- a/src/utilities/lexicographicSortSchema.js +++ b/src/utilities/lexicographicSortSchema.js @@ -10,11 +10,11 @@ import objectValues from '../polyfills/objectValues'; import inspect from '../jsutils/inspect'; import keyValMap from '../jsutils/keyValMap'; -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; import { GraphQLSchema } from '../type/schema'; import { GraphQLDirective } from '../type/directives'; -import type { GraphQLNamedType } from '../type/definition'; import { + type GraphQLNamedType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, diff --git a/src/utilities/schemaPrinter.js b/src/utilities/schemaPrinter.js index 3bad8dc82d..792c692fb3 100644 --- a/src/utilities/schemaPrinter.js +++ b/src/utilities/schemaPrinter.js @@ -13,8 +13,15 @@ import inspect from '../jsutils/inspect'; import { astFromValue } from '../utilities/astFromValue'; import { print } from '../language/printer'; import { printBlockString } from '../language/blockString'; -import type { GraphQLSchema } from '../type/schema'; +import { type GraphQLSchema } from '../type/schema'; import { + type GraphQLNamedType, + type GraphQLScalarType, + type GraphQLEnumType, + type GraphQLObjectType, + type GraphQLInterfaceType, + type GraphQLUnionType, + type GraphQLInputObjectType, isScalarType, isObjectType, isInterfaceType, @@ -22,15 +29,6 @@ import { isEnumType, isInputObjectType, } from '../type/definition'; -import type { - GraphQLNamedType, - GraphQLScalarType, - GraphQLEnumType, - GraphQLObjectType, - GraphQLInterfaceType, - GraphQLUnionType, - GraphQLInputObjectType, -} from '../type/definition'; import { GraphQLString, isSpecifiedScalarType } from '../type/scalars'; import { GraphQLDirective, diff --git a/src/utilities/separateOperations.js b/src/utilities/separateOperations.js index b596fc22e6..17d4505059 100644 --- a/src/utilities/separateOperations.js +++ b/src/utilities/separateOperations.js @@ -8,8 +8,11 @@ */ import { visit } from '../language/visitor'; -import type { ObjMap } from '../jsutils/ObjMap'; -import type { DocumentNode, OperationDefinitionNode } from '../language/ast'; +import { type ObjMap } from '../jsutils/ObjMap'; +import { + type DocumentNode, + type OperationDefinitionNode, +} from '../language/ast'; /** * separateOperations accepts a single AST document which may contain many diff --git a/src/utilities/typeComparators.js b/src/utilities/typeComparators.js index f8fad84d95..e1da1fb0c5 100644 --- a/src/utilities/typeComparators.js +++ b/src/utilities/typeComparators.js @@ -8,13 +8,14 @@ */ import { + type GraphQLType, + type GraphQLCompositeType, isObjectType, isListType, isNonNullType, isAbstractType, } from '../type/definition'; -import type { GraphQLType, GraphQLCompositeType } from '../type/definition'; -import type { GraphQLSchema } from '../type/schema'; +import { type GraphQLSchema } from '../type/schema'; /** * Provided two types, return true if the types are equal (invariant). diff --git a/src/utilities/typeFromAST.js b/src/utilities/typeFromAST.js index 4dbd62e65d..8251a55a09 100644 --- a/src/utilities/typeFromAST.js +++ b/src/utilities/typeFromAST.js @@ -9,14 +9,17 @@ import inspect from '../jsutils/inspect'; import { Kind } from '../language/kinds'; -import type { - NamedTypeNode, - ListTypeNode, - NonNullTypeNode, +import { + type NamedTypeNode, + type ListTypeNode, + type NonNullTypeNode, } from '../language/ast'; -import { GraphQLList, GraphQLNonNull } from '../type/definition'; -import type { GraphQLNamedType } from '../type/definition'; -import type { GraphQLSchema } from '../type/schema'; +import { + type GraphQLNamedType, + GraphQLList, + GraphQLNonNull, +} from '../type/definition'; +import { type GraphQLSchema } from '../type/schema'; /** * Given a Schema and an AST node describing a type, return a GraphQLType diff --git a/src/utilities/valueFromAST.js b/src/utilities/valueFromAST.js index 8e716c1e76..6b797f9eca 100644 --- a/src/utilities/valueFromAST.js +++ b/src/utilities/valueFromAST.js @@ -11,17 +11,17 @@ import objectValues from '../polyfills/objectValues'; import inspect from '../jsutils/inspect'; import keyMap from '../jsutils/keyMap'; import isInvalid from '../jsutils/isInvalid'; -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; import { Kind } from '../language/kinds'; import { + type GraphQLInputType, isScalarType, isEnumType, isInputObjectType, isListType, isNonNullType, } from '../type/definition'; -import type { GraphQLInputType } from '../type/definition'; -import type { ValueNode } from '../language/ast'; +import { type ValueNode } from '../language/ast'; /** * Produces a JavaScript value given a GraphQL Value AST. diff --git a/src/utilities/valueFromASTUntyped.js b/src/utilities/valueFromASTUntyped.js index 19688da997..0758581254 100644 --- a/src/utilities/valueFromASTUntyped.js +++ b/src/utilities/valueFromASTUntyped.js @@ -10,9 +10,9 @@ import inspect from '../jsutils/inspect'; import keyValMap from '../jsutils/keyValMap'; import isInvalid from '../jsutils/isInvalid'; -import type { ObjMap } from '../jsutils/ObjMap'; +import { type ObjMap } from '../jsutils/ObjMap'; import { Kind } from '../language/kinds'; -import type { ValueNode } from '../language/ast'; +import { type ValueNode } from '../language/ast'; /** * Produces a JavaScript value given a GraphQL Value AST. diff --git a/src/validation/ValidationContext.js b/src/validation/ValidationContext.js index 0f74e6dd88..9bdc6ae572 100644 --- a/src/validation/ValidationContext.js +++ b/src/validation/ValidationContext.js @@ -7,28 +7,27 @@ * @flow strict */ -import type { ObjMap } from '../jsutils/ObjMap'; -import type { GraphQLError } from '../error'; -import { visit, visitWithTypeInfo } from '../language/visitor'; +import { type ObjMap } from '../jsutils/ObjMap'; +import { type GraphQLError } from '../error'; +import { type ASTVisitor, visit, visitWithTypeInfo } from '../language/visitor'; import { Kind } from '../language/kinds'; -import type { - DocumentNode, - OperationDefinitionNode, - VariableNode, - SelectionSetNode, - FragmentSpreadNode, - FragmentDefinitionNode, +import { + type DocumentNode, + type OperationDefinitionNode, + type VariableNode, + type SelectionSetNode, + type FragmentSpreadNode, + type FragmentDefinitionNode, } from '../language/ast'; -import type { ASTVisitor } from '../language/visitor'; -import type { GraphQLSchema } from '../type/schema'; -import type { - GraphQLInputType, - GraphQLOutputType, - GraphQLCompositeType, - GraphQLField, - GraphQLArgument, +import { type GraphQLSchema } from '../type/schema'; +import { + type GraphQLInputType, + type GraphQLOutputType, + type GraphQLCompositeType, + type GraphQLField, + type GraphQLArgument, } from '../type/definition'; -import type { GraphQLDirective } from '../type/directives'; +import { type GraphQLDirective } from '../type/directives'; import { TypeInfo } from '../utilities/TypeInfo'; type NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode; diff --git a/src/validation/__tests__/harness.js b/src/validation/__tests__/harness.js index 936c041f09..388bde7578 100644 --- a/src/validation/__tests__/harness.js +++ b/src/validation/__tests__/harness.js @@ -11,7 +11,10 @@ import { expect } from 'chai'; import inspect from '../../jsutils/inspect'; import { parse, print } from '../../language'; import { validate, validateSDL } from '../validate'; -import type { ValidationRule, SDLValidationRule } from '../ValidationContext'; +import { + type ValidationRule, + type SDLValidationRule, +} from '../ValidationContext'; import { GraphQLSchema, GraphQLObjectType, diff --git a/src/validation/rules/ExecutableDefinitions.js b/src/validation/rules/ExecutableDefinitions.js index 63a0351e8d..bf5633ac6f 100644 --- a/src/validation/rules/ExecutableDefinitions.js +++ b/src/validation/rules/ExecutableDefinitions.js @@ -7,11 +7,11 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import { Kind } from '../../language/kinds'; import { isExecutableDefinitionNode } from '../../language/predicates'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function nonExecutableDefinitionMessage(defName: string): string { return `The ${defName} definition is not executable.`; diff --git a/src/validation/rules/FieldsOnCorrectType.js b/src/validation/rules/FieldsOnCorrectType.js index 17f4c6cab7..abcb020aa6 100644 --- a/src/validation/rules/FieldsOnCorrectType.js +++ b/src/validation/rules/FieldsOnCorrectType.js @@ -7,15 +7,15 @@ * @flow strict */ -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import suggestionList from '../../jsutils/suggestionList'; import quotedOrList from '../../jsutils/quotedOrList'; -import type { FieldNode } from '../../language/ast'; -import type { ASTVisitor } from '../../language/visitor'; -import type { GraphQLSchema } from '../../type/schema'; -import type { GraphQLOutputType } from '../../type/definition'; +import { type FieldNode } from '../../language/ast'; +import { type ASTVisitor } from '../../language/visitor'; +import { type GraphQLSchema } from '../../type/schema'; import { + type GraphQLOutputType, isObjectType, isInterfaceType, isAbstractType, diff --git a/src/validation/rules/FragmentsOnCompositeTypes.js b/src/validation/rules/FragmentsOnCompositeTypes.js index bf4a3bc0fb..d9ba5733d4 100644 --- a/src/validation/rules/FragmentsOnCompositeTypes.js +++ b/src/validation/rules/FragmentsOnCompositeTypes.js @@ -7,10 +7,10 @@ * @flow strict */ -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import { print } from '../../language/printer'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { isCompositeType } from '../../type/definition'; import { typeFromAST } from '../../utilities/typeFromAST'; diff --git a/src/validation/rules/KnownArgumentNames.js b/src/validation/rules/KnownArgumentNames.js index 8fb3b36245..1f97f2a6d7 100644 --- a/src/validation/rules/KnownArgumentNames.js +++ b/src/validation/rules/KnownArgumentNames.js @@ -7,12 +7,12 @@ * @flow strict */ -import type { - ValidationContext, - SDLValidationContext, +import { + type ValidationContext, + type SDLValidationContext, } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import suggestionList from '../../jsutils/suggestionList'; import quotedOrList from '../../jsutils/quotedOrList'; import { Kind } from '../../language/kinds'; diff --git a/src/validation/rules/KnownDirectives.js b/src/validation/rules/KnownDirectives.js index 7f9c52a7d6..b2f0253b8f 100644 --- a/src/validation/rules/KnownDirectives.js +++ b/src/validation/rules/KnownDirectives.js @@ -7,14 +7,14 @@ * @flow strict */ -import type { - ValidationContext, - SDLValidationContext, +import { + type ValidationContext, + type SDLValidationContext, } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import { Kind } from '../../language/kinds'; import { DirectiveLocation } from '../../language/directiveLocation'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { specifiedDirectives } from '../../type/directives'; export function unknownDirectiveMessage(directiveName: string): string { diff --git a/src/validation/rules/KnownFragmentNames.js b/src/validation/rules/KnownFragmentNames.js index 79ab9df1d2..6048dfcf36 100644 --- a/src/validation/rules/KnownFragmentNames.js +++ b/src/validation/rules/KnownFragmentNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function unknownFragmentMessage(fragName: string): string { return `Unknown fragment "${fragName}".`; diff --git a/src/validation/rules/KnownTypeNames.js b/src/validation/rules/KnownTypeNames.js index b6cf48c234..2b378573ca 100644 --- a/src/validation/rules/KnownTypeNames.js +++ b/src/validation/rules/KnownTypeNames.js @@ -7,15 +7,15 @@ * @flow strict */ -import type { - ValidationContext, - SDLValidationContext, +import { + type ValidationContext, + type SDLValidationContext, } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import suggestionList from '../../jsutils/suggestionList'; import quotedOrList from '../../jsutils/quotedOrList'; -import type { ASTNode } from '../../language/ast'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTNode } from '../../language/ast'; +import { type ASTVisitor } from '../../language/visitor'; import { isTypeDefinitionNode, isTypeSystemDefinitionNode, diff --git a/src/validation/rules/LoneAnonymousOperation.js b/src/validation/rules/LoneAnonymousOperation.js index 485f30c09e..a0febd5436 100644 --- a/src/validation/rules/LoneAnonymousOperation.js +++ b/src/validation/rules/LoneAnonymousOperation.js @@ -7,10 +7,10 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import { Kind } from '../../language/kinds'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function anonOperationNotAloneMessage(): string { return 'This anonymous operation must be the only defined operation.'; diff --git a/src/validation/rules/LoneSchemaDefinition.js b/src/validation/rules/LoneSchemaDefinition.js index f364d4d615..c01e172543 100644 --- a/src/validation/rules/LoneSchemaDefinition.js +++ b/src/validation/rules/LoneSchemaDefinition.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { SDLValidationContext } from '../ValidationContext'; +import { type SDLValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function schemaDefinitionNotAloneMessage(): string { return 'Must provide only one schema definition.'; diff --git a/src/validation/rules/NoFragmentCycles.js b/src/validation/rules/NoFragmentCycles.js index 70a255e424..993a82253d 100644 --- a/src/validation/rules/NoFragmentCycles.js +++ b/src/validation/rules/NoFragmentCycles.js @@ -7,10 +7,10 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { FragmentDefinitionNode } from '../../language/ast'; -import type { ASTVisitor } from '../../language/visitor'; +import { type FragmentDefinitionNode } from '../../language/ast'; +import { type ASTVisitor } from '../../language/visitor'; export function cycleErrorMessage( fragName: string, diff --git a/src/validation/rules/NoUndefinedVariables.js b/src/validation/rules/NoUndefinedVariables.js index 1a6282234e..79a02e8a30 100644 --- a/src/validation/rules/NoUndefinedVariables.js +++ b/src/validation/rules/NoUndefinedVariables.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function undefinedVarMessage(varName: string, opName: ?string): string { return opName diff --git a/src/validation/rules/NoUnusedFragments.js b/src/validation/rules/NoUnusedFragments.js index c36772553e..b542ab4969 100644 --- a/src/validation/rules/NoUnusedFragments.js +++ b/src/validation/rules/NoUnusedFragments.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function unusedFragMessage(fragName: string): string { return `Fragment "${fragName}" is never used.`; diff --git a/src/validation/rules/NoUnusedVariables.js b/src/validation/rules/NoUnusedVariables.js index ccbc092b0b..151964e82a 100644 --- a/src/validation/rules/NoUnusedVariables.js +++ b/src/validation/rules/NoUnusedVariables.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function unusedVariableMessage( varName: string, diff --git a/src/validation/rules/OverlappingFieldsCanBeMerged.js b/src/validation/rules/OverlappingFieldsCanBeMerged.js index 955deca747..30ac039fae 100644 --- a/src/validation/rules/OverlappingFieldsCanBeMerged.js +++ b/src/validation/rules/OverlappingFieldsCanBeMerged.js @@ -9,20 +9,24 @@ import find from '../../polyfills/find'; import objectEntries from '../../polyfills/objectEntries'; -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import inspect from '../../jsutils/inspect'; -import type { ObjMap } from '../../jsutils/ObjMap'; -import type { - SelectionSetNode, - FieldNode, - ArgumentNode, - FragmentDefinitionNode, +import { type ObjMap } from '../../jsutils/ObjMap'; +import { + type SelectionSetNode, + type FieldNode, + type ArgumentNode, + type FragmentDefinitionNode, } from '../../language/ast'; import { Kind } from '../../language/kinds'; import { print } from '../../language/printer'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { + type GraphQLNamedType, + type GraphQLOutputType, + type GraphQLCompositeType, + type GraphQLField, getNamedType, isNonNullType, isLeafType, @@ -30,12 +34,6 @@ import { isListType, isInterfaceType, } from '../../type/definition'; -import type { - GraphQLNamedType, - GraphQLOutputType, - GraphQLCompositeType, - GraphQLField, -} from '../../type/definition'; import { typeFromAST } from '../../utilities/typeFromAST'; export function fieldsConflictMessage( diff --git a/src/validation/rules/PossibleFragmentSpreads.js b/src/validation/rules/PossibleFragmentSpreads.js index 61275e09da..ae9e2db769 100644 --- a/src/validation/rules/PossibleFragmentSpreads.js +++ b/src/validation/rules/PossibleFragmentSpreads.js @@ -8,9 +8,9 @@ */ import inspect from '../../jsutils/inspect'; -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { doTypesOverlap } from '../../utilities/typeComparators'; import { typeFromAST } from '../../utilities/typeFromAST'; import { isCompositeType } from '../../type/definition'; diff --git a/src/validation/rules/PossibleTypeExtensions.js b/src/validation/rules/PossibleTypeExtensions.js index e5079ba256..988169599d 100644 --- a/src/validation/rules/PossibleTypeExtensions.js +++ b/src/validation/rules/PossibleTypeExtensions.js @@ -9,11 +9,11 @@ import quotedOrList from '../../jsutils/quotedOrList'; import suggestionList from '../../jsutils/suggestionList'; -import type { SDLValidationContext } from '../ValidationContext'; +import { type SDLValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import { Kind } from '../../language/kinds'; import { isTypeDefinitionNode } from '../../language/predicates'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { isScalarType, isObjectType, diff --git a/src/validation/rules/ProvidedRequiredArguments.js b/src/validation/rules/ProvidedRequiredArguments.js index 7e461faea3..4ac40f4f64 100644 --- a/src/validation/rules/ProvidedRequiredArguments.js +++ b/src/validation/rules/ProvidedRequiredArguments.js @@ -7,16 +7,16 @@ * @flow strict */ -import type { - ValidationContext, - SDLValidationContext, +import { + type ValidationContext, + type SDLValidationContext, } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import { Kind } from '../../language/kinds'; import inspect from '../../jsutils/inspect'; import keyMap from '../../jsutils/keyMap'; import { isType, isRequiredArgument } from '../../type/definition'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { print } from '../../language/printer'; import { specifiedDirectives } from '../../type/directives'; diff --git a/src/validation/rules/ScalarLeafs.js b/src/validation/rules/ScalarLeafs.js index d0176556b8..b729e1a746 100644 --- a/src/validation/rules/ScalarLeafs.js +++ b/src/validation/rules/ScalarLeafs.js @@ -8,11 +8,11 @@ */ import inspect from '../../jsutils/inspect'; -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { FieldNode } from '../../language/ast'; +import { type FieldNode } from '../../language/ast'; import { getNamedType, isLeafType } from '../../type/definition'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function noSubselectionAllowedMessage( fieldName: string, diff --git a/src/validation/rules/SingleFieldSubscriptions.js b/src/validation/rules/SingleFieldSubscriptions.js index 2f2a6d8f9a..268f22a5b6 100644 --- a/src/validation/rules/SingleFieldSubscriptions.js +++ b/src/validation/rules/SingleFieldSubscriptions.js @@ -7,10 +7,10 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { OperationDefinitionNode } from '../../language/ast'; -import type { ASTVisitor } from '../../language/visitor'; +import { type OperationDefinitionNode } from '../../language/ast'; +import { type ASTVisitor } from '../../language/visitor'; export function singleFieldOnlyMessage(name: ?string): string { return ( diff --git a/src/validation/rules/UniqueArgumentNames.js b/src/validation/rules/UniqueArgumentNames.js index 4f2309dacb..72f192c325 100644 --- a/src/validation/rules/UniqueArgumentNames.js +++ b/src/validation/rules/UniqueArgumentNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateArgMessage(argName: string): string { return `There can be only one argument named "${argName}".`; diff --git a/src/validation/rules/UniqueDirectiveNames.js b/src/validation/rules/UniqueDirectiveNames.js index 2bfb07a591..506e109c85 100644 --- a/src/validation/rules/UniqueDirectiveNames.js +++ b/src/validation/rules/UniqueDirectiveNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { SDLValidationContext } from '../ValidationContext'; +import { type SDLValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateDirectiveNameMessage(directiveName: string): string { return `There can be only one directive named "${directiveName}".`; diff --git a/src/validation/rules/UniqueDirectivesPerLocation.js b/src/validation/rules/UniqueDirectivesPerLocation.js index ef90ac3ece..8d8ef2143b 100644 --- a/src/validation/rules/UniqueDirectivesPerLocation.js +++ b/src/validation/rules/UniqueDirectivesPerLocation.js @@ -7,10 +7,10 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { DirectiveNode } from '../../language/ast'; -import type { ASTVisitor } from '../../language/visitor'; +import { type DirectiveNode } from '../../language/ast'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateDirectiveMessage(directiveName: string): string { return ( diff --git a/src/validation/rules/UniqueEnumValueNames.js b/src/validation/rules/UniqueEnumValueNames.js index 05c11137fe..ecd1e8626b 100644 --- a/src/validation/rules/UniqueEnumValueNames.js +++ b/src/validation/rules/UniqueEnumValueNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { SDLValidationContext } from '../ValidationContext'; +import { type SDLValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { isEnumType } from '../../type/definition'; export function duplicateEnumValueNameMessage( diff --git a/src/validation/rules/UniqueFieldDefinitionNames.js b/src/validation/rules/UniqueFieldDefinitionNames.js index 40fb31970c..ad9e997889 100644 --- a/src/validation/rules/UniqueFieldDefinitionNames.js +++ b/src/validation/rules/UniqueFieldDefinitionNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { SDLValidationContext } from '../ValidationContext'; +import { type SDLValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { isObjectType, isInterfaceType, diff --git a/src/validation/rules/UniqueFragmentNames.js b/src/validation/rules/UniqueFragmentNames.js index 8d4544d969..e95f1e3529 100644 --- a/src/validation/rules/UniqueFragmentNames.js +++ b/src/validation/rules/UniqueFragmentNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateFragmentNameMessage(fragName: string): string { return `There can be only one fragment named "${fragName}".`; diff --git a/src/validation/rules/UniqueInputFieldNames.js b/src/validation/rules/UniqueInputFieldNames.js index 2ec6cca01c..8cd6de092f 100644 --- a/src/validation/rules/UniqueInputFieldNames.js +++ b/src/validation/rules/UniqueInputFieldNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateInputFieldMessage(fieldName: string): string { return `There can be only one input field named "${fieldName}".`; diff --git a/src/validation/rules/UniqueOperationNames.js b/src/validation/rules/UniqueOperationNames.js index 1c5d745e2f..4b94c18b3b 100644 --- a/src/validation/rules/UniqueOperationNames.js +++ b/src/validation/rules/UniqueOperationNames.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; +import { type ASTValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateOperationNameMessage(operationName: string): string { return `There can be only one operation named "${operationName}".`; diff --git a/src/validation/rules/UniqueOperationTypes.js b/src/validation/rules/UniqueOperationTypes.js index 7a2c1924c1..8eda3bbe1d 100644 --- a/src/validation/rules/UniqueOperationTypes.js +++ b/src/validation/rules/UniqueOperationTypes.js @@ -7,9 +7,9 @@ * @flow strict */ -import type { SDLValidationContext } from '../ValidationContext'; +import { type SDLValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateOperationTypeMessage(operation: string): string { return `There can be only one ${operation} type in schema.`; diff --git a/src/validation/rules/UniqueTypeNames.js b/src/validation/rules/UniqueTypeNames.js index de578f373a..ccc1b7ba0b 100644 --- a/src/validation/rules/UniqueTypeNames.js +++ b/src/validation/rules/UniqueTypeNames.js @@ -7,10 +7,10 @@ * @flow strict */ -import type { SDLValidationContext } from '../ValidationContext'; +import { type SDLValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; -import type { TypeDefinitionNode } from '../../language/ast'; +import { type ASTVisitor } from '../../language/visitor'; +import { type TypeDefinitionNode } from '../../language/ast'; export function duplicateTypeNameMessage(typeName: string): string { return `There can be only one type named "${typeName}".`; diff --git a/src/validation/rules/UniqueVariableNames.js b/src/validation/rules/UniqueVariableNames.js index a78bd6f83f..106d5d96b8 100644 --- a/src/validation/rules/UniqueVariableNames.js +++ b/src/validation/rules/UniqueVariableNames.js @@ -7,10 +7,10 @@ * @flow strict */ -import type { ASTValidationContext } from '../ValidationContext'; -import type { VariableDefinitionNode } from '../../language/ast'; +import { type ASTValidationContext } from '../ValidationContext'; +import { type VariableDefinitionNode } from '../../language/ast'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; export function duplicateVariableMessage(variableName: string): string { return `There can be only one variable named "${variableName}".`; diff --git a/src/validation/rules/ValuesOfCorrectType.js b/src/validation/rules/ValuesOfCorrectType.js index f6945c3794..2042a44f60 100644 --- a/src/validation/rules/ValuesOfCorrectType.js +++ b/src/validation/rules/ValuesOfCorrectType.js @@ -8,12 +8,13 @@ */ import objectValues from '../../polyfills/objectValues'; -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { ValueNode } from '../../language/ast'; +import { type ValueNode } from '../../language/ast'; import { print } from '../../language/printer'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { + type GraphQLType, isScalarType, isEnumType, isInputObjectType, @@ -23,7 +24,6 @@ import { getNullableType, getNamedType, } from '../../type/definition'; -import type { GraphQLType } from '../../type/definition'; import inspect from '../../jsutils/inspect'; import isInvalid from '../../jsutils/isInvalid'; import keyMap from '../../jsutils/keyMap'; diff --git a/src/validation/rules/VariablesAreInputTypes.js b/src/validation/rules/VariablesAreInputTypes.js index 205793e236..9e749db71a 100644 --- a/src/validation/rules/VariablesAreInputTypes.js +++ b/src/validation/rules/VariablesAreInputTypes.js @@ -7,11 +7,11 @@ * @flow strict */ -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; -import type { VariableDefinitionNode } from '../../language/ast'; +import { type VariableDefinitionNode } from '../../language/ast'; import { print } from '../../language/printer'; -import type { ASTVisitor } from '../../language/visitor'; +import { type ASTVisitor } from '../../language/visitor'; import { isInputType } from '../../type/definition'; import { typeFromAST } from '../../utilities/typeFromAST'; diff --git a/src/validation/rules/VariablesInAllowedPosition.js b/src/validation/rules/VariablesInAllowedPosition.js index 918de4ca44..3631697c32 100644 --- a/src/validation/rules/VariablesInAllowedPosition.js +++ b/src/validation/rules/VariablesInAllowedPosition.js @@ -8,16 +8,15 @@ */ import inspect from '../../jsutils/inspect'; -import type { ValidationContext } from '../ValidationContext'; +import { type ValidationContext } from '../ValidationContext'; import { GraphQLError } from '../../error/GraphQLError'; import { Kind } from '../../language/kinds'; -import type { ValueNode } from '../../language/ast'; -import type { ASTVisitor } from '../../language/visitor'; -import { isNonNullType } from '../../type/definition'; +import { type ValueNode } from '../../language/ast'; +import { type ASTVisitor } from '../../language/visitor'; +import { type GraphQLType, isNonNullType } from '../../type/definition'; import { isTypeSubTypeOf } from '../../utilities/typeComparators'; import { typeFromAST } from '../../utilities/typeFromAST'; -import type { GraphQLType } from '../../type/definition'; -import type { GraphQLSchema } from '../../type/schema'; +import { type GraphQLSchema } from '../../type/schema'; export function badVarPosMessage( varName: string, diff --git a/src/validation/specifiedRules.js b/src/validation/specifiedRules.js index 3f5161f5c2..094726fef2 100644 --- a/src/validation/specifiedRules.js +++ b/src/validation/specifiedRules.js @@ -7,7 +7,10 @@ * @flow strict */ -import type { ValidationRule, SDLValidationRule } from './ValidationContext'; +import { + type ValidationRule, + type SDLValidationRule, +} from './ValidationContext'; // Spec Section: "Executable Definitions" import { ExecutableDefinitions } from './rules/ExecutableDefinitions'; @@ -67,7 +70,10 @@ import { KnownDirectives } from './rules/KnownDirectives'; import { UniqueDirectivesPerLocation } from './rules/UniqueDirectivesPerLocation'; // Spec Section: "Argument Names" -import { KnownArgumentNames } from './rules/KnownArgumentNames'; +import { + KnownArgumentNames, + KnownArgumentNamesOnDirectives, // @internal +} from './rules/KnownArgumentNames'; // Spec Section: "Argument Uniqueness" import { UniqueArgumentNames } from './rules/UniqueArgumentNames'; @@ -76,7 +82,10 @@ import { UniqueArgumentNames } from './rules/UniqueArgumentNames'; import { ValuesOfCorrectType } from './rules/ValuesOfCorrectType'; // Spec Section: "Argument Optionality" -import { ProvidedRequiredArguments } from './rules/ProvidedRequiredArguments'; +import { + ProvidedRequiredArguments, + ProvidedRequiredArgumentsOnDirectives, // @internal +} from './rules/ProvidedRequiredArguments'; // Spec Section: "All Variable Usages Are Allowed" import { VariablesInAllowedPosition } from './rules/VariablesInAllowedPosition'; @@ -129,8 +138,6 @@ import { UniqueEnumValueNames } from './rules/UniqueEnumValueNames'; import { UniqueFieldDefinitionNames } from './rules/UniqueFieldDefinitionNames'; import { UniqueDirectiveNames } from './rules/UniqueDirectiveNames'; import { PossibleTypeExtensions } from './rules/PossibleTypeExtensions'; -import { KnownArgumentNamesOnDirectives } from './rules/KnownArgumentNames'; -import { ProvidedRequiredArgumentsOnDirectives } from './rules/ProvidedRequiredArguments'; // @internal export const specifiedSDLRules: $ReadOnlyArray = [ diff --git a/src/validation/validate.js b/src/validation/validate.js index e7359c4235..bc80f47643 100644 --- a/src/validation/validate.js +++ b/src/validation/validate.js @@ -8,15 +8,19 @@ */ import invariant from '../jsutils/invariant'; -import type { GraphQLError } from '../error'; +import { type GraphQLError } from '../error'; import { visit, visitInParallel, visitWithTypeInfo } from '../language/visitor'; -import type { DocumentNode } from '../language/ast'; -import type { GraphQLSchema } from '../type/schema'; +import { type DocumentNode } from '../language/ast'; +import { type GraphQLSchema } from '../type/schema'; import { assertValidSchema } from '../type/validate'; import { TypeInfo } from '../utilities/TypeInfo'; import { specifiedRules, specifiedSDLRules } from './specifiedRules'; -import type { SDLValidationRule, ValidationRule } from './ValidationContext'; -import { SDLValidationContext, ValidationContext } from './ValidationContext'; +import { + type SDLValidationRule, + type ValidationRule, + SDLValidationContext, + ValidationContext, +} from './ValidationContext'; /** * Implements the "Validation" section of the spec.