UNPKG

2.16 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const graphql_1 = require("graphql");
4const t = require("@babel/types");
5const builtInScalarMap = {
6 [graphql_1.GraphQLString.name]: t.TSStringKeyword(),
7 [graphql_1.GraphQLInt.name]: t.TSNumberKeyword(),
8 [graphql_1.GraphQLFloat.name]: t.TSNumberKeyword(),
9 [graphql_1.GraphQLBoolean.name]: t.TSBooleanKeyword(),
10 [graphql_1.GraphQLID.name]: t.TSStringKeyword(),
11};
12function createTypeFromGraphQLTypeFunction(compilerOptions) {
13 function nonNullableTypeFromGraphQLType(graphQLType, typeName) {
14 if (graphQLType instanceof graphql_1.GraphQLList) {
15 const elementType = typeFromGraphQLType(graphQLType.ofType, typeName);
16 return t.TSArrayType(t.isTSUnionType(elementType) ? t.TSParenthesizedType(elementType) : elementType);
17 }
18 else if (graphQLType instanceof graphql_1.GraphQLScalarType) {
19 const builtIn = builtInScalarMap[typeName || graphQLType.name];
20 if (builtIn != null) {
21 return builtIn;
22 }
23 else if (compilerOptions.passthroughCustomScalars) {
24 return t.TSTypeReference(t.identifier((compilerOptions.customScalarsPrefix || '') + graphQLType.name));
25 }
26 else {
27 return t.TSAnyKeyword();
28 }
29 }
30 else if (graphQLType instanceof graphql_1.GraphQLNonNull) {
31 return typeFromGraphQLType(graphQLType.ofType, typeName);
32 }
33 else {
34 return t.TSTypeReference(t.identifier(typeName || graphQLType.name));
35 }
36 }
37 function typeFromGraphQLType(graphQLType, typeName) {
38 if (graphQLType instanceof graphql_1.GraphQLNonNull) {
39 return nonNullableTypeFromGraphQLType(graphQLType.ofType, typeName);
40 }
41 else {
42 const type = nonNullableTypeFromGraphQLType(graphQLType, typeName);
43 return t.TSUnionType([type, t.TSNullKeyword()]);
44 }
45 }
46 return typeFromGraphQLType;
47}
48exports.createTypeFromGraphQLTypeFunction = createTypeFromGraphQLTypeFunction;
49//# sourceMappingURL=helpers.js.map
\No newline at end of file