Skip to content
This repository was archived by the owner on Sep 27, 2023. It is now read-only.

Commit d45ba4d

Browse files
committed
Added missing types in @types/[email protected]
1 parent ea30b7c commit d45ba4d

File tree

4 files changed

+30
-46
lines changed

4 files changed

+30
-46
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"@types/invariant": "2.2.30",
8181
"@types/jest": "^24.0.17",
8282
"@types/node": "8.10.51",
83-
"@types/relay-compiler": "^7.0.0",
83+
"@types/relay-compiler": "^7.0.2",
8484
"@types/relay-runtime": "^6.0.7",
8585
"chokidar-cli": "^2.0.0",
8686
"concurrently": "^5.0.0",

src/TypeScriptGenerator.ts

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
22
Condition,
3+
createUserError,
34
Fragment,
4-
FragmentSpread,
55
IRVisitor,
66
LinkedField,
77
Root,
@@ -10,11 +10,7 @@ import {
1010
TypeGenerator,
1111
TypeID
1212
} from "relay-compiler";
13-
import {
14-
ConnectionField,
15-
InlineFragment,
16-
ModuleImport
17-
} from "relay-compiler/lib/core/GraphQLIR";
13+
import { ConnectionField } from "relay-compiler/lib/core/GraphQLIR";
1814
import { TypeGeneratorOptions } from "relay-compiler/lib/language/RelayLanguagePluginInterface";
1915
import * as ConnectionFieldTransform from "relay-compiler/lib/transforms/ConnectionFieldTransform";
2016
import * as FlattenTransform from "relay-compiler/lib/transforms/FlattenTransform";
@@ -28,13 +24,9 @@ import {
2824
transformInputType,
2925
transformScalarType
3026
} from "./TypeScriptTypeTransformers";
31-
// import { NodeVisitor } from "relay-compiler/lib/core/GraphQLIRVisitor";
3227

3328
// TODO: update typings and import properly
3429
const { ConnectionInterface } = require("relay-runtime");
35-
const {
36-
createUserError
37-
} = require("relay-compiler/lib/core/RelayCompilerError");
3830

3931
type Selection = {
4032
key: string;
@@ -364,17 +356,17 @@ function importTypes(names: string[], fromModule: string): ts.Statement {
364356
);
365357
}
366358

367-
// TODO: Add Connection to IRVisitor.NodeVisitor leave
368359
function createVisitor(
369360
schema: Schema,
370361
options: TypeGeneratorOptions
371-
): any /* IRVisitor.NodeVisitor */ {
362+
): IRVisitor.NodeVisitor {
372363
const state: State = {
373364
customScalars: options.customScalars,
374365
enumsHasteModule: options.enumsHasteModule,
375366
existingFragmentNames: options.existingFragmentNames,
376367
generatedInputObjectTypes: {},
377368
generatedFragments: new Set(),
369+
hasConnectionResolver: false,
378370
optionalInputFields: options.optionalInputFields,
379371
usedEnums: {},
380372
usedFragments: new Set(),
@@ -386,7 +378,7 @@ function createVisitor(
386378

387379
return {
388380
leave: {
389-
Root(node: Root) {
381+
Root(node) {
390382
const inputVariablesType = generateInputVariablesType(
391383
schema,
392384
node,
@@ -468,7 +460,7 @@ function createVisitor(
468460
return nodes;
469461
},
470462

471-
Fragment(node: Fragment) {
463+
Fragment(node) {
472464
const flattenedSelections: Selection[] = flattenArray(
473465
/* $FlowFixMe: selections have already been transformed */
474466
(node.selections as any) as ReadonlyArray<ReadonlyArray<Selection>>
@@ -519,7 +511,7 @@ function createVisitor(
519511
exportType(node.name, type)
520512
];
521513
},
522-
InlineFragment(node: InlineFragment) {
514+
InlineFragment(node) {
523515
return flattenArray(
524516
/* $FlowFixMe: selections have already been transformed */
525517
(node.selections as any) as ReadonlyArray<ReadonlyArray<Selection>>
@@ -537,15 +529,15 @@ function createVisitor(
537529
},
538530
Condition: visitCondition,
539531
// TODO: Why not inline it like others?
540-
ScalarField(node: any) {
532+
ScalarField(node) {
541533
return visitScalarField(schema, node, state);
542534
},
543535
ConnectionField: visitLinkedField,
544536
LinkedField: visitLinkedField,
545-
Connection(node: any) {
537+
Connection(node) {
546538
return visitConnection(schema, node, state);
547539
},
548-
ModuleImport(node: ModuleImport) {
540+
ModuleImport(node) {
549541
return [
550542
{
551543
key: "__fragmentPropName",
@@ -563,7 +555,7 @@ function createVisitor(
563555
}
564556
];
565557
},
566-
FragmentSpread(node: FragmentSpread) {
558+
FragmentSpread(node) {
567559
state.usedFragments.add(node.name);
568560
return [
569561
{
@@ -576,8 +568,7 @@ function createVisitor(
576568
};
577569
}
578570

579-
// TODO: Add hasConnectionResolver to State
580-
function visitConnection(schema: Schema, node: any, state: any) {
571+
function visitConnection(schema: Schema, node: any, state: State) {
581572
const { EDGES } = ConnectionInterface.get();
582573

583574
state.hasConnectionResolver = true;
@@ -841,6 +832,9 @@ function createRawResponseTypeVisitor(
841832
},
842833
ConnectionField: visitLinkedField,
843834
LinkedField: visitLinkedField,
835+
Connection(node) {
836+
return visitConnection(schema, node, state);
837+
},
844838
ClientExtension(node) {
845839
return flattenArray(
846840
/* $FlowFixMe: selections have already been transformed */

src/TypeScriptTypeTransformers.ts

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ export type ScalarTypeMapping = {
77
};
88

99
export type State = {
10-
usedEnums: { [name: string]: TypeID };
11-
usedFragments: Set<string>;
10+
generatedFragments: Set<string>;
1211
generatedInputObjectTypes: {
1312
[name: string]: ts.TypeNode | "pending";
1413
};
15-
generatedFragments: Set<string>;
14+
hasConnectionResolver: boolean;
1615
matchFields: Map<string, ts.TypeNode>;
16+
usedEnums: { [name: string]: TypeID };
17+
usedFragments: Set<string>;
1718
} & TypeGeneratorOptions;
1819

1920
function getInputObjectTypeIdentifier(schema: Schema, typeID: TypeID): string {
@@ -65,12 +66,7 @@ function transformNonNullableScalarType(
6566
} else if (schema.isScalar(type)) {
6667
return transformGraphQLScalarType(schema.getTypeString(type), state);
6768
} else if (schema.isEnum(type)) {
68-
// TODO: Add assertEnumType to Schema
69-
return transformGraphQLEnumType(
70-
schema,
71-
(schema as any).assertEnumType(type),
72-
state
73-
);
69+
return transformGraphQLEnumType(schema, schema.assertEnumType(type), state);
7470
} else {
7571
throw new Error(`Could not convert from GraphQL type ${type.toString()}`);
7672
}
@@ -142,12 +138,7 @@ function transformNonNullableInputType(
142138
} else if (schema.isScalar(type)) {
143139
return transformGraphQLScalarType(schema.getTypeString(type), state);
144140
} else if (schema.isEnum(type)) {
145-
// TODO: Add assertEnumType to Schema
146-
return transformGraphQLEnumType(
147-
schema,
148-
(schema as any).assertEnumType(type),
149-
state
150-
);
141+
return transformGraphQLEnumType(schema, schema.assertEnumType(type), state);
151142
} else if (schema.isInputObject(type)) {
152143
const typeIdentifier = getInputObjectTypeIdentifier(schema, type);
153144
if (state.generatedInputObjectTypes[typeIdentifier]) {
@@ -157,10 +148,8 @@ function transformNonNullableInputType(
157148
);
158149
}
159150
state.generatedInputObjectTypes[typeIdentifier] = "pending";
160-
// TODO: Add assertInputObjectType to Schema
161-
const fields = schema.getFields(
162-
(schema as any).assertInputObjectType(type)
163-
);
151+
152+
const fields = schema.getFields(schema.assertInputObjectType(type));
164153

165154
const props = fields.map((fieldID: FieldID) => {
166155
const fieldType = schema.getFieldType(fieldID);

yarn.lock

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -749,13 +749,14 @@
749749
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
750750
integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
751751

752-
"@types/relay-compiler@^7.0.0":
753-
version "7.0.0"
754-
resolved "https://registry.yarnpkg.com/@types/relay-compiler/-/relay-compiler-7.0.0.tgz#677479e008f1ad386f97ef6380b8fbf769765079"
755-
integrity sha512-V4U6NS4xOi5qg2EN+tOVtRDx835StEEvsOBLeWaG0IJuoi0mIj0wMX79CzFyZYvk3TjJkgWTCVBvor38SAH7UQ==
752+
"@types/relay-compiler@^7.0.2":
753+
version "7.0.2"
754+
resolved "https://registry.yarnpkg.com/@types/relay-compiler/-/relay-compiler-7.0.2.tgz#3d5ddd33aeea7a248a86f197a9f847be14874c6d"
755+
integrity sha512-qmK4itE/82YG9Xt6WFCj8oDvAgdpPWU5GV5TbDRfn2dgMbq9vVFeLiNw+uymzLurQTlKPJejZnL0ByYq+pkFSg==
756756
dependencies:
757757
"@types/relay-runtime" "*"
758758
graphql "^14.5.3"
759+
typescript "^3.0.0"
759760

760761
"@types/relay-runtime@*", "@types/relay-runtime@^6.0.7":
761762
version "6.0.7"
@@ -5937,7 +5938,7 @@ type-fest@^0.6.0:
59375938
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
59385939
integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
59395940

5940-
5941+
[email protected], typescript@^3.0.0:
59415942
version "3.6.4"
59425943
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.4.tgz#b18752bb3792bc1a0281335f7f6ebf1bbfc5b91d"
59435944
integrity sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==

0 commit comments

Comments
 (0)