Skip to content

Commit

Permalink
Switch tests & internal funcs to accept ReadonlyArrays (#3181)
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanGoncharov committed Jun 15, 2021
1 parent 2490f44 commit 4d92729
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 34 deletions.
2 changes: 1 addition & 1 deletion src/__testUtils__/__tests__/genFuzzStrings-test.ts
Expand Up @@ -4,7 +4,7 @@ import { describe, it } from 'mocha';
import { genFuzzStrings } from '../genFuzzStrings';

function expectFuzzStrings(options: {
allowedChars: Array<string>;
allowedChars: ReadonlyArray<string>;
maxLength: number;
}) {
return expect([...genFuzzStrings(options)]);
Expand Down
2 changes: 1 addition & 1 deletion src/__testUtils__/genFuzzStrings.ts
Expand Up @@ -2,7 +2,7 @@
* Generator that produces all possible combinations of allowed characters.
*/
export function* genFuzzStrings(options: {
allowedChars: Array<string>;
allowedChars: ReadonlyArray<string>;
maxLength: number;
}): Generator<string, void, void> {
const { allowedChars, maxLength } = options;
Expand Down
12 changes: 6 additions & 6 deletions src/__tests__/starWarsData.ts
Expand Up @@ -5,25 +5,25 @@
export interface Character {
id: string;
name: string;
friends: Array<string>;
appearsIn: Array<number>;
friends: ReadonlyArray<string>;
appearsIn: ReadonlyArray<number>;
}

export interface Human {
type: 'Human';
id: string;
name: string;
friends: Array<string>;
appearsIn: Array<number>;
friends: ReadonlyArray<string>;
appearsIn: ReadonlyArray<number>;
homePlanet?: string;
}

export interface Droid {
type: 'Droid';
id: string;
name: string;
friends: Array<string>;
appearsIn: Array<number>;
friends: ReadonlyArray<string>;
appearsIn: ReadonlyArray<number>;
primaryFunction: string;
}

Expand Down
2 changes: 1 addition & 1 deletion src/execution/__tests__/lists-test.ts
Expand Up @@ -37,7 +37,7 @@ describe('Execute: Accepts any iterable as list value', () => {
});

it('Accepts function arguments as a List value', () => {
function getArgs(..._args: Array<string>) {
function getArgs(..._args: ReadonlyArray<string>) {
return arguments;
}
const listField = getArgs('one', 'two');
Expand Down
12 changes: 6 additions & 6 deletions src/execution/__tests__/union-interface-test.ts
Expand Up @@ -19,7 +19,7 @@ class Dog {
barks: boolean;
mother?: Dog;
father?: Dog;
progeny: Array<Dog>;
progeny: ReadonlyArray<Dog>;

constructor(name: string, barks: boolean) {
this.name = name;
Expand All @@ -33,7 +33,7 @@ class Cat {
meows: boolean;
mother?: Cat;
father?: Cat;
progeny: Array<Cat>;
progeny: ReadonlyArray<Cat>;

constructor(name: string, meows: boolean) {
this.name = name;
Expand All @@ -44,13 +44,13 @@ class Cat {

class Person {
name: string;
pets?: Array<Dog | Cat>;
friends?: Array<Dog | Cat | Person>;
pets?: ReadonlyArray<Dog | Cat>;
friends?: ReadonlyArray<Dog | Cat | Person>;

constructor(
name: string,
pets?: Array<Dog | Cat>,
friends?: Array<Dog | Cat | Person>,
pets?: ReadonlyArray<Dog | Cat>,
friends?: ReadonlyArray<Dog | Cat | Person>,
) {
this.name = name;
this.pets = pets;
Expand Down
8 changes: 4 additions & 4 deletions src/execution/execute.ts
Expand Up @@ -375,7 +375,7 @@ function executeFieldsSerially(
parentType: GraphQLObjectType,
sourceValue: unknown,
path: Path | undefined,
fields: Map<string, Array<FieldNode>>,
fields: Map<string, ReadonlyArray<FieldNode>>,
): PromiseOrValue<ObjMap<unknown>> {
return promiseReduce(
fields.entries(),
Expand Down Expand Up @@ -413,7 +413,7 @@ function executeFields(
parentType: GraphQLObjectType,
sourceValue: unknown,
path: Path | undefined,
fields: Map<string, Array<FieldNode>>,
fields: Map<string, ReadonlyArray<FieldNode>>,
): PromiseOrValue<ObjMap<unknown>> {
const results = Object.create(null);
let containsPromise = false;
Expand Down Expand Up @@ -463,7 +463,7 @@ export function collectFields(
selectionSet: SelectionSetNode,
fields: Map<string, Array<FieldNode>>,
visitedFragmentNames: Set<string>,
): Map<string, Array<FieldNode>> {
): Map<string, ReadonlyArray<FieldNode>> {
for (const selection of selectionSet.selections) {
switch (selection.kind) {
case Kind.FIELD: {
Expand Down Expand Up @@ -1075,7 +1075,7 @@ function _collectSubfields(
exeContext: ExecutionContext,
returnType: GraphQLObjectType,
fieldNodes: ReadonlyArray<FieldNode>,
): Map<string, Array<FieldNode>> {
): Map<string, ReadonlyArray<FieldNode>> {
let subFieldNodes = new Map();
const visitedFragmentNames = new Set<string>();
for (const node of fieldNodes) {
Expand Down
2 changes: 1 addition & 1 deletion src/jsutils/__tests__/suggestionList-test.ts
Expand Up @@ -3,7 +3,7 @@ import { describe, it } from 'mocha';

import { suggestionList } from '../suggestionList';

function expectSuggestions(input: string, options: Array<string>) {
function expectSuggestions(input: string, options: ReadonlyArray<string>) {
return expect(suggestionList(input, options));
}

Expand Down
16 changes: 11 additions & 5 deletions src/jsutils/inspect.ts
Expand Up @@ -8,7 +8,10 @@ export function inspect(value: unknown): string {
return formatValue(value, []);
}

function formatValue(value: unknown, seenValues: Array<unknown>): string {
function formatValue(
value: unknown,
seenValues: ReadonlyArray<unknown>,
): string {
switch (typeof value) {
case 'string':
return JSON.stringify(value);
Expand All @@ -23,7 +26,7 @@ function formatValue(value: unknown, seenValues: Array<unknown>): string {

function formatObjectValue(
value: object | null,
previouslySeenValues: Array<unknown>,
previouslySeenValues: ReadonlyArray<unknown>,
): string {
if (value === null) {
return 'null';
Expand Down Expand Up @@ -55,7 +58,10 @@ function isJSONable(value: any): value is { toJSON: () => unknown } {
return typeof value.toJSON === 'function';
}

function formatObject(object: object, seenValues: Array<unknown>): string {
function formatObject(
object: object,
seenValues: ReadonlyArray<unknown>,
): string {
const entries = Object.entries(object);
if (entries.length === 0) {
return '{}';
Expand All @@ -72,8 +78,8 @@ function formatObject(object: object, seenValues: Array<unknown>): string {
}

function formatArray(
array: Array<unknown>,
seenValues: Array<unknown>,
array: ReadonlyArray<unknown>,
seenValues: ReadonlyArray<unknown>,
): string {
if (array.length === 0) {
return '[]';
Expand Down
2 changes: 1 addition & 1 deletion src/language/__tests__/blockString-test.ts
Expand Up @@ -7,7 +7,7 @@ import {
printBlockString,
} from '../blockString';

function joinLines(...args: Array<string>) {
function joinLines(...args: ReadonlyArray<string>) {
return args.join('\n');
}

Expand Down
8 changes: 4 additions & 4 deletions src/type/__tests__/validation-test.ts
Expand Up @@ -79,7 +79,7 @@ function withModifiers<T extends GraphQLNamedType>(
];
}

const outputTypes: Array<GraphQLOutputType> = [
const outputTypes: ReadonlyArray<GraphQLOutputType> = [
...withModifiers(GraphQLString),
...withModifiers(SomeScalarType),
...withModifiers(SomeEnumType),
Expand All @@ -88,18 +88,18 @@ const outputTypes: Array<GraphQLOutputType> = [
...withModifiers(SomeInterfaceType),
];

const notOutputTypes: Array<GraphQLInputType> = [
const notOutputTypes: ReadonlyArray<GraphQLInputType> = [
...withModifiers(SomeInputObjectType),
];

const inputTypes: Array<GraphQLInputType> = [
const inputTypes: ReadonlyArray<GraphQLInputType> = [
...withModifiers(GraphQLString),
...withModifiers(SomeScalarType),
...withModifiers(SomeEnumType),
...withModifiers(SomeInputObjectType),
];

const notInputTypes: Array<GraphQLOutputType> = [
const notInputTypes: ReadonlyArray<GraphQLOutputType> = [
...withModifiers(SomeObjectType),
...withModifiers(SomeUnionType),
...withModifiers(SomeInterfaceType),
Expand Down
6 changes: 3 additions & 3 deletions src/utilities/findBreakingChanges.ts
Expand Up @@ -557,9 +557,9 @@ function diff<T extends { name: string }>(
oldArray: ReadonlyArray<T>,
newArray: ReadonlyArray<T>,
): {
added: Array<T>;
removed: Array<T>;
persisted: Array<[T, T]>;
added: ReadonlyArray<T>;
removed: ReadonlyArray<T>;
persisted: ReadonlyArray<[T, T]>;
} {
const added: Array<T> = [];
const removed: Array<T> = [];
Expand Down
2 changes: 1 addition & 1 deletion src/utilities/separateOperations.ts
Expand Up @@ -63,7 +63,7 @@ export function separateOperations(
return separatedDocumentASTs;
}

type DepGraph = ObjMap<Array<string>>;
type DepGraph = ObjMap<ReadonlyArray<string>>;

// From a dependency graph, collects a list of transitive dependencies by
// recursing through a dependency graph.
Expand Down

0 comments on commit 4d92729

Please sign in to comment.