Skip to content

Commit

Permalink
Flow: switch to exact types (#253)
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanGoncharov committed Jun 24, 2020
1 parent 3b1a398 commit 52863ad
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 22 deletions.
4 changes: 2 additions & 2 deletions .flowconfig
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ unsafe-getters-setters=error
unnecessary-optional-chain=error
unnecessary-invariant=error
signature-verification-failure=error
implicit-inexact-object=off
ambiguous-object-type=off
implicit-inexact-object=error
ambiguous-object-type=error
uninitialized-instance-property=error
unsafe-addition=error

Expand Down
4 changes: 2 additions & 2 deletions src/connection/arrayconnection.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import type {

import { base64, unbase64 } from '../utils/base64.js';

type ArraySliceMetaInfo = {
type ArraySliceMetaInfo = {|
sliceStart: number,
arrayLength: number,
};
|};

/**
* A simple function that accepts an array and connection arguments, and returns
Expand Down
8 changes: 4 additions & 4 deletions src/connection/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,19 @@ export const connectionArgs: GraphQLFieldConfigArgumentMap = {
...backwardConnectionArgs,
};

type ConnectionConfig = {
type ConnectionConfig = {|
name?: ?string,
nodeType: GraphQLObjectType,
resolveNode?: ?GraphQLFieldResolver<*, *>,
resolveCursor?: ?GraphQLFieldResolver<*, *>,
edgeFields?: ?Thunk<GraphQLFieldConfigMap<*, *>>,
connectionFields?: ?Thunk<GraphQLFieldConfigMap<*, *>>,
};
|};

type GraphQLConnectionDefinitions = {
type GraphQLConnectionDefinitions = {|
edgeType: GraphQLObjectType,
connectionType: GraphQLObjectType,
};
|};

function resolveMaybeThunk<T>(thingOrThunk: Thunk<T>): T {
return typeof thingOrThunk === 'function'
Expand Down
13 changes: 7 additions & 6 deletions src/connection/connectiontypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,28 @@ export type ConnectionCursor = string;
/**
* A flow type designed to be exposed as `PageInfo` over GraphQL.
*/
export type PageInfo = {
export type PageInfo = {|
startCursor: ?ConnectionCursor,
endCursor: ?ConnectionCursor,
hasPreviousPage: ?boolean,
hasNextPage: ?boolean,
};
|};

/**
* A flow type designed to be exposed as a `Connection` over GraphQL.
*/
export type Connection<T> = {
export type Connection<T> = {|
edges: Array<Edge<T>>,
pageInfo: PageInfo,
};
|};

/**
* A flow type designed to be exposed as a `Edge` over GraphQL.
*/
export type Edge<T> = {
export type Edge<T> = {|
node: T,
cursor: ConnectionCursor,
};
|};

/**
* A flow type describing the arguments a connection field receives in GraphQL.
Expand All @@ -39,4 +39,5 @@ export type ConnectionArguments = {
after?: ?ConnectionCursor,
first?: ?number,
last?: ?number,
...
};
4 changes: 2 additions & 2 deletions src/mutation/mutation.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ function resolveMaybeThunk<T>(thingOrThunk: Thunk<T>): T {
* input field, and it should return an Object with a key for each
* output field. It may return synchronously, or return a Promise.
*/
type MutationConfig = {
type MutationConfig = {|
name: string,
description?: string,
deprecationReason?: string,
inputFields: Thunk<GraphQLInputFieldConfigMap>,
outputFields: Thunk<GraphQLFieldConfigMap<*, *>>,
mutateAndGetPayload: mutationFn,
};
|};

/**
* Returns a GraphQLFieldConfig for the mutation described by the
Expand Down
8 changes: 4 additions & 4 deletions src/node/node.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ import type {

import { base64, unbase64 } from '../utils/base64.js';

type GraphQLNodeDefinitions<TContext> = {
type GraphQLNodeDefinitions<TContext> = {|
nodeInterface: GraphQLInterfaceType,
nodeField: GraphQLFieldConfig<*, TContext>,
nodesField: GraphQLFieldConfig<*, TContext>,
};
|};

/**
* Given a function to map from an ID to an underlying object, and a function
Expand Down Expand Up @@ -79,10 +79,10 @@ export function nodeDefinitions<TContext>(
return { nodeInterface, nodeField, nodesField };
}

type ResolvedGlobalId = {
type ResolvedGlobalId = {|
type: string,
id: string,
};
|};

/**
* Takes a type name and an ID specific to that type name, and returns a
Expand Down
4 changes: 2 additions & 2 deletions src/node/plural.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import type {
GraphQLResolveInfo,
} from 'graphql';

type PluralIdentifyingRootFieldConfig = {
type PluralIdentifyingRootFieldConfig = {|
argName: string,
inputType: GraphQLInputType,
outputType: GraphQLOutputType,
Expand All @@ -19,7 +19,7 @@ type PluralIdentifyingRootFieldConfig = {
info: GraphQLResolveInfo,
) => ?any,
description?: ?string,
};
|};

export function pluralIdentifyingRootField(
config: PluralIdentifyingRootFieldConfig,
Expand Down

0 comments on commit 52863ad

Please sign in to comment.