1 | "use strict";
|
2 | var pascalCase = require("pascal-case");
|
3 | var typeFromAST_1 = require("graphql/utilities/typeFromAST");
|
4 | var printer_1 = require("graphql/language/printer");
|
5 | var inner_models_builer_1 = require("./inner-models-builer");
|
6 | exports.handleFragment = function (schema, fragmentNode, primitivesMap, flattenInnerTypes) {
|
7 | var rawName = fragmentNode.name.value;
|
8 | var fragmentName = pascalCase(rawName);
|
9 | var root = typeFromAST_1.typeFromAST(schema, fragmentNode.typeCondition);
|
10 | var result = {
|
11 | name: fragmentName,
|
12 | rawName: rawName,
|
13 | isQuery: false,
|
14 | isSubscription: false,
|
15 | isMutation: false,
|
16 | isFragment: true,
|
17 | innerTypes: [],
|
18 | hasInnerTypes: false,
|
19 | variables: [],
|
20 | hasVariables: false,
|
21 | document: printer_1.print(fragmentNode),
|
22 | rootType: []
|
23 | };
|
24 | var appendTo = {
|
25 | name: 'Fragment',
|
26 | schemaTypeName: rawName,
|
27 | fields: [],
|
28 | isObject: true,
|
29 | isFragment: true,
|
30 | fragmentsUsed: [],
|
31 | inlineFragments: []
|
32 | };
|
33 | result.rootType = [appendTo];
|
34 | result.innerTypes = [appendTo].concat(inner_models_builer_1.buildInnerModelsArray(schema, root, flattenInnerTypes, fragmentNode.selectionSet, primitivesMap, appendTo));
|
35 | result.hasInnerTypes = result.innerTypes.length > 0;
|
36 | return result;
|
37 | };
|
38 |
|
\ | No newline at end of file |