From 9b2e626541f9911c25aa6c95ec2036adf8781f72 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Fri, 28 Jun 2019 23:17:30 +0300 Subject: [PATCH] Switch some of arguments from `Array` to `$ReadOnlyArray` (#2001) --- src/execution/values.js | 2 +- src/jsutils/dedent.js | 4 ++-- src/language/blockString.js | 4 +++- src/language/printLocation.js | 2 +- src/language/visitor.js | 2 +- src/type/definition.js | 2 +- src/utilities/lexicographicSortSchema.js | 2 +- src/validation/rules/FieldsOnCorrectType.js | 4 ++-- src/validation/rules/KnownArgumentNames.js | 4 ++-- src/validation/rules/KnownTypeNames.js | 2 +- src/validation/rules/NoFragmentCycles.js | 2 +- src/validation/rules/OverlappingFieldsCanBeMerged.js | 2 +- src/validation/rules/PossibleTypeExtensions.js | 2 +- 13 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/execution/values.js b/src/execution/values.js index 5d55281e5d..b4d8eafc4a 100644 --- a/src/execution/values.js +++ b/src/execution/values.js @@ -40,7 +40,7 @@ type CoercedVariableValues = {| */ export function getVariableValues( schema: GraphQLSchema, - varDefNodes: Array, + varDefNodes: $ReadOnlyArray, inputs: ObjMap, ): CoercedVariableValues { const errors = []; diff --git a/src/jsutils/dedent.js b/src/jsutils/dedent.js index 24b07f147a..d7270f8c56 100644 --- a/src/jsutils/dedent.js +++ b/src/jsutils/dedent.js @@ -13,8 +13,8 @@ * str === "{\n test\n}\n"; */ export default function dedent( - strings: Array, - ...values: Array + strings: $ReadOnlyArray, + ...values: $ReadOnlyArray ): string { let str = ''; diff --git a/src/language/blockString.js b/src/language/blockString.js index ac5023d15d..913fad521d 100644 --- a/src/language/blockString.js +++ b/src/language/blockString.js @@ -32,7 +32,9 @@ export function dedentBlockStringValue(rawString: string): string { } // @internal -export function getBlockStringIndentation(lines: Array): number { +export function getBlockStringIndentation( + lines: $ReadOnlyArray, +): number { let commonIndent = null; for (let i = 1; i < lines.length; i++) { diff --git a/src/language/printLocation.js b/src/language/printLocation.js index 7cff1602fb..5180fec10c 100644 --- a/src/language/printLocation.js +++ b/src/language/printLocation.js @@ -67,7 +67,7 @@ export function printSourceLocation( ); } -function printPrefixedLines(lines: Array<[string, string]>): string { +function printPrefixedLines(lines: $ReadOnlyArray<[string, string]>): string { const existingLines = lines.filter(([_, line]) => line !== undefined); const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length)); diff --git a/src/language/visitor.js b/src/language/visitor.js index a57baab5c6..4665259bae 100644 --- a/src/language/visitor.js +++ b/src/language/visitor.js @@ -354,7 +354,7 @@ function isNode(maybeNode): boolean %checks { * If a prior visitor edits a node, no following visitors will see that node. */ export function visitInParallel( - visitors: Array>, + visitors: $ReadOnlyArray>, ): Visitor { const skipping = new Array(visitors.length); diff --git a/src/type/definition.js b/src/type/definition.js index 7e540e7264..5a899c4179 100644 --- a/src/type/definition.js +++ b/src/type/definition.js @@ -803,7 +803,7 @@ function fieldsToFieldsConfig(fields) { } export function argsToArgsConfig( - args: Array, + args: $ReadOnlyArray, ): GraphQLFieldConfigArgumentMap { return keyValMap( args, diff --git a/src/utilities/lexicographicSortSchema.js b/src/utilities/lexicographicSortSchema.js index 6c9a021e21..cf6675e840 100644 --- a/src/utilities/lexicographicSortSchema.js +++ b/src/utilities/lexicographicSortSchema.js @@ -94,7 +94,7 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema { })); } - function sortTypes(arr: Array): Array { + function sortTypes(arr: $ReadOnlyArray): Array { return sortByName(arr).map(replaceNamedType); } diff --git a/src/validation/rules/FieldsOnCorrectType.js b/src/validation/rules/FieldsOnCorrectType.js index 1f860c6a58..889976953c 100644 --- a/src/validation/rules/FieldsOnCorrectType.js +++ b/src/validation/rules/FieldsOnCorrectType.js @@ -17,8 +17,8 @@ import { export function undefinedFieldMessage( fieldName: string, type: string, - suggestedTypeNames: Array, - suggestedFieldNames: Array, + suggestedTypeNames: $ReadOnlyArray, + suggestedFieldNames: $ReadOnlyArray, ): string { const quotedTypeNames = suggestedTypeNames.map(x => `"${x}"`); const quotedFieldNames = suggestedFieldNames.map(x => `"${x}"`); diff --git a/src/validation/rules/KnownArgumentNames.js b/src/validation/rules/KnownArgumentNames.js index 37cfad7efd..97978ec8a9 100644 --- a/src/validation/rules/KnownArgumentNames.js +++ b/src/validation/rules/KnownArgumentNames.js @@ -15,7 +15,7 @@ export function unknownArgMessage( argName: string, fieldName: string, typeName: string, - suggestedArgs: Array, + suggestedArgs: $ReadOnlyArray, ): string { return ( `Unknown argument "${argName}" on field "${fieldName}" of type "${typeName}".` + @@ -26,7 +26,7 @@ export function unknownArgMessage( export function unknownDirectiveArgMessage( argName: string, directiveName: string, - suggestedArgs: Array, + suggestedArgs: $ReadOnlyArray, ): string { return ( `Unknown argument "${argName}" on directive "@${directiveName}".` + diff --git a/src/validation/rules/KnownTypeNames.js b/src/validation/rules/KnownTypeNames.js index 40b03dd525..22c01c1de8 100644 --- a/src/validation/rules/KnownTypeNames.js +++ b/src/validation/rules/KnownTypeNames.js @@ -18,7 +18,7 @@ import { specifiedScalarTypes } from '../../type/scalars'; export function unknownTypeMessage( typeName: string, - suggestedTypes: Array, + suggestedTypes: $ReadOnlyArray, ): string { return ( `Unknown type "${typeName}".` + diff --git a/src/validation/rules/NoFragmentCycles.js b/src/validation/rules/NoFragmentCycles.js index d89833cfbf..4792968eb9 100644 --- a/src/validation/rules/NoFragmentCycles.js +++ b/src/validation/rules/NoFragmentCycles.js @@ -7,7 +7,7 @@ import { type ASTVisitor } from '../../language/visitor'; export function cycleErrorMessage( fragName: string, - spreadNames: Array, + spreadNames: $ReadOnlyArray, ): string { const via = spreadNames.length ? ' via ' + spreadNames.join(', ') : ''; return `Cannot spread fragment "${fragName}" within itself${via}.`; diff --git a/src/validation/rules/OverlappingFieldsCanBeMerged.js b/src/validation/rules/OverlappingFieldsCanBeMerged.js index a0e91af7ad..a7c23cc0a6 100644 --- a/src/validation/rules/OverlappingFieldsCanBeMerged.js +++ b/src/validation/rules/OverlappingFieldsCanBeMerged.js @@ -779,7 +779,7 @@ function _collectFieldsAndFragmentNames( // Given a series of Conflicts which occurred between two sub-fields, generate // a single Conflict. function subfieldConflicts( - conflicts: Array, + conflicts: $ReadOnlyArray, responseName: string, node1: FieldNode, node2: FieldNode, diff --git a/src/validation/rules/PossibleTypeExtensions.js b/src/validation/rules/PossibleTypeExtensions.js index 8542a62c82..c70909786b 100644 --- a/src/validation/rules/PossibleTypeExtensions.js +++ b/src/validation/rules/PossibleTypeExtensions.js @@ -18,7 +18,7 @@ import { export function extendingUnknownTypeMessage( typeName: string, - suggestedTypes: Array, + suggestedTypes: $ReadOnlyArray, ): string { return ( `Cannot extend type "${typeName}" because it is not defined.` +