UNPKG

1.89 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var graphql_1 = require("graphql");
4function getExistsTypes(queryType) {
5 var types = getTypesAndWhere(queryType);
6 return types
7 .map(function (_a) {
8 var type = _a.type, where = _a.where;
9 return " " + type + ": (where?: " + where + ") => Promise<boolean>";
10 })
11 .join('\n');
12}
13exports.getExistsTypes = getExistsTypes;
14function getExistsFlowTypes(queryType) {
15 var types = getTypesAndWhere(queryType);
16 return types
17 .map(function (_a) {
18 var type = _a.type, where = _a.where;
19 return type + "(where?: " + where + "): Promise<boolean>;";
20 })
21 .join('\n');
22}
23exports.getExistsFlowTypes = getExistsFlowTypes;
24function getTypesAndWhere(queryType) {
25 var fields = queryType.getFields();
26 var listFields = Object.keys(fields).reduce(function (acc, field) {
27 var deepType = getDeepListType(fields[field]);
28 if (deepType) {
29 acc.push({ field: fields[field], deepType: deepType });
30 }
31 return acc;
32 }, []);
33 return listFields.map(function (_a) {
34 var field = _a.field, deepType = _a.deepType;
35 return ({
36 type: deepType.name,
37 pluralFieldName: field.name,
38 where: getWhere(field),
39 });
40 });
41}
42exports.getTypesAndWhere = getTypesAndWhere;
43function getWhere(field) {
44 return field.args.find(function (a) { return a.name === 'where'; })
45 .type.name;
46}
47exports.getWhere = getWhere;
48function getDeepListType(field) {
49 var type = field.type;
50 if (graphql_1.isListType(type)) {
51 return type.ofType;
52 }
53 if (graphql_1.isWrappingType(type) && graphql_1.isListType(type.ofType)) {
54 return type.ofType.ofType;
55 }
56 return null;
57}
58exports.getDeepListType = getDeepListType;
59//# sourceMappingURL=utils.js.map
\No newline at end of file