Skip to content

Commit 55c58be

Browse files
committed
refactor: remove deprecated typescript function calls in favor of the factory; replace @ts-ignores with proper code (microsoft/TypeScript#40263 (comment))
1 parent 2cbd1de commit 55c58be

File tree

1 file changed

+42
-34
lines changed

1 file changed

+42
-34
lines changed

src/TypeScriptTypeTransformers.ts

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ export function transformScalarType(
3535
objectProps
3636
);
3737
} else {
38-
return ts.createUnionTypeNode([
38+
return ts.factory.createUnionTypeNode([
3939
transformNonNullableScalarType(schema, type, state, objectProps),
40-
// @ts-ignore
41-
ts.createKeywordTypeNode(ts.SyntaxKind.NullKeyword),
40+
ts.factory.createLiteralTypeNode(
41+
ts.factory.createToken(ts.SyntaxKind.NullKeyword)
42+
),
4243
]);
4344
}
4445
}
@@ -50,14 +51,17 @@ function transformNonNullableScalarType(
5051
objectProps?: ts.TypeNode
5152
): ts.TypeNode {
5253
if (schema.isList(type)) {
53-
return ts.createTypeReferenceNode(ts.createIdentifier("ReadonlyArray"), [
54-
transformScalarType(
55-
schema,
56-
schema.getListItemType(type),
57-
state,
58-
objectProps
59-
),
60-
]);
54+
return ts.factory.createTypeReferenceNode(
55+
ts.factory.createIdentifier("ReadonlyArray"),
56+
[
57+
transformScalarType(
58+
schema,
59+
schema.getListItemType(type),
60+
state,
61+
objectProps
62+
),
63+
]
64+
);
6165
} else if (
6266
schema.isObject(type) ||
6367
schema.isUnion(type) ||
@@ -82,17 +86,17 @@ function transformGraphQLScalarType(
8286
case "ID":
8387
case "String":
8488
case "Url":
85-
return ts.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
89+
return ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
8690
case "Float":
8791
case "Int":
88-
return ts.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
92+
return ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
8993
case "Boolean":
90-
return ts.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword);
94+
return ts.factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword);
9195

9296
default:
9397
return customType
94-
? ts.createTypeReferenceNode(customType, undefined)
95-
: ts.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
98+
? ts.factory.createTypeReferenceNode(customType, undefined)
99+
: ts.factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
96100
}
97101
}
98102

@@ -102,8 +106,8 @@ function transformGraphQLEnumType(
102106
state: State
103107
): ts.TypeNode {
104108
state.usedEnums[schema.getTypeString(type)] = type;
105-
return ts.createTypeReferenceNode(
106-
ts.createIdentifier(schema.getTypeString(type)),
109+
return ts.factory.createTypeReferenceNode(
110+
ts.factory.createIdentifier(schema.getTypeString(type)),
107111
[]
108112
);
109113
}
@@ -120,10 +124,11 @@ export function transformInputType(
120124
state
121125
);
122126
} else {
123-
return ts.createUnionTypeNode([
127+
return ts.factory.createUnionTypeNode([
124128
transformNonNullableInputType(schema, type, state),
125-
// @ts-ignore
126-
ts.createKeywordTypeNode(ts.SyntaxKind.NullKeyword),
129+
ts.factory.createLiteralTypeNode(
130+
ts.factory.createToken(ts.SyntaxKind.NullKeyword)
131+
),
127132
]);
128133
}
129134
}
@@ -134,18 +139,19 @@ function transformNonNullableInputType(
134139
state: State
135140
) {
136141
if (schema.isList(type)) {
137-
return ts.createTypeReferenceNode(ts.createIdentifier("Array"), [
138-
transformInputType(schema, schema.getListItemType(type), state),
139-
]);
142+
return ts.factory.createTypeReferenceNode(
143+
ts.factory.createIdentifier("Array"),
144+
[transformInputType(schema, schema.getListItemType(type), state)]
145+
);
140146
} else if (schema.isScalar(type)) {
141147
return transformGraphQLScalarType(schema.getTypeString(type), state);
142148
} else if (schema.isEnum(type)) {
143149
return transformGraphQLEnumType(schema, schema.assertEnumType(type), state);
144150
} else if (schema.isInputObject(type)) {
145151
const typeIdentifier = getInputObjectTypeIdentifier(schema, type);
146152
if (state.generatedInputObjectTypes[typeIdentifier]) {
147-
return ts.createTypeReferenceNode(
148-
ts.createIdentifier(typeIdentifier),
153+
return ts.factory.createTypeReferenceNode(
154+
ts.factory.createIdentifier(typeIdentifier),
149155
[]
150156
);
151157
}
@@ -156,23 +162,25 @@ function transformNonNullableInputType(
156162
const props = fields.map((fieldID: FieldID) => {
157163
const fieldType = schema.getFieldType(fieldID);
158164
const fieldName = schema.getFieldName(fieldID);
159-
const property = ts.createPropertySignature(
165+
const property = ts.factory.createPropertySignature(
160166
undefined,
161-
ts.createIdentifier(fieldName),
167+
ts.factory.createIdentifier(fieldName),
162168
state.optionalInputFields.indexOf(fieldName) >= 0 ||
163169
!schema.isNonNull(fieldType)
164-
? ts.createToken(ts.SyntaxKind.QuestionToken)
170+
? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
165171
: undefined,
166-
transformInputType(schema, fieldType, state),
167-
undefined
172+
transformInputType(schema, fieldType, state)
168173
);
169174

170175
return property;
171176
});
172-
state.generatedInputObjectTypes[typeIdentifier] = ts.createTypeLiteralNode(
173-
props
177+
state.generatedInputObjectTypes[
178+
typeIdentifier
179+
] = ts.factory.createTypeLiteralNode(props);
180+
return ts.factory.createTypeReferenceNode(
181+
ts.factory.createIdentifier(typeIdentifier),
182+
[]
174183
);
175-
return ts.createTypeReferenceNode(ts.createIdentifier(typeIdentifier), []);
176184
} else {
177185
throw new Error(`Could not convert from GraphQL type ${type.toString()}`);
178186
}

0 commit comments

Comments
 (0)