UNPKG

2.8 kBJavaScriptView Raw
1"use strict";
2var definition_1 = require("graphql/type/definition");
3var utils_1 = require("./utils");
4exports.handleType = function (primitivesMap, type) {
5 var typeName = type['name'];
6 var currentType = {
7 imports: [],
8 name: typeName,
9 fields: [],
10 isEnum: false,
11 isObject: false
12 };
13 if (!utils_1.shouldSkip(typeName)) {
14 if (type instanceof definition_1.GraphQLEnumType) {
15 currentType.isEnum = true;
16 currentType.enumValues = type.getValues().map(function (enumItem) {
17 return {
18 name: enumItem.name,
19 description: enumItem.description,
20 value: enumItem.value
21 };
22 });
23 }
24 else if (type instanceof definition_1.GraphQLObjectType || type instanceof definition_1.GraphQLInputObjectType || type instanceof definition_1.GraphQLInterfaceType) {
25 currentType.isObject = true;
26 var fields_1 = type.getFields();
27 if (type instanceof definition_1.GraphQLObjectType) {
28 currentType.implementedInterfaces = type.getInterfaces().map(function (interf) {
29 return interf.name;
30 });
31 currentType.hasImplementedInterfaces = currentType.implementedInterfaces.length > 0;
32 }
33 currentType.fields = Object
34 .keys(fields_1)
35 .map(function (fieldName) { return fields_1[fieldName]; })
36 .map(function (field) {
37 var type = utils_1.getTypeName(primitivesMap, field.type);
38 if (!utils_1.isPrimitive(primitivesMap, type)) {
39 currentType.imports.push(type);
40 }
41 return {
42 name: field.name,
43 type: type,
44 isArray: utils_1.isArray(field.type),
45 isRequired: utils_1.isRequired(field.type)
46 };
47 });
48 }
49 else if (type instanceof definition_1.GraphQLUnionType) {
50 currentType.name = type.name || typeName;
51 currentType.isUnion = true;
52 currentType.isObject = false;
53 currentType.unionTypes = type.getTypes().map(function (type) { return type.name; });
54 currentType.hasUnionTypes = currentType.unionTypes.length > 0;
55 }
56 else if (type instanceof definition_1.GraphQLList || type instanceof definition_1.GraphQLNonNull) {
57 return exports.handleType(primitivesMap, definition_1.getNamedType(type));
58 }
59 else if (type instanceof definition_1.GraphQLScalarType) {
60 }
61 return currentType;
62 }
63 else {
64 return null;
65 }
66};
67//# sourceMappingURL=model-handler.js.map
\No newline at end of file