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) {
|
7 | var rawName = fragmentNode.name.value;
|
8 | var fragmentName = pascalCase(rawName);
|
9 | var result = {
|
10 | name: fragmentName,
|
11 | rawName: rawName,
|
12 | isQuery: false,
|
13 | isSubscription: false,
|
14 | isMutation: false,
|
15 | isFragment: true,
|
16 | innerTypes: [],
|
17 | hasInnerTypes: false,
|
18 | variables: [],
|
19 | hasVariables: false,
|
20 | document: printer_1.print(fragmentNode)
|
21 | };
|
22 | var appendTo = {
|
23 | name: 'Fragment',
|
24 | fields: [],
|
25 | isObject: true,
|
26 | isFragment: true,
|
27 | fragmentsUsed: []
|
28 | };
|
29 | var root = typeFromAST_1.typeFromAST(schema, fragmentNode.typeCondition);
|
30 | result.innerTypes = [appendTo].concat(inner_models_builer_1.buildInnerModelsArray(schema, root, fragmentNode.selectionSet, primitivesMap, appendTo));
|
31 | result.hasInnerTypes = result.innerTypes.length > 0;
|
32 | return result;
|
33 | };
|
34 |
|
\ | No newline at end of file |