graphql-codegen-core
Advanced tools
Comparing version 0.6.0-alpha.d8fc1f37 to 0.6.0-alpha.f56888d8
export { schemaToTemplateContext } from './schema/schema-to-template-context'; | ||
export { transformDocument } from './operations/transform-document'; | ||
export { validateIntrospection, introspectionToGraphQLSchema } from './utils/introspection-to-schema'; | ||
export { Argument, Field, Type, Scalar, Enum, EnumValue, Union, Interface, SchemaTemplateContext } from './types'; | ||
export { Argument, Field, Type, Scalar, Enum, EnumValue, Union, Interface, SchemaTemplateContext, Document, Variable, Operation, Fragment, SelectionSetItem, SelectionSetFieldNode, SelectionSetFragmentSpread, SelectionSetInlineFragment, isFieldNode, isFragmentSpreadNode, isInlineFragmentNode } from './types'; |
@@ -10,2 +10,6 @@ "use strict"; | ||
exports.introspectionToGraphQLSchema = introspection_to_schema_1.introspectionToGraphQLSchema; | ||
var types_1 = require("./types"); | ||
exports.isFieldNode = types_1.isFieldNode; | ||
exports.isFragmentSpreadNode = types_1.isFragmentSpreadNode; | ||
exports.isInlineFragmentNode = types_1.isInlineFragmentNode; | ||
//# sourceMappingURL=index.js.map |
"use strict"; | ||
var __assign = (this && this.__assign) || Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var types_1 = require("../types"); | ||
var graphql_1 = require("graphql"); | ||
@@ -7,4 +16,17 @@ var kinds_1 = require("graphql/language/kinds"); | ||
var resolve_type_1 = require("../schema/resolve-type"); | ||
function separateSelectionSet(selectionSet) { | ||
var fields = selectionSet.filter(function (n) { return types_1.isFieldNode(n); }); | ||
var fragmentsSpread = selectionSet.filter(function (n) { return types_1.isFragmentSpreadNode(n); }); | ||
var inlineFragments = selectionSet.filter(function (n) { return types_1.isInlineFragmentNode(n); }); | ||
return { | ||
fragmentsSpread: fragmentsSpread, | ||
fields: fields, | ||
inlineFragments: inlineFragments, | ||
hasFragmentsSpread: fragmentsSpread.length > 0, | ||
hasFields: fields.length > 0, | ||
hasInlineFragments: inlineFragments.length > 0, | ||
}; | ||
} | ||
function buildSelectionSet(schema, rootObject, node) { | ||
return (node.selections || []).map(function (selectionNode) { | ||
return (node && node.selections ? node.selections : []).map(function (selectionNode) { | ||
if (selectionNode.kind === kinds_1.FIELD) { | ||
@@ -14,9 +36,4 @@ var fieldNode = selectionNode; | ||
var resolvedType = resolve_type_1.resolveType(field.type); | ||
return { | ||
name: fieldNode.alias && fieldNode.alias.value ? fieldNode.alias.value : fieldNode.name.value, | ||
selectionSet: buildSelectionSet(schema, graphql_1.getNamedType(field.type), fieldNode.selectionSet), | ||
type: resolvedType.name, | ||
isRequired: resolvedType.isRequired, | ||
isArray: resolvedType.isArray, | ||
}; | ||
var childSelectionSet = buildSelectionSet(schema, graphql_1.getNamedType(field.type), fieldNode.selectionSet); | ||
return __assign({ isField: true, isFragmentSpread: false, isInlineFragment: false, isLeaf: childSelectionSet.length === 0, name: fieldNode.alias && fieldNode.alias.value ? fieldNode.alias.value : fieldNode.name.value, selectionSet: childSelectionSet }, separateSelectionSet(childSelectionSet), { type: resolvedType.name, isRequired: resolvedType.isRequired, isArray: resolvedType.isArray }); | ||
} | ||
@@ -26,2 +43,6 @@ else if (selectionNode.kind === kinds_1.FRAGMENT_SPREAD) { | ||
return { | ||
isField: false, | ||
isFragmentSpread: true, | ||
isInlineFragment: false, | ||
isLeaf: true, | ||
fragmentName: fieldNode.name.value, | ||
@@ -33,6 +54,4 @@ }; | ||
var nextRoot = graphql_1.typeFromAST(schema, fieldNode.typeCondition); | ||
return { | ||
selectionSet: buildSelectionSet(schema, nextRoot, fieldNode.selectionSet), | ||
onType: fieldNode.typeCondition.name.value, | ||
}; | ||
var childSelectionSet = buildSelectionSet(schema, nextRoot, fieldNode.selectionSet); | ||
return __assign({ isField: false, isFragmentSpread: false, isInlineFragment: true, isLeaf: childSelectionSet.length === 0, selectionSet: childSelectionSet }, separateSelectionSet(childSelectionSet), { onType: fieldNode.typeCondition.name.value }); | ||
} | ||
@@ -39,0 +58,0 @@ else { |
@@ -66,2 +66,6 @@ export interface Argument { | ||
export interface SelectionSetItem { | ||
isFragmentSpread: boolean; | ||
isInlineFragment: boolean; | ||
isField: boolean; | ||
isLeaf: boolean; | ||
} | ||
@@ -71,2 +75,6 @@ export interface SelectionSetInlineFragment extends SelectionSetItem { | ||
onType: string; | ||
fragmentsSpread: string[]; | ||
inlineFragments: SelectionSetInlineFragment[]; | ||
hasFragmentsSpread: boolean; | ||
hasInlineFragments: boolean; | ||
} | ||
@@ -78,7 +86,15 @@ export interface SelectionSetFragmentSpread extends SelectionSetItem { | ||
name: string; | ||
selectionSet: SelectionSetItem[]; | ||
type: string; | ||
isRequired: boolean; | ||
isArray: boolean; | ||
fields: SelectionSetFieldNode[]; | ||
fragmentsSpread: SelectionSetFragmentSpread[]; | ||
inlineFragments: SelectionSetInlineFragment[]; | ||
hasFragmentsSpread: boolean; | ||
hasInlineFragments: boolean; | ||
hasFields: boolean; | ||
} | ||
export declare function isFieldNode(node: SelectionSetItem): node is SelectionSetFieldNode; | ||
export declare function isFragmentSpreadNode(node: SelectionSetItem): node is SelectionSetFragmentSpread; | ||
export declare function isInlineFragmentNode(node: SelectionSetItem): node is SelectionSetInlineFragment; | ||
export interface Fragment { | ||
@@ -85,0 +101,0 @@ name: string; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
function isFieldNode(node) { | ||
return node['name'] !== undefined && node['selectionSet'] !== undefined && node['type'] !== undefined; | ||
} | ||
exports.isFieldNode = isFieldNode; | ||
function isFragmentSpreadNode(node) { | ||
return node['fragmentName'] !== undefined; | ||
} | ||
exports.isFragmentSpreadNode = isFragmentSpreadNode; | ||
function isInlineFragmentNode(node) { | ||
return node['selectionSet'] !== undefined && node['onType'] !== undefined; | ||
} | ||
exports.isInlineFragmentNode = isInlineFragmentNode; | ||
//# sourceMappingURL=types.js.map |
{ | ||
"name": "graphql-codegen-core", | ||
"version": "0.6.0-alpha.d8fc1f37", | ||
"version": "0.6.0-alpha.f56888d8", | ||
"description": "GraphQL types and code generator based on schema", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
231690
672