Skip to content

Commit a482d3b

Browse files
Jackson KearlIvanGoncharov
authored andcommitted
Sync type TS definitions with Flow (#2109)
* Sync type TS definitions with Flow Specifically: Add `extensions` field in lots of places Reorder fields Both this and #2106 add Path.d.ts, but they're the same. If theres a merge conflict, just pick one. * `unknown` => `any`, to target TS@2.6 * Widen `introspectionTypes` type to `GraphQLType[]` * use Maybe<Readonly<Record<...>>> as `extension` type * Remove `ResponsePath` export (now `jsutils/Path`) * More removal of `ResponsePath`
1 parent f29be82 commit a482d3b

File tree

8 files changed

+82
-40
lines changed

8 files changed

+82
-40
lines changed

tstypes/index.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@ export {
128128
GraphQLIsTypeOfFn,
129129
GraphQLObjectTypeConfig,
130130
GraphQLResolveInfo,
131-
ResponsePath,
132131
GraphQLScalarTypeConfig,
133132
GraphQLTypeResolver,
134133
GraphQLUnionTypeConfig,

tstypes/type/definition.d.ts

Lines changed: 54 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Maybe from '../tsutils/Maybe';
22
import { PromiseOrValue } from '../jsutils/PromiseOrValue';
3+
import { Path } from '../jsutils/Path';
34
import {
45
ScalarTypeDefinitionNode,
56
ObjectTypeDefinitionNode,
@@ -75,6 +76,7 @@ export function assertNonNullType(type: any): GraphQLNonNull<any>;
7576
/**
7677
* These types may be used as input types for arguments and directives.
7778
*/
79+
// TS_SPECIFIC: TS does not allow recursive type definitions, hence the `any`s
7880
export type GraphQLInputType =
7981
| GraphQLScalarType
8082
| GraphQLEnumType
@@ -94,6 +96,7 @@ export function assertInputType(type: any): GraphQLInputType;
9496
/**
9597
* These types may be used as output types as the result of fields.
9698
*/
99+
// TS_SPECIFIC: TS does not allow recursive type definitions, hence the `any`s
97100
export type GraphQLOutputType =
98101
| GraphQLScalarType
99102
| GraphQLObjectType
@@ -285,13 +288,16 @@ export class GraphQLScalarType {
285288
serialize: GraphQLScalarSerializer<any>;
286289
parseValue: GraphQLScalarValueParser<any>;
287290
parseLiteral: GraphQLScalarLiteralParser<any>;
291+
extensions: Maybe<Readonly<Record<string, any>>>;
288292
astNode: Maybe<ScalarTypeDefinitionNode>;
289293
extensionASTNodes: Maybe<ReadonlyArray<ScalarTypeExtensionNode>>;
290294
constructor(config: GraphQLScalarTypeConfig<any, any>);
291295

292296
toConfig(): GraphQLScalarTypeConfig<any, any> & {
297+
serialize: GraphQLScalarSerializer<any>;
293298
parseValue: GraphQLScalarValueParser<any>;
294299
parseLiteral: GraphQLScalarLiteralParser<any>;
300+
extensions: Maybe<Readonly<Record<string, any>>>;
295301
extensionASTNodes: ReadonlyArray<ScalarTypeExtensionNode>;
296302
};
297303

@@ -320,6 +326,7 @@ export interface GraphQLScalarTypeConfig<TInternal, TExternal> {
320326
parseValue?: GraphQLScalarValueParser<TInternal>;
321327
// Parses an externally provided literal value to use as an input.
322328
parseLiteral?: GraphQLScalarLiteralParser<TInternal>;
329+
extensions?: Maybe<Readonly<Record<string, any>>>;
323330
astNode?: Maybe<ScalarTypeDefinitionNode>;
324331
extensionASTNodes?: Maybe<ReadonlyArray<ScalarTypeExtensionNode>>;
325332
}
@@ -368,9 +375,10 @@ export class GraphQLObjectType<
368375
> {
369376
name: string;
370377
description: Maybe<string>;
378+
isTypeOf: Maybe<GraphQLIsTypeOfFn<TSource, TContext>>;
379+
extensions: Maybe<Readonly<Record<string, any>>>;
371380
astNode: Maybe<ObjectTypeDefinitionNode>;
372381
extensionASTNodes: Maybe<ReadonlyArray<ObjectTypeExtensionNode>>;
373-
isTypeOf: Maybe<GraphQLIsTypeOfFn<TSource, TContext>>;
374382

375383
constructor(config: GraphQLObjectTypeConfig<TSource, TContext, TArgs>);
376384
getFields(): GraphQLFieldMap<any, TContext, TArgs>;
@@ -387,20 +395,27 @@ export class GraphQLObjectType<
387395
inspect(): string;
388396
}
389397

398+
export function argsToArgsConfig(
399+
args: ReadonlyArray<GraphQLArgument>,
400+
): GraphQLFieldConfigArgumentMap;
401+
402+
// TS_SPECIFIC: TArgs
390403
export interface GraphQLObjectTypeConfig<
391404
TSource,
392405
TContext,
393406
TArgs = { [key: string]: any }
394407
> {
395408
name: string;
409+
description?: Maybe<string>;
396410
interfaces?: Thunk<Maybe<GraphQLInterfaceType[]>>;
397411
fields: Thunk<GraphQLFieldConfigMap<TSource, TContext, TArgs>>;
398412
isTypeOf?: Maybe<GraphQLIsTypeOfFn<TSource, TContext>>;
399-
description?: Maybe<string>;
413+
extensions?: Maybe<Readonly<Record<string, any>>>;
400414
astNode?: Maybe<ObjectTypeDefinitionNode>;
401415
extensionASTNodes?: Maybe<ReadonlyArray<ObjectTypeExtensionNode>>;
402416
}
403417

418+
// TS_SPECIFIC: TArgs
404419
export type GraphQLTypeResolver<
405420
TSource,
406421
TContext,
@@ -435,30 +450,26 @@ export interface GraphQLResolveInfo {
435450
readonly fieldNodes: ReadonlyArray<FieldNode>;
436451
readonly returnType: GraphQLOutputType;
437452
readonly parentType: GraphQLObjectType;
438-
readonly path: ResponsePath;
453+
readonly path: Path;
439454
readonly schema: GraphQLSchema;
440455
readonly fragments: { [key: string]: FragmentDefinitionNode };
441456
readonly rootValue: any;
442457
readonly operation: OperationDefinitionNode;
443458
readonly variableValues: { [variableName: string]: any };
444459
}
445460

446-
export type ResponsePath = {
447-
readonly prev: ResponsePath | undefined;
448-
readonly key: string | number;
449-
};
450-
451461
export interface GraphQLFieldConfig<
452462
TSource,
453463
TContext,
454464
TArgs = { [argName: string]: any }
455465
> {
466+
description?: Maybe<string>;
456467
type: GraphQLOutputType;
457468
args?: GraphQLFieldConfigArgumentMap;
458469
resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>;
459470
subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>;
460471
deprecationReason?: Maybe<string>;
461-
description?: Maybe<string>;
472+
extensions?: Maybe<Readonly<Record<string, any>>>;
462473
astNode?: Maybe<FieldDefinitionNode>;
463474
}
464475

@@ -467,12 +478,14 @@ export type GraphQLFieldConfigArgumentMap = {
467478
};
468479

469480
export interface GraphQLArgumentConfig {
481+
description?: Maybe<string>;
470482
type: GraphQLInputType;
471483
defaultValue?: any;
472-
description?: Maybe<string>;
484+
extensions?: Maybe<Readonly<Record<string, any>>>;
473485
astNode?: Maybe<InputValueDefinitionNode>;
474486
}
475487

488+
// TS_SPECIFIC: TArgs
476489
export type GraphQLFieldConfigMap<
477490
TSource,
478491
TContext,
@@ -494,19 +507,22 @@ export interface GraphQLField<
494507
subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>;
495508
isDeprecated?: boolean;
496509
deprecationReason?: Maybe<string>;
510+
extensions: Maybe<Readonly<Record<string, any>>>;
497511
astNode?: Maybe<FieldDefinitionNode>;
498512
}
499513

500514
export interface GraphQLArgument {
501515
name: string;
516+
description: Maybe<string>;
502517
type: GraphQLInputType;
503-
defaultValue?: any;
504-
description?: Maybe<string>;
505-
astNode?: Maybe<InputValueDefinitionNode>;
518+
defaultValue: any;
519+
extensions: Maybe<Readonly<Record<string, any>>>;
520+
astNode: Maybe<InputValueDefinitionNode>;
506521
}
507522

508523
export function isRequiredArgument(arg: GraphQLArgument): boolean;
509524

525+
// TS_SPECIFIC: TArgs
510526
export type GraphQLFieldMap<
511527
TSource,
512528
TContext,
@@ -536,16 +552,18 @@ export type GraphQLFieldMap<
536552
export class GraphQLInterfaceType {
537553
name: string;
538554
description: Maybe<string>;
555+
resolveType: Maybe<GraphQLTypeResolver<any, any>>;
556+
extensions: Maybe<Readonly<Record<string, any>>>;
539557
astNode?: Maybe<InterfaceTypeDefinitionNode>;
540558
extensionASTNodes: Maybe<ReadonlyArray<InterfaceTypeExtensionNode>>;
541-
resolveType: Maybe<GraphQLTypeResolver<any, any>>;
542559

543560
constructor(config: GraphQLInterfaceTypeConfig<any, any>);
544561

545562
getFields(): GraphQLFieldMap<any, any>;
546563

547564
toConfig(): GraphQLInterfaceTypeConfig<any, any> & {
548565
fields: GraphQLFieldConfigMap<any, any>;
566+
extensions: Maybe<Readonly<Record<string, any>>>;
549567
extensionASTNodes: ReadonlyArray<InterfaceTypeExtensionNode>;
550568
};
551569

@@ -554,20 +572,22 @@ export class GraphQLInterfaceType {
554572
inspect(): string;
555573
}
556574

575+
// TS_SPECIFIC: TArgs
557576
export interface GraphQLInterfaceTypeConfig<
558577
TSource,
559578
TContext,
560579
TArgs = { [key: string]: any }
561580
> {
562581
name: string;
582+
description?: Maybe<string>;
563583
fields: Thunk<GraphQLFieldConfigMap<TSource, TContext, TArgs>>;
564584
/**
565585
* Optionally provide a custom type resolver function. If one is not provided,
566586
* the default implementation will call `isTypeOf` on each implementing
567587
* Object type.
568588
*/
569589
resolveType?: Maybe<GraphQLTypeResolver<TSource, TContext, TArgs>>;
570-
description?: Maybe<string>;
590+
extensions?: Maybe<Readonly<Record<string, any>>>;
571591
astNode?: Maybe<InterfaceTypeDefinitionNode>;
572592
extensionASTNodes?: Maybe<ReadonlyArray<InterfaceTypeExtensionNode>>;
573593
}
@@ -598,9 +618,10 @@ export interface GraphQLInterfaceTypeConfig<
598618
export class GraphQLUnionType {
599619
name: string;
600620
description: Maybe<string>;
621+
resolveType: Maybe<GraphQLTypeResolver<any, any>>;
622+
extensions: Maybe<Readonly<Record<string, any>>>;
601623
astNode: Maybe<UnionTypeDefinitionNode>;
602624
extensionASTNodes: Maybe<ReadonlyArray<UnionTypeExtensionNode>>;
603-
resolveType: Maybe<GraphQLTypeResolver<any, any>>;
604625

605626
constructor(config: GraphQLUnionTypeConfig<any, any>);
606627

@@ -618,14 +639,15 @@ export class GraphQLUnionType {
618639

619640
export interface GraphQLUnionTypeConfig<TSource, TContext> {
620641
name: string;
642+
description?: Maybe<string>;
621643
types: Thunk<GraphQLObjectType[]>;
622644
/**
623645
* Optionally provide a custom type resolver function. If one is not provided,
624646
* the default implementation will call `isTypeOf` on each implementing
625647
* Object type.
626648
*/
627649
resolveType?: Maybe<GraphQLTypeResolver<TSource, TContext>>;
628-
description?: Maybe<string>;
650+
extensions?: Maybe<Readonly<Record<string, any>>>;
629651
astNode?: Maybe<UnionTypeDefinitionNode>;
630652
extensionASTNodes?: Maybe<ReadonlyArray<UnionTypeExtensionNode>>;
631653
}
@@ -654,6 +676,7 @@ export interface GraphQLUnionTypeConfig<TSource, TContext> {
654676
export class GraphQLEnumType {
655677
name: string;
656678
description: Maybe<string>;
679+
extensions: Maybe<Readonly<Record<string, any>>>;
657680
astNode: Maybe<EnumTypeDefinitionNode>;
658681
extensionASTNodes: Maybe<ReadonlyArray<EnumTypeExtensionNode>>;
659682

@@ -678,8 +701,9 @@ export class GraphQLEnumType {
678701

679702
export interface GraphQLEnumTypeConfig {
680703
name: string;
681-
values: GraphQLEnumValueConfigMap;
682704
description?: Maybe<string>;
705+
values: GraphQLEnumValueConfigMap;
706+
extensions?: Maybe<Readonly<Record<string, any>>>;
683707
astNode?: Maybe<EnumTypeDefinitionNode>;
684708
extensionASTNodes?: Maybe<ReadonlyArray<EnumTypeExtensionNode>>;
685709
}
@@ -689,19 +713,21 @@ export type GraphQLEnumValueConfigMap = {
689713
};
690714

691715
export interface GraphQLEnumValueConfig {
716+
description?: Maybe<string>;
692717
value?: any;
693718
deprecationReason?: Maybe<string>;
694-
description?: Maybe<string>;
719+
extensions?: Maybe<Readonly<Record<string, any>>>;
695720
astNode?: Maybe<EnumValueDefinitionNode>;
696721
}
697722

698723
export interface GraphQLEnumValue {
699724
name: string;
700725
description: Maybe<string>;
726+
value: any;
701727
isDeprecated?: boolean;
702728
deprecationReason: Maybe<string>;
729+
extensions: Maybe<Readonly<Record<string, any>>>;
703730
astNode?: Maybe<EnumValueDefinitionNode>;
704-
value: any;
705731
}
706732

707733
/**
@@ -727,13 +753,15 @@ export interface GraphQLEnumValue {
727753
export class GraphQLInputObjectType {
728754
name: string;
729755
description: Maybe<string>;
756+
extensions: Maybe<Readonly<Record<string, any>>>;
730757
astNode: Maybe<InputObjectTypeDefinitionNode>;
731758
extensionASTNodes: Maybe<ReadonlyArray<InputObjectTypeExtensionNode>>;
732759
constructor(config: GraphQLInputObjectTypeConfig);
733760
getFields(): GraphQLInputFieldMap;
734761

735762
toConfig(): GraphQLInputObjectTypeConfig & {
736763
fields: GraphQLInputFieldConfigMap;
764+
extensions: Maybe<Readonly<Record<string, any>>>;
737765
extensionASTNodes: ReadonlyArray<InputObjectTypeExtensionNode>;
738766
};
739767

@@ -744,16 +772,18 @@ export class GraphQLInputObjectType {
744772

745773
export interface GraphQLInputObjectTypeConfig {
746774
name: string;
747-
fields: Thunk<GraphQLInputFieldConfigMap>;
748775
description?: Maybe<string>;
776+
fields: Thunk<GraphQLInputFieldConfigMap>;
777+
extensions?: Maybe<Readonly<Record<string, any>>>;
749778
astNode?: Maybe<InputObjectTypeDefinitionNode>;
750779
extensionASTNodes?: Maybe<ReadonlyArray<InputObjectTypeExtensionNode>>;
751780
}
752781

753782
export interface GraphQLInputFieldConfig {
783+
description?: Maybe<string>;
754784
type: GraphQLInputType;
755785
defaultValue?: any;
756-
description?: Maybe<string>;
786+
extensions?: Maybe<Readonly<Record<string, any>>>;
757787
astNode?: Maybe<InputValueDefinitionNode>;
758788
}
759789

@@ -763,9 +793,10 @@ export type GraphQLInputFieldConfigMap = {
763793

764794
export interface GraphQLInputField {
765795
name: string;
796+
description?: Maybe<string>;
766797
type: GraphQLInputType;
767798
defaultValue?: any;
768-
description?: Maybe<string>;
799+
extensions: Maybe<Readonly<Record<string, any>>>;
769800
astNode?: Maybe<InputValueDefinitionNode>;
770801
}
771802

tstypes/type/directives.d.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { DirectiveLocationEnum } from '../language/directiveLocation';
77
* Test if the given value is a GraphQL directive.
88
*/
99
export function isDirective(directive: any): directive is GraphQLDirective;
10-
10+
export function assertDirective(directive: any): GraphQLDirective;
1111
/**
1212
* Directives are used by the GraphQL runtime as a way of modifying execution
1313
* behavior. Type system creators will usually not create these directly.
@@ -18,12 +18,17 @@ export class GraphQLDirective {
1818
locations: DirectiveLocationEnum[];
1919
isRepeatable: boolean;
2020
args: GraphQLArgument[];
21+
extensions?: Maybe<Readonly<Record<string, any>>>;
2122
astNode: Maybe<DirectiveDefinitionNode>;
2223

2324
constructor(config: GraphQLDirectiveConfig);
2425

26+
toString(): string;
27+
2528
toConfig(): GraphQLDirectiveConfig & {
2629
args: GraphQLFieldConfigArgumentMap;
30+
extensions?: Maybe<Readonly<Record<string, any>>>;
31+
isRepeatable: boolean;
2732
};
2833
}
2934

@@ -33,6 +38,7 @@ export interface GraphQLDirectiveConfig {
3338
locations: DirectiveLocationEnum[];
3439
args?: Maybe<GraphQLFieldConfigArgumentMap>;
3540
isRepeatable?: Maybe<boolean>;
41+
extensions?: Maybe<Readonly<Record<string, any>>>;
3642
astNode?: Maybe<DirectiveDefinitionNode>;
3743
}
3844

@@ -61,4 +67,6 @@ export const GraphQLDeprecatedDirective: GraphQLDirective;
6167
*/
6268
export const specifiedDirectives: ReadonlyArray<GraphQLDirective>;
6369

64-
export function isSpecifiedDirective(directive: GraphQLDirective): boolean;
70+
export function isSpecifiedDirective(
71+
directive: any,
72+
): directive is GraphQLDirective;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy