UNPKG

1.81 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.areAllArgsOptional = exports.isReturnTypeEdge = exports.evaluateType = void 0;
4exports.evaluateType = function (field) {
5 var propertyName = field.name;
6 var isRequired = false;
7 var isArray = false;
8 var isArrayRequired = false;
9 var isEdge = false;
10 var isScalar = false;
11 var isEnum = false;
12 var typeName = '';
13 if (propertyName === 'edges')
14 isEdge = true;
15 function getFieldInfos(type) {
16 if (type.kind === 'NON_NULL') {
17 if (isArray) {
18 isArrayRequired = true;
19 }
20 else {
21 isRequired = true;
22 }
23 }
24 if (type.kind === 'LIST') {
25 isArray = true;
26 }
27 if (type.ofType) {
28 return getFieldInfos(type.ofType);
29 }
30 else {
31 if (type.kind === 'SCALAR') {
32 isScalar = true;
33 }
34 else if (type.kind === 'ENUM') {
35 isEnum = true;
36 }
37 typeName = type.name;
38 }
39 return null;
40 }
41 getFieldInfos(field.type);
42 return {
43 isRequired: isRequired,
44 isArray: isArray,
45 isArrayRequired: isArrayRequired,
46 isEdge: isEdge,
47 isScalar: isScalar,
48 typeName: typeName,
49 isEnum: isEnum,
50 };
51};
52exports.isReturnTypeEdge = function (ObjectTypes, typeName) {
53 var type = ObjectTypes.find(function (f) { return f.name === typeName; });
54 if (type) {
55 return type.fields.map(exports.evaluateType).some(function (s) { return s.isEdge; });
56 }
57 return false;
58};
59exports.areAllArgsOptional = function (args) {
60 return args.map(exports.evaluateType).every(function (m) { return !m.isRequired; });
61};