Documentation
¶
Overview ¶
Package ast defines the GraphQL AST and offers helper methods to interact with the AST, mostly to get the necessary information from the ast.
The document struct is designed in a way to enable performant parsing while keeping the ast easy to use with helper methods.
Index ¶
- Constants
- Variables
- func ByteSliceEquals(left ByteSliceReference, leftInput Input, right ByteSliceReference, ...) bool
- func FilterIntSliceByWhitelist(intSlice []int, whitelist []int) []int
- func IsRootType(nameBytes []byte) bool
- type Alias
- type Argument
- type ArgumentList
- type BooleanValue
- type ByteSlice
- type ByteSliceReference
- type ByteSliceReferences
- type ByteSlices
- type DefaultValue
- type Description
- type Directive
- type DirectiveDefinition
- type DirectiveList
- type DirectiveLocation
- type DirectiveLocationIterable
- type DirectiveLocations
- func (d *DirectiveLocations) Get(location DirectiveLocation) bool
- func (d *DirectiveLocations) Iterable() DirectiveLocationIterable
- func (d *DirectiveLocations) Set(location DirectiveLocation)
- func (d *DirectiveLocations) SetFromRaw(bytes []byte) error
- func (d *DirectiveLocations) Unset(location DirectiveLocation)
- type Document
- func (d *Document) AddArgument(argument Argument) (ref int)
- func (d *Document) AddArgumentToField(fieldRef, argRef int)
- func (d *Document) AddDirective(directive Directive) (ref int)
- func (d *Document) AddDirectiveDefinition(directiveDefinition DirectiveDefinition) (ref int)
- func (d *Document) AddDirectiveToNode(directiveRef int, node Node) bool
- func (d *Document) AddEnumTypeDefinition(definition EnumTypeDefinition) (ref int)
- func (d *Document) AddEnumValue(value EnumValue) (ref int)
- func (d *Document) AddEnumValueDefinition(inputValueDefinition EnumValueDefinition) (ref int)
- func (d *Document) AddField(field Field) Node
- func (d *Document) AddFieldDefinition(fieldDefinition FieldDefinition) (ref int)
- func (d *Document) AddFloatValue(value FloatValue) (ref int)
- func (d *Document) AddFragmentSpread(spread FragmentSpread) int
- func (d *Document) AddImportedVariableDefinitionToOperationDefinition(operationDefinition, variableDefinition int)
- func (d *Document) AddInlineFragment(fragment InlineFragment) int
- func (d *Document) AddInputObjectTypeDefinition(definition InputObjectTypeDefinition) (ref int)
- func (d *Document) AddInputValueDefinition(inputValueDefinition InputValueDefinition) (ref int)
- func (d *Document) AddIntValue(value IntValue) (ref int)
- func (d *Document) AddInterfaceTypeDefinition(definition InterfaceTypeDefinition) (ref int)
- func (d *Document) AddInterfaceTypeExtension(extension InterfaceTypeExtension) (ref int)
- func (d *Document) AddListType(ofType int) (ref int)
- func (d *Document) AddListTypeWithPosition(ofType int, open position.Position, close position.Position) (ref int)
- func (d *Document) AddListValue(value ListValue) (ref int)
- func (d *Document) AddNamedType(name []byte) (ref int)
- func (d *Document) AddNamedTypeWithPosition(nameRef ByteSliceReference, position position.Position) (ref int)
- func (d *Document) AddNonNullNamedType(name []byte) (ref int)
- func (d *Document) AddNonNullType(ofType int) (ref int)
- func (d *Document) AddNonNullTypeWithBangPosition(ofType int, bang position.Position) (ref int)
- func (d *Document) AddObjectField(field ObjectField) (ref int)
- func (d *Document) AddObjectTypeDefinition(definition ObjectTypeDefinition) (ref int)
- func (d *Document) AddObjectTypeDefinitionExtension(extension ObjectTypeExtension) (ref int)
- func (d *Document) AddObjectValue(value ObjectValue) (ref int)
- func (d *Document) AddOperationDefinitionToRootNodes(definition OperationDefinition) Node
- func (d *Document) AddRootNode(node Node)
- func (d *Document) AddRootOperationTypeDefinition(rootOperationTypeDefinition RootOperationTypeDefinition) (ref int)
- func (d *Document) AddScalarTypeDefinition(definition ScalarTypeDefinition) (ref int)
- func (d *Document) AddSchemaDefinition(schemaDefinition SchemaDefinition) (ref int)
- func (d *Document) AddSchemaDefinitionRootNode(schemaDefinition SchemaDefinition)
- func (d *Document) AddSelection(set int, selection Selection)
- func (d *Document) AddSelectionRefToSelectionSet(set int, selectionRef int)
- func (d *Document) AddSelectionSet() Node
- func (d *Document) AddSelectionSetToDocument(set SelectionSet) int
- func (d *Document) AddSelectionToDocument(selection Selection) int
- func (d *Document) AddStringValue(value StringValue) (ref int)
- func (d *Document) AddType(t Type) (ref int)
- func (d *Document) AddUnionTypeDefinition(definition UnionTypeDefinition) (ref int)
- func (d *Document) AddValue(value Value) (ref int)
- func (d *Document) AddVariableDefinitionToOperationDefinition(operationDefinitionRef, variableValueRef, typeRef int)
- func (d *Document) AddVariableValue(value VariableValue) (ref int)
- func (d *Document) AddVariableValueArgument(argName, variableName []byte) (variableValueRef, argRef int)
- func (d *Document) AppendSelectionSet(ref int, appendRef int)
- func (d *Document) ArgumentNameBytes(ref int) ByteSlice
- func (d *Document) ArgumentNameString(ref int) string
- func (d *Document) ArgumentSetsAreEquals(left, right []int) bool
- func (d *Document) ArgumentValue(ref int) Value
- func (d *Document) ArgumentsAfter(ancestor Node, argument int) []int
- func (d *Document) ArgumentsAreEqual(left, right int) bool
- func (d *Document) ArgumentsBefore(ancestor Node, argument int) []int
- func (d *Document) BlockStringValueContentBytes(ref int) []byte
- func (d *Document) BlockStringValueContentRawBytes(ref int) []byte
- func (d *Document) BlockStringValueContentRawString(ref int) string
- func (d *Document) BlockStringValueContentString(ref int) string
- func (d *Document) BooleanValue(ref int) BooleanValue
- func (d *Document) BooleanValuesAreEqual(left, right int) bool
- func (d *Document) CopyAlias(alias Alias) Alias
- func (d *Document) CopyArgument(ref int) int
- func (d *Document) CopyArgumentList(list ArgumentList) ArgumentList
- func (d *Document) CopyDirective(ref int) int
- func (d *Document) CopyDirectiveList(list DirectiveList) DirectiveList
- func (d *Document) CopyEnumValue(ref int) int
- func (d *Document) CopyField(ref int) int
- func (d *Document) CopyFloatValue(ref int) int
- func (d *Document) CopyFragmentSpread(ref int) int
- func (d *Document) CopyInlineFragment(ref int) int
- func (d *Document) CopyIntValue(ref int) int
- func (d *Document) CopyListValue(ref int) int
- func (d *Document) CopyObjectField(ref int) int
- func (d *Document) CopyObjectValue(ref int) int
- func (d *Document) CopySelection(ref int) int
- func (d *Document) CopySelectionSet(ref int) int
- func (d *Document) CopyStringValue(ref int) int
- func (d *Document) CopyValue(ref int) int
- func (d *Document) CopyVariableValue(ref int) int
- func (d *Document) CreateRootOperationTypeDefinition(operationType OperationType, rootNodeRef int) (ref int)
- func (d *Document) DeleteRootNode(node Node)
- func (d *Document) DeleteRootNodes(nodes []Node)
- func (d *Document) DirectiveArgumentInputValueDefinition(directiveName ByteSlice, argumentName ByteSlice) int
- func (d *Document) DirectiveArgumentSet(ref int) []int
- func (d *Document) DirectiveArgumentValueByName(ref int, name ByteSlice) (Value, bool)
- func (d *Document) DirectiveDefinitionArgumentDefaultValueBool(directiveName, argumentName string) bool
- func (d *Document) DirectiveDefinitionArgumentDefaultValueFloat32(directiveName, argumentName string) float32
- func (d *Document) DirectiveDefinitionArgumentDefaultValueInt64(directiveName, argumentName string) int64
- func (d *Document) DirectiveDefinitionArgumentDefaultValueString(directiveName, argumentName string) string
- func (d *Document) DirectiveDefinitionByName(name string) (int, bool)
- func (d *Document) DirectiveDefinitionByNameBytes(name []byte) (int, bool)
- func (d *Document) DirectiveDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) DirectiveDefinitionDescriptionString(ref int) string
- func (d *Document) DirectiveDefinitionIsRepeatable(ref int) bool
- func (d *Document) DirectiveDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) DirectiveDefinitionNameString(ref int) string
- func (d *Document) DirectiveIsAllowedOnNodeKind(directiveName string, kind NodeKind, operationType OperationType) bool
- func (d *Document) DirectiveIsFirst(directive int, ancestor Node) bool
- func (d *Document) DirectiveIsLast(directive int, ancestor Node) bool
- func (d *Document) DirectiveName(ref int) ByteSliceReference
- func (d *Document) DirectiveNameBytes(ref int) ByteSlice
- func (d *Document) DirectiveNameString(ref int) string
- func (d *Document) DirectiveSetsAreEqual(left, right []int) bool
- func (d *Document) DirectiveSetsHasCompatibleStreamDirective(left, right []int) bool
- func (d *Document) DirectiveWithNameBytes(directiveRefs []int, name []byte) (directiveRef int, exists bool)
- func (d *Document) DirectivesAreEqual(left, right int) bool
- func (d *Document) EmptySelectionSet(ref int)
- func (d *Document) EnumTypeDefinitionContainsEnumValue(enumTypeDef int, valueName ByteSlice) bool
- func (d *Document) EnumTypeDefinitionContainsEnumValueWithDirective(enumTypeDefRef int, valueName, directiveName ByteSlice) (hasValue, hasDirective bool)
- func (d *Document) EnumTypeDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) EnumTypeDefinitionDescriptionString(ref int) string
- func (d *Document) EnumTypeDefinitionHasDirectives(ref int) bool
- func (d *Document) EnumTypeDefinitionHasEnumValueDefinition(ref int) bool
- func (d *Document) EnumTypeDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) EnumTypeDefinitionNameString(ref int) string
- func (d *Document) EnumTypeExtensionDescriptionBytes(ref int) ByteSlice
- func (d *Document) EnumTypeExtensionDescriptionString(ref int) string
- func (d *Document) EnumTypeExtensionHasDirectives(ref int) bool
- func (d *Document) EnumTypeExtensionHasEnumValueDefinition(ref int) bool
- func (d *Document) EnumTypeExtensionNameBytes(ref int) ByteSlice
- func (d *Document) EnumTypeExtensionNameString(ref int) string
- func (d *Document) EnumValueDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) EnumValueDefinitionDescriptionString(ref int) string
- func (d *Document) EnumValueDefinitionDirectiveByName(definitionRef int, directiveName ByteSlice) (ref int, exists bool)
- func (d *Document) EnumValueDefinitionDirectives(ref int) (refs []int)
- func (d *Document) EnumValueDefinitionHasDirectives(ref int) bool
- func (d *Document) EnumValueDefinitionIsFirst(ref int, ancestor Node) bool
- func (d *Document) EnumValueDefinitionIsLast(ref int, ancestor Node) bool
- func (d *Document) EnumValueDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) EnumValueDefinitionNameString(ref int) string
- func (d *Document) EnumValueName(ref int) ByteSliceReference
- func (d *Document) EnumValueNameBytes(ref int) ByteSlice
- func (d *Document) EnumValueNameString(ref int) string
- func (d *Document) EnumValuesAreEqual(left, right int) bool
- func (d *Document) ExtendEnumTypeDefinitionByEnumTypeExtension(enumTypeDefinitionRef, enumTypeExtensionRef int)
- func (d *Document) ExtendInputObjectTypeDefinitionByInputObjectTypeExtension(inputObjectTypeDefinitionRef, inputObjectTypeExtensionRef int)
- func (d *Document) ExtendInterfaceTypeDefinitionByInterfaceTypeExtension(interfaceTypeDefinitionRef, interfaceTypeExtensionRef int)
- func (d *Document) ExtendObjectTypeDefinitionByObjectTypeExtension(objectTypeDefinitionRef, objectTypeExtensionRef int)
- func (d *Document) ExtendScalarTypeDefinitionByScalarTypeExtension(scalarTypeDefinitionRef, scalarTypeExtensionRef int)
- func (d *Document) ExtendUnionTypeDefinitionByUnionTypeExtension(unionTypeDefinitionRef, unionTypeExtensionRef int)
- func (d *Document) FieldAliasBytes(ref int) ByteSlice
- func (d *Document) FieldAliasIsDefined(ref int) bool
- func (d *Document) FieldAliasOrNameBytes(ref int) ByteSlice
- func (d *Document) FieldAliasOrNameString(ref int) string
- func (d *Document) FieldAliasString(ref int) string
- func (d *Document) FieldArgument(field int, name ByteSlice) (ref int, exists bool)
- func (d *Document) FieldArguments(ref int) []int
- func (d *Document) FieldDefinitionArgumentsDefinitions(ref int) []int
- func (d *Document) FieldDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) FieldDefinitionDescriptionString(ref int) string
- func (d *Document) FieldDefinitionDirectiveByName(fieldDefinition int, directiveName ByteSlice) (ref int, exists bool)
- func (d *Document) FieldDefinitionDirectives(fieldDefinition int) (refs []int)
- func (d *Document) FieldDefinitionHasArgumentsDefinitions(ref int) bool
- func (d *Document) FieldDefinitionHasDirectives(ref int) bool
- func (d *Document) FieldDefinitionHasNamedDirective(fieldDefinition int, directiveName string) bool
- func (d *Document) FieldDefinitionIsFirst(field int, ancestor Node) bool
- func (d *Document) FieldDefinitionIsLast(field int, ancestor Node) bool
- func (d *Document) FieldDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) FieldDefinitionNameString(ref int) string
- func (d *Document) FieldDefinitionResolverTypeName(enclosingType Node) ByteSlice
- func (d *Document) FieldDefinitionType(ref int) int
- func (d *Document) FieldDefinitionTypeNameBytes(ref int) ByteSlice
- func (d *Document) FieldDefinitionTypeNameString(ref int) string
- func (d *Document) FieldDefinitionTypeNode(ref int) Node
- func (d *Document) FieldDefinitionsContainField(definitions []int, field ByteSlice) bool
- func (d *Document) FieldDirectives(ref int) []int
- func (d *Document) FieldHasArguments(ref int) bool
- func (d *Document) FieldHasDirectives(ref int) bool
- func (d *Document) FieldHasSelections(ref int) bool
- func (d *Document) FieldNameBytes(ref int) ByteSlice
- func (d *Document) FieldNameString(ref int) string
- func (d *Document) FieldNameUnsafeString(ref int) string
- func (d *Document) FieldSelectionSet(ref int) (selectionSetRef int, ok bool)
- func (d *Document) FieldTypeNode(fieldName []byte, enclosingNode Node) (node Node, ok bool)
- func (d *Document) FieldsAreEqualFlat(left, right int, checkDirectivesEquality bool) bool
- func (d *Document) FieldsHaveSameShape(left, right int) bool
- func (d *Document) FloatValueAsFloat32(ref int) (out float32)
- func (d *Document) FloatValueIsNegative(ref int) bool
- func (d *Document) FloatValueRaw(ref int) ByteSlice
- func (d *Document) FloatValuesAreEqual(left, right int) bool
- func (d *Document) FragmentDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) FragmentDefinitionDescriptionString(ref int) string
- func (d *Document) FragmentDefinitionIsLastRootNode(ref int) bool
- func (d *Document) FragmentDefinitionIsUsed(name ByteSlice) bool
- func (d *Document) FragmentDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) FragmentDefinitionNameString(ref int) string
- func (d *Document) FragmentDefinitionRef(byName ByteSlice) (ref int, exists bool)
- func (d *Document) FragmentDefinitionTypeName(ref int) ByteSlice
- func (d *Document) FragmentDefinitionTypeNameString(ref int) string
- func (d *Document) FragmentSpreadHasDirectives(ref int) bool
- func (d *Document) FragmentSpreadNameBytes(ref int) ByteSlice
- func (d *Document) FragmentSpreadNameString(ref int) string
- func (d *Document) GenerateUnusedVariableDefinitionName(operationDefinition int) []byte
- func (d *Document) HasSchemaDefinition() bool
- func (d *Document) ImportAndExtendEnumTypeDefinitionByEnumTypeExtension(enumTypeExtensionRef int)
- func (d *Document) ImportAndExtendInputObjectTypeDefinitionByInputObjectTypeExtension(inputObjectTypeExtensionRef int)
- func (d *Document) ImportAndExtendInterfaceTypeDefinitionByInterfaceTypeExtension(interfaceTypeExtensionRef int)
- func (d *Document) ImportAndExtendObjectTypeDefinitionByObjectTypeExtension(objectTypeExtensionRef int)
- func (d *Document) ImportAndExtendScalarTypeDefinitionByScalarTypeExtension(scalarTypeExtensionRef int)
- func (d *Document) ImportAndExtendUnionTypeDefinitionByUnionTypeExtension(unionTypeExtensionRef int)
- func (d *Document) ImportArgument(name string, value Value) (ref int)
- func (d *Document) ImportDescription(desc string) (description Description)
- func (d *Document) ImportDirective(name string, argRefs []int) (ref int)
- func (d *Document) ImportDirectiveDefinition(name, description string, argsRefs []int, locations []string) (ref int)
- func (d *Document) ImportEnumTypeDefinition(name, description string, valueRefs []int) (ref int)
- func (d *Document) ImportEnumTypeDefinitionWithDirectives(name, description string, valueRefs []int, directiveRefs []int) (ref int)
- func (d *Document) ImportEnumValue(name ByteSlice) (ref int)
- func (d *Document) ImportEnumValueDefinition(value, description string, directiveRefs []int) (ref int)
- func (d *Document) ImportFieldDefinition(name, description string, typeRef int, argsRefs []int, directiveRefs []int) (ref int)
- func (d *Document) ImportFloatValue(raw ByteSlice, isNegative bool) (ref int)
- func (d *Document) ImportInputObjectTypeDefinition(name, description string, argsRefs []int) (ref int)
- func (d *Document) ImportInputObjectTypeDefinitionWithDirectives(name, description string, argsRefs []int, directiveRefs []int) (ref int)
- func (d *Document) ImportInputValueDefinition(name, description string, typeRef int, defaultValue DefaultValue) (ref int)
- func (d *Document) ImportIntValue(raw ByteSlice, isNegative bool) (ref int)
- func (d *Document) ImportInterfaceTypeDefinition(name, description string, fieldRefs []int) (ref int)
- func (d *Document) ImportInterfaceTypeDefinitionWithDirectives(name, description string, fieldRefs []int, iRefs []int, directiveRefs []int) (ref int)
- func (d *Document) ImportListValue(valueRefs []int) (ref int)
- func (d *Document) ImportObjectField(name ByteSlice, value Value) (ref int)
- func (d *Document) ImportObjectTypeDefinition(name, description string, fieldRefs []int, iRefs []int) (ref int)
- func (d *Document) ImportObjectTypeDefinitionWithDirectives(name, description string, fieldRefs []int, iRefs []int, directiveRefs []int) (ref int)
- func (d *Document) ImportObjectValue(fieldRefs []int) (ref int)
- func (d *Document) ImportRootNode(ref int, kind NodeKind)
- func (d *Document) ImportRootOperationTypeDefinition(name string, operationType OperationType) (ref int)
- func (d *Document) ImportRootOperationTypeDefinitions(queryTypeName, mutationTypeName, subscriptionTypeName string) (refs []int)
- func (d *Document) ImportScalarTypeDefinition(name, description string) (ref int)
- func (d *Document) ImportScalarTypeDefinitionWithDirectives(name, description string, directiveRefs []int) (ref int)
- func (d *Document) ImportSchemaDefinition(queryTypeName, mutationTypeName, subscriptionTypeName string)
- func (d *Document) ImportStringValue(raw ByteSlice, isBlockString bool) (ref int)
- func (d *Document) ImportUnionTypeDefinition(name, description string, typeRefs []int) (ref int)
- func (d *Document) ImportUnionTypeDefinitionWithDirectives(name, description string, typeRefs []int, directiveRefs []int) (ref int)
- func (d *Document) ImportVariableValue(name ByteSlice) (ref int)
- func (d *Document) ImportVariableValueArgument(argName, variableName ByteSlice) (variableValueRef, argRef int)
- func (d *Document) InlineFragmentDirectives(ref int) []int
- func (d *Document) InlineFragmentHasDirectives(ref int) bool
- func (d *Document) InlineFragmentHasTypeCondition(ref int) bool
- func (d *Document) InlineFragmentIsOfTheSameType(ref int) bool
- func (d *Document) InlineFragmentSelectionSet(ref int) (selectionSetRef int, ok bool)
- func (d *Document) InlineFragmentSelections(ref int) []int
- func (d *Document) InlineFragmentTypeConditionName(ref int) ByteSlice
- func (d *Document) InlineFragmentTypeConditionNameString(ref int) string
- func (d *Document) InputObjectTypeDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) InputObjectTypeDefinitionDescriptionString(ref int) string
- func (d *Document) InputObjectTypeDefinitionInputValueDefinitionByName(definition int, inputValueDefinitionName ByteSlice) int
- func (d *Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValue(inputObjectTypeDefinitionName, inputValueDefinitionName string) Value
- func (d *Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueBool(inputObjectTypeDefinitionName, inputValueDefinitionName string) bool
- func (d *Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueFloat32(inputObjectTypeDefinitionName, inputValueDefinitionName string) float32
- func (d *Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueInt64(inputObjectTypeDefinitionName, inputValueDefinitionName string) int64
- func (d *Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueString(inputObjectTypeDefinitionName, inputValueDefinitionName string) string
- func (d *Document) InputObjectTypeDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) InputObjectTypeDefinitionNameString(ref int) string
- func (d *Document) InputObjectTypeExtensionDescriptionBytes(ref int) ByteSlice
- func (d *Document) InputObjectTypeExtensionDescriptionString(ref int) string
- func (d *Document) InputObjectTypeExtensionHasDirectives(ref int) bool
- func (d *Document) InputObjectTypeExtensionHasInputFieldsDefinition(ref int) bool
- func (d *Document) InputObjectTypeExtensionNameBytes(ref int) ByteSlice
- func (d *Document) InputObjectTypeExtensionNameString(ref int) string
- func (d *Document) InputValueDefinitionArgumentIsOptional(ref int) bool
- func (d *Document) InputValueDefinitionDefaultValue(ref int) Value
- func (d *Document) InputValueDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) InputValueDefinitionDescriptionString(ref int) string
- func (d *Document) InputValueDefinitionDirectiveByName(definitionRef int, directiveName ByteSlice) (ref int, exists bool)
- func (d *Document) InputValueDefinitionHasDefaultValue(ref int) bool
- func (d *Document) InputValueDefinitionHasDirective(ref int, directiveName ByteSlice) bool
- func (d *Document) InputValueDefinitionHasDirectives(ref int) bool
- func (d *Document) InputValueDefinitionIsFirst(inputValue int, ancestor Node) bool
- func (d *Document) InputValueDefinitionIsLast(inputValue int, ancestor Node) bool
- func (d *Document) InputValueDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) InputValueDefinitionNameString(ref int) string
- func (d *Document) InputValueDefinitionRefByFieldDefinitionRefAndArgumentNameBytes(fieldDefinitionRef int, argumentNameBytes []byte) (inputValueDefinitionRef int, ok bool)
- func (d *Document) InputValueDefinitionRefByInputObjectDefinitionRefAndFieldNameBytes(inputObjectDefinitionRef int, inputValueNameBytes []byte) (inputValueDefinitionRef int, ok bool)
- func (d *Document) InputValueDefinitionType(ref int) int
- func (d *Document) IntValue(ref int) IntValue
- func (d *Document) IntValueAsInt(ref int) (out int64)
- func (d *Document) IntValueAsInt32(ref int) (out int32)
- func (d *Document) IntValueIsNegative(ref int) bool
- func (d *Document) IntValueRaw(ref int) ByteSlice
- func (d *Document) IntValueValidInt32(ref int) bool
- func (d *Document) IntValuesAreEquals(left, right int) bool
- func (d *Document) InterfaceNodeIntersectsInterfaceNode(a, b Node) bool
- func (d *Document) InterfaceTypeDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) InterfaceTypeDefinitionDescriptionString(ref int) string
- func (d *Document) InterfaceTypeDefinitionFieldWithName(ref int, fieldName []byte) (fieldDefRef int, ok bool)
- func (d *Document) InterfaceTypeDefinitionImplementedByObjectWithNames(interfaceDefRef int) (typeNames []string, ok bool)
- func (d *Document) InterfaceTypeDefinitionImplementedByObjectWithNamesAsBytes(interfaceDefRef int) (typeNames [][]byte, ok bool)
- func (d *Document) InterfaceTypeDefinitionImplementedByRootNodes(ref int) []Node
- func (d *Document) InterfaceTypeDefinitionImplementsInterface(definitionRef int, interfaceName ByteSlice) bool
- func (d *Document) InterfaceTypeDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) InterfaceTypeDefinitionNameString(ref int) string
- func (d *Document) InterfaceTypeExtensionDescriptionBytes(ref int) ByteSlice
- func (d *Document) InterfaceTypeExtensionDescriptionString(ref int) string
- func (d *Document) InterfaceTypeExtensionHasDirectives(ref int) bool
- func (d *Document) InterfaceTypeExtensionHasFieldDefinitions(ref int) bool
- func (d *Document) InterfaceTypeExtensionNameBytes(ref int) ByteSlice
- func (d *Document) InterfaceTypeExtensionNameString(ref int) string
- func (d *Document) InterfacesIntersect(interfaceA, interfaceB int) bool
- func (d *Document) ListValuesAreEqual(left, right int) bool
- func (d *Document) NamedTypeNodeByInputValueDefinitionRef(inputValueDefinitionRef int) (Node, bool)
- func (d *Document) NewEmptyRefs() []int
- func (d *Document) NextRefIndex() int
- func (d *Document) NodeByName(name ByteSlice) (Node, bool)
- func (d *Document) NodeByNameStr(name string) (Node, bool)
- func (d *Document) NodeDirectiveLocation(node Node) (location DirectiveLocation, err error)
- func (d *Document) NodeDirectives(node Node) []int
- func (d *Document) NodeFieldDefinitionArgumentDefinitionByName(node Node, fieldName, argumentName ByteSlice) int
- func (d *Document) NodeFieldDefinitionArgumentsDefinitions(node Node, fieldName ByteSlice) []int
- func (d *Document) NodeFieldDefinitionByName(node Node, fieldName ByteSlice) (definition int, exists bool)
- func (d *Document) NodeFieldDefinitions(node Node) []int
- func (d *Document) NodeFragmentIsAllowedOnInterfaceTypeDefinition(fragment, interfaceType Node) bool
- func (d *Document) NodeFragmentIsAllowedOnNode(fragment, parent Node) bool
- func (d *Document) NodeFragmentIsAllowedOnObjectTypeDefinition(fragment, objectType Node) bool
- func (d *Document) NodeFragmentIsAllowedOnUnionTypeDefinition(fragment, unionType Node) bool
- func (d *Document) NodeHasDirectiveByNameString(node Node, directiveName string) bool
- func (d *Document) NodeImplementsInterface(node Node, interfaceName ByteSlice) bool
- func (d *Document) NodeImplementsInterfaceFields(node Node, interfaceNode Node) bool
- func (d *Document) NodeImplementsInterfaceNode(node Node, interfaceNode Node) bool
- func (d *Document) NodeInputFieldDefinitionByName(node Node, name ByteSlice) (int, bool)
- func (d *Document) NodeInputFieldDefinitions(node Node) []int
- func (d *Document) NodeInputValueDefinitions(node Node) []int
- func (d *Document) NodeInterfaceRefs(node Node) (refs []int)
- func (d *Document) NodeIsLastRootNode(node Node) bool
- func (d *Document) NodeIsUnionMember(node Node, union Node) bool
- func (d *Document) NodeKindNameBytes(node Node) ByteSlice
- func (d *Document) NodeNameBytes(node Node) ByteSlice
- func (d *Document) NodeNameString(node Node) string
- func (d *Document) NodeNameUnsafeString(node Node) string
- func (d *Document) NodeResolverTypeNameBytes(node Node, path Path) ByteSlice
- func (d *Document) NodeResolverTypeNameString(node Node, path Path) string
- func (d *Document) NodeUnionMemberRefs(node Node) (refs []int)
- func (d *Document) NumOfOperationDefinitions() (n int)
- func (d *Document) ObjectField(ref int) ObjectField
- func (d *Document) ObjectFieldNameBytes(ref int) ByteSlice
- func (d *Document) ObjectFieldNameString(ref int) string
- func (d *Document) ObjectFieldValue(ref int) Value
- func (d *Document) ObjectFieldsAreEqual(left, right int) bool
- func (d *Document) ObjectTypeDefinitionFieldWithName(ref int, fieldName []byte) (fieldDefRef int, ok bool)
- func (d *Document) ObjectTypeDefinitionHasField(ref int, fieldName []byte) bool
- func (d *Document) ObjectTypeDefinitionImplementsInterface(definitionRef int, interfaceName ByteSlice) bool
- func (d *Document) ObjectTypeDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) ObjectTypeDefinitionNameRef(ref int) ByteSliceReference
- func (d *Document) ObjectTypeDefinitionNameString(ref int) string
- func (d *Document) ObjectTypeDescriptionNameBytes(ref int) ByteSlice
- func (d *Document) ObjectTypeDescriptionNameString(ref int) string
- func (d *Document) ObjectTypeExtensionDescriptionNameBytes(ref int) ByteSlice
- func (d *Document) ObjectTypeExtensionDescriptionNameString(ref int) string
- func (d *Document) ObjectTypeExtensionHasDirectives(ref int) bool
- func (d *Document) ObjectTypeExtensionHasFieldDefinitions(ref int) bool
- func (d *Document) ObjectTypeExtensionNameBytes(ref int) ByteSlice
- func (d *Document) ObjectTypeExtensionNameString(ref int) string
- func (d *Document) ObjectValuesAreEqual(left, right int) bool
- func (d *Document) OperationDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) OperationDefinitionDescriptionString(ref int) string
- func (d *Document) OperationDefinitionHasVariableDefinition(ref int, variableName string) bool
- func (d *Document) OperationDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) OperationDefinitionNameString(ref int) string
- func (d *Document) OperationNameExists(operationName string) bool
- func (d *Document) PopulateInterfaceTypeDefinitionImplementedByObjects()
- func (d *Document) PrintArgument(ref int, w io.Writer) error
- func (d *Document) PrintArguments(refs []int, w io.Writer) (err error)
- func (d *Document) PrintDescription(description Description, indent []byte, depth int, writer io.Writer) (err error)
- func (d *Document) PrintDirective(ref int, w io.Writer) error
- func (d *Document) PrintSelections(selections []int) (out string)
- func (d *Document) PrintType(ref int, w io.Writer) error
- func (d *Document) PrintTypeBytes(ref int, buf []byte) ([]byte, error)
- func (d *Document) PrintValue(value Value, w io.Writer) (err error)
- func (d *Document) PrintValueBytes(value Value, buf []byte) ([]byte, error)
- func (d *Document) RemoveDirectiveFromNode(node Node, directiveRef int)
- func (d *Document) RemoveDirectivesFromNode(node Node, directiveRefs []int)
- func (d *Document) RemoveFieldAlias(ref int)
- func (d *Document) RemoveFieldDefinitionsFromObjectTypeDefinition(fieldDefinitionRefs []int, objectTypeDefinitionRef int)
- func (d *Document) RemoveFromSelectionSet(ref int, index int)
- func (d *Document) RemoveMergedTypeExtensions()
- func (d *Document) RemoveNodeFromSelectionSet(set int, node Node) (removed bool)
- func (d *Document) RemoveNodeFromSelectionSetNode(remove, from Node) (removed bool)
- func (d *Document) RemoveObjectTypeDefinition(name ByteSlice) bool
- func (d *Document) RemoveRootNode(node Node)
- func (d *Document) ReplaceFragmentSpread(selectionSet int, spreadRef int, replaceWithSelectionSet int)
- func (d *Document) ReplaceFragmentSpreadWithInlineFragment(selectionSet int, spreadRef int, replaceWithSelectionSet int, ...)
- func (d *Document) ReplaceRootOperationTypeDefinition(name string, operationType OperationType) (ref int, ok bool)
- func (d *Document) ReplaceRootOperationTypesOfSchemaDefinition(schemaDefinitionRef int, ...)
- func (d *Document) ReplaceSelectionOnSelectionSet(ref, replace, with int)
- func (d *Document) Reset()
- func (d *Document) ResolveIncludeDirectiveVariable(directiveRefs []int) (variableName string, exists bool)
- func (d *Document) ResolveListOrNameType(ref int) (typeRef int)
- func (d *Document) ResolveNestedListOrListType(ref int) int
- func (d *Document) ResolveNodeFromTypeRef(typeRef int) (Node, bool)
- func (d *Document) ResolveSkipDirectiveVariable(directiveRefs []int) (variableName string, exists bool)
- func (d *Document) ResolveTypeNameBytes(ref int) ByteSlice
- func (d *Document) ResolveTypeNameString(ref int) string
- func (d *Document) ResolveUnderlyingType(ref int) (typeRef int)
- func (d *Document) RootOperationTypeDefinitionIsFirstInSchemaDefinition(ref int, ancestor Node) bool
- func (d *Document) RootOperationTypeDefinitionIsLastInSchemaDefinition(ref int, ancestor Node) bool
- func (d *Document) RootOperationTypeDefinitionNameString(ref int) string
- func (d *Document) ScalarTypeDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) ScalarTypeDefinitionDescriptionString(ref int) string
- func (d *Document) ScalarTypeDefinitionDirectiveByName(scalarDefRef int, directiveName ByteSlice) (ref int, exists bool)
- func (d *Document) ScalarTypeDefinitionHasDirectives(ref int) bool
- func (d *Document) ScalarTypeDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) ScalarTypeDefinitionNameString(ref int) string
- func (d *Document) ScalarTypeExtensionDescriptionBytes(ref int) ByteSlice
- func (d *Document) ScalarTypeExtensionDescriptionString(ref int) string
- func (d *Document) ScalarTypeExtensionHasDirectives(ref int) bool
- func (d *Document) ScalarTypeExtensionNameBytes(ref int) ByteSlice
- func (d *Document) ScalarTypeExtensionNameString(ref int) string
- func (d *Document) SchemaDefinitionRef() int
- func (d *Document) SelectionKind(ref int) SelectionKind
- func (d *Document) SelectionSetFieldNames(set int) (fieldNames []string)
- func (d *Document) SelectionSetFieldRefs(set int) (refs []int)
- func (d *Document) SelectionSetFieldSelections(set int) (refs []int)
- func (d *Document) SelectionSetFieldSetString(set int) string
- func (d *Document) SelectionSetHasFieldSelectionWithExactName(set int, name []byte) (exist bool, fieldRef int)
- func (d *Document) SelectionSetHasFieldSelectionWithNameOrAliasBytes(set int, nameOrAlias []byte) (exist bool, fieldRef int)
- func (d *Document) SelectionSetHasFieldSelectionWithNameOrAliasString(set int, nameOrAlias string) (exist bool, fieldRef int)
- func (d *Document) SelectionSetInlineFragmentSelections(set int) (refs []int)
- func (d *Document) SelectionSetIsEmpty(ref int) bool
- func (d *Document) SelectionsAfter(selectionKind SelectionKind, selectionRef int, selectionSet Node) bool
- func (d *Document) SelectionsAfterField(field int, selectionSet Node) bool
- func (d *Document) SelectionsAfterFragmentSpread(fragmentSpread int, selectionSet Node) bool
- func (d *Document) SelectionsAfterInlineFragment(inlineFragment int, selectionSet Node) bool
- func (d *Document) SelectionsBeforeField(field int, selectionSet Node) bool
- func (d *Document) StringValue(ref int) StringValue
- func (d *Document) StringValueContentBytes(ref int) ByteSlice
- func (d *Document) StringValueContentString(ref int) string
- func (d *Document) StringValueIsBlockString(ref int) bool
- func (d *Document) StringValuesAreEquals(left, right int) bool
- func (d *Document) TypeDefinitionContainsImplementsInterface(typeName, interfaceName ByteSlice) bool
- func (d *Document) TypeIsEnum(ref int, definition *Document) bool
- func (d *Document) TypeIsList(ref int) bool
- func (d *Document) TypeIsNonNull(ref int) bool
- func (d *Document) TypeIsNonNullList(ref int) bool
- func (d *Document) TypeIsScalar(ref int, definition *Document) bool
- func (d *Document) TypeNameBytes(ref int) ByteSlice
- func (d *Document) TypeNameString(ref int) string
- func (d *Document) TypeNumberOfListWraps(ref int) int
- func (d *Document) TypesAreCompatibleDeep(left int, right int) bool
- func (d *Document) TypesAreCompatibleIgnoringNullability(left int, right int) bool
- func (d *Document) TypesAreEqualDeep(left int, right int) bool
- func (d *Document) UnionHasMember(ref int, typeName ByteSlice) bool
- func (d *Document) UnionMemberTypeIsFirst(ref int, ancestor Node) bool
- func (d *Document) UnionMemberTypeIsLast(ref int, ancestor Node) bool
- func (d *Document) UnionNodeIntersectsInterfaceNode(union, interfaceType Node) bool
- func (d *Document) UnionNodeIntersectsUnionNode(parentUnion, nestedUnion Node) bool
- func (d *Document) UnionTypeDefinitionDescriptionBytes(ref int) ByteSlice
- func (d *Document) UnionTypeDefinitionDescriptionString(ref int) string
- func (d *Document) UnionTypeDefinitionHasDirectives(ref int) bool
- func (d *Document) UnionTypeDefinitionHasField(ref int, fieldName []byte) bool
- func (d *Document) UnionTypeDefinitionMemberTypeNames(ref int) (typeNames []string, ok bool)
- func (d *Document) UnionTypeDefinitionMemberTypeNamesAsBytes(ref int) (typeNames [][]byte, ok bool)
- func (d *Document) UnionTypeDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) UnionTypeDefinitionNameString(ref int) string
- func (d *Document) UnionTypeExtensionDescriptionBytes(ref int) ByteSlice
- func (d *Document) UnionTypeExtensionDescriptionString(ref int) string
- func (d *Document) UnionTypeExtensionHasDirectives(ref int) bool
- func (d *Document) UnionTypeExtensionHasUnionMemberTypes(ref int) bool
- func (d *Document) UnionTypeExtensionNameBytes(ref int) ByteSlice
- func (d *Document) UnionTypeExtensionNameString(ref int) string
- func (d *Document) UpdateRootNode(ref int, newNodeRef int, newNodeKind NodeKind)
- func (d *Document) Value(ref int) Value
- func (d *Document) ValueContainsVariable(value Value) bool
- func (d *Document) ValueContentBytes(value Value) ByteSlice
- func (d *Document) ValueContentString(value Value) string
- func (d *Document) ValueToJSON(value Value) ([]byte, error)
- func (d *Document) ValuesAreEqual(left, right Value) bool
- func (d *Document) VariableDefinitionByNameAndOperation(operationDefinitionRef int, name ByteSlice) (definition int, exists bool)
- func (d *Document) VariableDefinitionDefaultValue(ref int) Value
- func (d *Document) VariableDefinitionHasDefaultValue(ref int) bool
- func (d *Document) VariableDefinitionNameBytes(ref int) ByteSlice
- func (d *Document) VariableDefinitionNameString(ref int) string
- func (d *Document) VariableDefinitionType(ref int) int
- func (d *Document) VariableDefinitionsAfter(variableDefinition int) bool
- func (d *Document) VariableDefinitionsBefore(variableDefinition int) bool
- func (d *Document) VariablePathByArgumentRefAndArgumentPath(argumentRef int, argumentPath []string, operationDefinitionRef int) ([]string, error)
- func (d *Document) VariableValueNameBytes(ref int) ByteSlice
- func (d *Document) VariableValueNameString(ref int) string
- func (d *Document) VariableValuesAreEqual(left, right int) bool
- type EnumTypeDefinition
- type EnumTypeExtension
- type EnumValue
- type EnumValueDefinition
- type EnumValueDefinitionList
- type Field
- type FieldDefinition
- type FieldDefinitionList
- type FloatValue
- type FragmentDefinition
- type FragmentSpread
- type Index
- func (i *Index) AddNodeBytes(name []byte, node Node)
- func (i *Index) AddNodeStr(name string, node Node)
- func (i *Index) FirstNodeByNameBytes(name []byte) (Node, bool)
- func (i *Index) FirstNodeByNameStr(name string) (Node, bool)
- func (i *Index) FirstNonExtensionNodeByNameBytes(name []byte) (Node, bool)
- func (i *Index) IsRootOperationTypeNameBytes(typeName []byte) bool
- func (i *Index) IsRootOperationTypeNameString(typeName string) bool
- func (i *Index) NodesByNameBytes(name []byte) ([]Node, bool)
- func (i *Index) NodesByNameStr(name string) ([]Node, bool)
- func (i *Index) RemoveNodeByName(name []byte)
- func (i *Index) ReplaceNode(name []byte, oldNode Node, newNode Node)
- func (i *Index) Reset()
- type InlineFragment
- type Input
- func (i *Input) AppendInputBytes(bytes []byte) (ref ByteSliceReference)
- func (i *Input) AppendInputString(input string) ByteSliceReference
- func (i *Input) ByteSlice(reference ByteSliceReference) ByteSlice
- func (i *Input) ByteSliceReferenceContentEquals(left, right ByteSliceReference) bool
- func (i *Input) ByteSliceString(reference ByteSliceReference) string
- func (i *Input) Reset()
- func (i *Input) ResetInputBytes(bytes []byte)
- func (i *Input) ResetInputString(input string)
- type InputObjectTypeDefinition
- type InputObjectTypeExtension
- type InputValueDefinition
- type InputValueDefinitionList
- type IntValue
- type InterfaceTypeDefinition
- type InterfaceTypeExtension
- type ListValue
- type Node
- type NodeKind
- type ObjectField
- type ObjectTypeDefinition
- type ObjectTypeExtension
- type ObjectValue
- type OperationDefinition
- type OperationType
- type Path
- func (p Path) DotDelimitedString() string
- func (p Path) EndsWithFragment() bool
- func (p Path) Equals(another Path) bool
- func (p Path) Len() int
- func (p Path) RemoveLastItem() Path
- func (p Path) String() string
- func (p Path) WithFieldNameItem(fieldName []byte) Path
- func (p Path) WithPathItem(element PathItem) Path
- func (p Path) WithoutInlineFragmentNames() Path
- type PathItem
- type PathKind
- type Repeatable
- type RootOperationTypeDefinition
- type RootOperationTypeDefinitionList
- type ScalarTypeDefinition
- type ScalarTypeExtension
- type SchemaDefinition
- type SchemaExtension
- type Selection
- type SelectionKind
- type SelectionSet
- type StringValue
- type Type
- type TypeCondition
- type TypeKind
- type TypeList
- type UnionTypeDefinition
- type UnionTypeExtension
- type Value
- type ValueKind
- type VariableDefinition
- type VariableDefinitionList
- type VariableValue
Examples ¶
Constants ¶
const ( InlineFragmentPathPrefix = "$" InlineFragmentPathPrefixRune = '$' )
const InvalidRef = -1
Variables ¶
var DefaultMutationTypeName = []byte("Mutation")
var DefaultQueryTypeName = []byte("Query")
var DefaultSubscriptionTypeName = []byte("Subscription")
var InvalidNode = Node{Kind: NodeKindUnknown, Ref: InvalidRef}
Functions ¶
func ByteSliceEquals ¶
func ByteSliceEquals(left ByteSliceReference, leftInput Input, right ByteSliceReference, rightInput Input) bool
ByteSliceEquals compares two ByteSliceReferences from different Inputs
func IsRootType ¶
Types ¶
type Alias ¶
type Alias struct {
IsDefined bool
Name ByteSliceReference // optional, e.g. renamedField
Colon position.Position // :
}
type ArgumentList ¶
type ByteSlice ¶
type ByteSlice []byte
ByteSlice is an alias for []byte
func (ByteSlice) MarshalJSON ¶
type ByteSliceReference ¶
func (ByteSliceReference) Length ¶
func (b ByteSliceReference) Length() uint32
type ByteSliceReferences ¶
type ByteSliceReferences []ByteSliceReference
func (ByteSliceReferences) String ¶
func (b ByteSliceReferences) String(input *Input) string
type ByteSlices ¶
type ByteSlices []ByteSlice
func (ByteSlices) String ¶
func (b ByteSlices) String() string
type DefaultValue ¶
type Description ¶
type Description struct {
IsDefined bool
IsBlockString bool // true if -> """content""" ; else "content"
Content ByteSliceReference // literal
Position position.Position
}
type Directive ¶
type Directive struct {
At position.Position // @
Name ByteSliceReference // e.g. include
HasArguments bool
Arguments ArgumentList // e.g. (if: true)
}
type DirectiveDefinition ¶
type DirectiveDefinition struct {
Description Description // optional, describes the directive
DirectiveLiteral position.Position // directive
At position.Position // @
Name ByteSliceReference // e.g. example
HasArgumentsDefinitions bool
ArgumentsDefinition InputValueDefinitionList // optional, e.g. (if: Boolean)
On position.Position // on
DirectiveLocations DirectiveLocations // e.g. FIELD
Repeatable Repeatable
}
DirectiveDefinition example: directive @example on FIELD
type DirectiveList ¶
type DirectiveList struct {
Refs []int
}
func (*DirectiveList) HasDirectiveByName ¶
func (l *DirectiveList) HasDirectiveByName(document *Document, name string) bool
func (*DirectiveList) RemoveDirectiveByName ¶
func (l *DirectiveList) RemoveDirectiveByName(document *Document, name string)
type DirectiveLocation ¶
type DirectiveLocation int
const ( DirectiveLocationUnknown DirectiveLocation = iota ExecutableDirectiveLocationQuery ExecutableDirectiveLocationMutation ExecutableDirectiveLocationSubscription ExecutableDirectiveLocationField ExecutableDirectiveLocationFragmentDefinition ExecutableDirectiveLocationFragmentSpread ExecutableDirectiveLocationInlineFragment ExecutableDirectiveLocationVariableDefinition TypeSystemDirectiveLocationSchema TypeSystemDirectiveLocationScalar TypeSystemDirectiveLocationObject TypeSystemDirectiveLocationFieldDefinition TypeSystemDirectiveLocationArgumentDefinition TypeSystemDirectiveLocationInterface TypeSystemDirectiveLocationUnion TypeSystemDirectiveLocationEnum TypeSystemDirectiveLocationEnumValue TypeSystemDirectiveLocationInputObject TypeSystemDirectiveLocationInputFieldDefinition )
func (DirectiveLocation) LiteralBytes ¶
func (d DirectiveLocation) LiteralBytes() ByteSlice
func (DirectiveLocation) LiteralString ¶
func (d DirectiveLocation) LiteralString() string
func (DirectiveLocation) String ¶
func (i DirectiveLocation) String() string
type DirectiveLocationIterable ¶
type DirectiveLocationIterable struct {
// contains filtered or unexported fields
}
func (*DirectiveLocationIterable) Next ¶
func (d *DirectiveLocationIterable) Next() bool
func (*DirectiveLocationIterable) Value ¶
func (d *DirectiveLocationIterable) Value() DirectiveLocation
type DirectiveLocations ¶
type DirectiveLocations struct {
// contains filtered or unexported fields
}
func (*DirectiveLocations) Get ¶
func (d *DirectiveLocations) Get(location DirectiveLocation) bool
func (*DirectiveLocations) Iterable ¶
func (d *DirectiveLocations) Iterable() DirectiveLocationIterable
func (*DirectiveLocations) Set ¶
func (d *DirectiveLocations) Set(location DirectiveLocation)
func (*DirectiveLocations) SetFromRaw ¶
func (d *DirectiveLocations) SetFromRaw(bytes []byte) error
func (*DirectiveLocations) Unset ¶
func (d *DirectiveLocations) Unset(location DirectiveLocation)
type Document ¶
type Document struct {
Input Input
RootNodes []Node
SchemaDefinitions []SchemaDefinition
SchemaExtensions []SchemaExtension
RootOperationTypeDefinitions []RootOperationTypeDefinition
Directives []Directive
Arguments []Argument
ObjectTypeDefinitions []ObjectTypeDefinition
ObjectTypeExtensions []ObjectTypeExtension
FieldDefinitions []FieldDefinition
Types []Type
InputValueDefinitions []InputValueDefinition
InputObjectTypeDefinitions []InputObjectTypeDefinition
InputObjectTypeExtensions []InputObjectTypeExtension
ScalarTypeDefinitions []ScalarTypeDefinition
ScalarTypeExtensions []ScalarTypeExtension
InterfaceTypeDefinitions []InterfaceTypeDefinition
InterfaceTypeExtensions []InterfaceTypeExtension
UnionTypeDefinitions []UnionTypeDefinition
UnionTypeExtensions []UnionTypeExtension
EnumTypeDefinitions []EnumTypeDefinition
EnumTypeExtensions []EnumTypeExtension
EnumValueDefinitions []EnumValueDefinition
DirectiveDefinitions []DirectiveDefinition
Values []Value
ListValues []ListValue
VariableValues []VariableValue
StringValues []StringValue
IntValues []IntValue
FloatValues []FloatValue
EnumValues []EnumValue
ObjectFields []ObjectField
ObjectValues []ObjectValue
Selections []Selection
SelectionSets []SelectionSet
Fields []Field
InlineFragments []InlineFragment
FragmentSpreads []FragmentSpread
OperationDefinitions []OperationDefinition
VariableDefinitions []VariableDefinition
FragmentDefinitions []FragmentDefinition
BooleanValues [2]BooleanValue
Refs [][8]int
RefIndex int
Index Index
}
Example ¶
Create a new Document without pre-initializing slices. Use this if you want to manually create a new Document
package main
import (
"github.com/wundergraph/graphql-go-tools/v2/pkg/ast"
)
func main() {
// create the same doc as in NewDocument() example but manually.
doc := &ast.Document{}
// add Query to the raw input
queryTypeName := doc.Input.AppendInputString("Query")
// create a RootOperationTypeDefinition
rootOperationTypeDefinition := ast.RootOperationTypeDefinition{
OperationType: ast.OperationTypeQuery,
NamedType: ast.Type{
Name: queryTypeName,
},
}
// add the RootOperationTypeDefinition to the ast
doc.RootOperationTypeDefinitions = append(doc.RootOperationTypeDefinitions, rootOperationTypeDefinition)
// get a reference to the RootOperationTypeDefinition
queryRootOperationTypeRef := len(doc.RootOperationTypeDefinitions) - 1
// create a SchemaDefinition
schemaDefinition := ast.SchemaDefinition{
RootOperationTypeDefinitions: ast.RootOperationTypeDefinitionList{
// add the RootOperationTypeDefinition reference
Refs: []int{queryRootOperationTypeRef},
},
}
// add the SchemaDefinition to the ast
doc.SchemaDefinitions = append(doc.SchemaDefinitions, schemaDefinition)
// get a reference to the SchemaDefinition
schemaDefinitionRef := len(doc.SchemaDefinitions) - 1
// add the SchemaDefinition to the RootNodes
// all root level nodes have to be added to the RootNodes slice in order to make them available to the Walker for traversal
doc.RootNodes = append(doc.RootNodes, ast.Node{Kind: ast.NodeKindSchemaDefinition, Ref: schemaDefinitionRef})
// add another string to the raw input
stringName := doc.Input.AppendInputString("String")
// create a named Type
stringType := ast.Type{
TypeKind: ast.TypeKindNamed,
Name: stringName,
}
// add the Type to the ast
doc.Types = append(doc.Types, stringType)
// get a reference to the Type
stringTypeRef := len(doc.Types) - 1
// create another Type
nonNullStringType := ast.Type{
TypeKind: ast.TypeKindNonNull,
// add a reference to the named type
OfType: stringTypeRef,
}
// Result: NonNull String / String!
// add the Type to the ast
doc.Types = append(doc.Types, nonNullStringType)
// get a reference to the Type
nonNullStringTypeRef := len(doc.Types) - 1
// add another string to the raw input
helloName := doc.Input.AppendInputString("hello")
// create a FieldDefinition
helloFieldDefinition := ast.FieldDefinition{
Name: helloName,
// add the Type reference
Type: nonNullStringTypeRef,
}
// add the FieldDefinition to the ast
doc.FieldDefinitions = append(doc.FieldDefinitions, helloFieldDefinition)
// get a reference to the FieldDefinition
helloFieldDefinitionRef := len(doc.FieldDefinitions) - 1
// create an ObjectTypeDefinition
queryTypeDefinition := ast.ObjectTypeDefinition{
Name: queryTypeName,
// declare that this ObjectTypeDefinition has fields
// this is necessary for the Walker to understand it must walk FieldDefinitions
HasFieldDefinitions: true,
FieldsDefinition: ast.FieldDefinitionList{
// add the FieldDefinition reference
Refs: []int{helloFieldDefinitionRef},
},
}
// add ObjectTypeDefinition to the ast
doc.ObjectTypeDefinitions = append(doc.ObjectTypeDefinitions, queryTypeDefinition)
// get reference to ObjectTypeDefinition
queryTypeRef := len(doc.ObjectTypeDefinitions) - 1
// add ObjectTypeDefinition to the RootNodes
doc.RootNodes = append(doc.RootNodes, ast.Node{Kind: ast.NodeKindObjectTypeDefinition, Ref: queryTypeRef})
}
func NewDocument ¶
func NewDocument() *Document
Example ¶
Create a new document with initialized slices. In case you're on a hot path you always want to use a pre-initialized Document.
package main
import (
"github.com/wundergraph/graphql-go-tools/v2/pkg/ast"
)
func main() {
schema := []byte(`
schema {
query: Query
}
type Query {
hello: String!
}
`)
doc := ast.NewDocument()
doc.Input.ResetInputBytes(schema)
// ...then parse the Input
}
func NewSmallDocument ¶
func NewSmallDocument() *Document
func (*Document) AddArgument ¶
func (*Document) AddArgumentToField ¶
func (*Document) AddDirective ¶
func (*Document) AddDirectiveDefinition ¶
func (d *Document) AddDirectiveDefinition(directiveDefinition DirectiveDefinition) (ref int)
func (*Document) AddDirectiveToNode ¶
func (*Document) AddEnumTypeDefinition ¶
func (d *Document) AddEnumTypeDefinition(definition EnumTypeDefinition) (ref int)
func (*Document) AddEnumValue ¶
func (*Document) AddEnumValueDefinition ¶
func (d *Document) AddEnumValueDefinition(inputValueDefinition EnumValueDefinition) (ref int)
func (*Document) AddFieldDefinition ¶
func (d *Document) AddFieldDefinition(fieldDefinition FieldDefinition) (ref int)
func (*Document) AddFloatValue ¶
func (d *Document) AddFloatValue(value FloatValue) (ref int)
func (*Document) AddFragmentSpread ¶
func (d *Document) AddFragmentSpread(spread FragmentSpread) int
func (*Document) AddImportedVariableDefinitionToOperationDefinition ¶
func (*Document) AddInlineFragment ¶
func (d *Document) AddInlineFragment(fragment InlineFragment) int
func (*Document) AddInputObjectTypeDefinition ¶
func (d *Document) AddInputObjectTypeDefinition(definition InputObjectTypeDefinition) (ref int)
func (*Document) AddInputValueDefinition ¶
func (d *Document) AddInputValueDefinition(inputValueDefinition InputValueDefinition) (ref int)
func (*Document) AddIntValue ¶
func (*Document) AddInterfaceTypeDefinition ¶
func (d *Document) AddInterfaceTypeDefinition(definition InterfaceTypeDefinition) (ref int)
func (*Document) AddInterfaceTypeExtension ¶
func (d *Document) AddInterfaceTypeExtension(extension InterfaceTypeExtension) (ref int)
func (*Document) AddListType ¶
func (*Document) AddListTypeWithPosition ¶
func (*Document) AddListValue ¶
func (*Document) AddNamedType ¶
func (*Document) AddNamedTypeWithPosition ¶
func (d *Document) AddNamedTypeWithPosition(nameRef ByteSliceReference, position position.Position) (ref int)
func (*Document) AddNonNullNamedType ¶
func (*Document) AddNonNullType ¶
func (*Document) AddNonNullTypeWithBangPosition ¶
func (*Document) AddObjectField ¶
func (d *Document) AddObjectField(field ObjectField) (ref int)
func (*Document) AddObjectTypeDefinition ¶
func (d *Document) AddObjectTypeDefinition(definition ObjectTypeDefinition) (ref int)
func (*Document) AddObjectTypeDefinitionExtension ¶
func (d *Document) AddObjectTypeDefinitionExtension(extension ObjectTypeExtension) (ref int)
func (*Document) AddObjectValue ¶
func (d *Document) AddObjectValue(value ObjectValue) (ref int)
func (*Document) AddOperationDefinitionToRootNodes ¶
func (d *Document) AddOperationDefinitionToRootNodes(definition OperationDefinition) Node
func (*Document) AddRootNode ¶
func (*Document) AddRootOperationTypeDefinition ¶
func (d *Document) AddRootOperationTypeDefinition(rootOperationTypeDefinition RootOperationTypeDefinition) (ref int)
func (*Document) AddScalarTypeDefinition ¶
func (d *Document) AddScalarTypeDefinition(definition ScalarTypeDefinition) (ref int)
func (*Document) AddSchemaDefinition ¶
func (d *Document) AddSchemaDefinition(schemaDefinition SchemaDefinition) (ref int)
func (*Document) AddSchemaDefinitionRootNode ¶
func (d *Document) AddSchemaDefinitionRootNode(schemaDefinition SchemaDefinition)
func (*Document) AddSelection ¶
func (*Document) AddSelectionRefToSelectionSet ¶
func (*Document) AddSelectionSet ¶
func (*Document) AddSelectionSetToDocument ¶
func (d *Document) AddSelectionSetToDocument(set SelectionSet) int
func (*Document) AddSelectionToDocument ¶
func (*Document) AddStringValue ¶
func (d *Document) AddStringValue(value StringValue) (ref int)
func (*Document) AddUnionTypeDefinition ¶
func (d *Document) AddUnionTypeDefinition(definition UnionTypeDefinition) (ref int)
func (*Document) AddVariableDefinitionToOperationDefinition ¶
func (*Document) AddVariableValue ¶
func (d *Document) AddVariableValue(value VariableValue) (ref int)
func (*Document) AddVariableValueArgument ¶
func (*Document) AppendSelectionSet ¶
func (*Document) ArgumentNameBytes ¶
func (*Document) ArgumentNameString ¶
func (*Document) ArgumentSetsAreEquals ¶
func (*Document) ArgumentValue ¶
func (*Document) ArgumentsAfter ¶
func (*Document) ArgumentsAreEqual ¶
func (*Document) ArgumentsBefore ¶
func (*Document) BlockStringValueContentBytes ¶
func (*Document) BlockStringValueContentRawBytes ¶
func (*Document) BlockStringValueContentRawString ¶
func (*Document) BlockStringValueContentString ¶
func (*Document) BooleanValue ¶
func (d *Document) BooleanValue(ref int) BooleanValue
func (*Document) BooleanValuesAreEqual ¶
func (*Document) CopyArgument ¶
func (*Document) CopyArgumentList ¶
func (d *Document) CopyArgumentList(list ArgumentList) ArgumentList
func (*Document) CopyDirective ¶
func (*Document) CopyDirectiveList ¶
func (d *Document) CopyDirectiveList(list DirectiveList) DirectiveList
func (*Document) CopyEnumValue ¶
func (*Document) CopyFloatValue ¶
func (*Document) CopyFragmentSpread ¶
func (*Document) CopyInlineFragment ¶
func (*Document) CopyIntValue ¶
func (*Document) CopyListValue ¶
func (*Document) CopyObjectField ¶
func (*Document) CopyObjectValue ¶
func (*Document) CopySelection ¶
func (*Document) CopySelectionSet ¶
func (*Document) CopyStringValue ¶
func (*Document) CopyVariableValue ¶
func (*Document) CreateRootOperationTypeDefinition ¶
func (d *Document) CreateRootOperationTypeDefinition(operationType OperationType, rootNodeRef int) (ref int)
func (*Document) DeleteRootNode ¶
func (*Document) DeleteRootNodes ¶
func (*Document) DirectiveArgumentInputValueDefinition ¶
func (*Document) DirectiveArgumentSet ¶
func (*Document) DirectiveArgumentValueByName ¶
func (*Document) DirectiveDefinitionArgumentDefaultValueBool ¶
func (*Document) DirectiveDefinitionArgumentDefaultValueFloat32 ¶
func (*Document) DirectiveDefinitionArgumentDefaultValueInt64 ¶
func (*Document) DirectiveDefinitionArgumentDefaultValueString ¶
func (*Document) DirectiveDefinitionByName ¶
func (*Document) DirectiveDefinitionByNameBytes ¶
func (*Document) DirectiveDefinitionDescriptionBytes ¶
func (*Document) DirectiveDefinitionDescriptionString ¶
func (*Document) DirectiveDefinitionIsRepeatable ¶
func (*Document) DirectiveDefinitionNameBytes ¶
func (*Document) DirectiveDefinitionNameString ¶
func (*Document) DirectiveIsAllowedOnNodeKind ¶
func (d *Document) DirectiveIsAllowedOnNodeKind(directiveName string, kind NodeKind, operationType OperationType) bool
func (*Document) DirectiveIsFirst ¶
func (*Document) DirectiveIsLast ¶
func (*Document) DirectiveName ¶
func (d *Document) DirectiveName(ref int) ByteSliceReference
func (*Document) DirectiveNameBytes ¶
func (*Document) DirectiveNameString ¶
func (*Document) DirectiveSetsAreEqual ¶
func (*Document) DirectiveSetsHasCompatibleStreamDirective ¶
DirectiveSetsHasCompatibleStreamDirective checks if directives sets contains stream directive with same arguments
func (*Document) DirectiveWithNameBytes ¶
func (*Document) DirectivesAreEqual ¶
func (*Document) EmptySelectionSet ¶
func (*Document) EnumTypeDefinitionContainsEnumValue ¶
func (*Document) EnumTypeDefinitionContainsEnumValueWithDirective ¶
func (*Document) EnumTypeDefinitionDescriptionBytes ¶
func (*Document) EnumTypeDefinitionDescriptionString ¶
func (*Document) EnumTypeDefinitionHasDirectives ¶
func (*Document) EnumTypeDefinitionHasEnumValueDefinition ¶
func (*Document) EnumTypeDefinitionNameBytes ¶
func (*Document) EnumTypeDefinitionNameString ¶
func (*Document) EnumTypeExtensionDescriptionBytes ¶
func (*Document) EnumTypeExtensionDescriptionString ¶
func (*Document) EnumTypeExtensionHasDirectives ¶
func (*Document) EnumTypeExtensionHasEnumValueDefinition ¶
func (*Document) EnumTypeExtensionNameBytes ¶
func (*Document) EnumTypeExtensionNameString ¶
func (*Document) EnumValueDefinitionDescriptionBytes ¶
func (*Document) EnumValueDefinitionDescriptionString ¶
func (*Document) EnumValueDefinitionDirectiveByName ¶
func (*Document) EnumValueDefinitionDirectives ¶
func (*Document) EnumValueDefinitionHasDirectives ¶
func (*Document) EnumValueDefinitionIsFirst ¶
func (*Document) EnumValueDefinitionIsLast ¶
func (*Document) EnumValueDefinitionNameBytes ¶
func (*Document) EnumValueDefinitionNameString ¶
func (*Document) EnumValueName ¶
func (d *Document) EnumValueName(ref int) ByteSliceReference
func (*Document) EnumValueNameBytes ¶
func (*Document) EnumValueNameString ¶
func (*Document) EnumValuesAreEqual ¶
func (*Document) ExtendEnumTypeDefinitionByEnumTypeExtension ¶
func (*Document) ExtendInputObjectTypeDefinitionByInputObjectTypeExtension ¶
func (*Document) ExtendInterfaceTypeDefinitionByInterfaceTypeExtension ¶
func (*Document) ExtendObjectTypeDefinitionByObjectTypeExtension ¶
func (*Document) ExtendScalarTypeDefinitionByScalarTypeExtension ¶
func (*Document) ExtendUnionTypeDefinitionByUnionTypeExtension ¶
func (*Document) FieldAliasBytes ¶
func (*Document) FieldAliasIsDefined ¶
func (*Document) FieldAliasOrNameBytes ¶
func (*Document) FieldAliasOrNameString ¶
func (*Document) FieldAliasString ¶
func (*Document) FieldArgument ¶
func (*Document) FieldArguments ¶
func (*Document) FieldDefinitionArgumentsDefinitions ¶
func (*Document) FieldDefinitionDescriptionBytes ¶
func (*Document) FieldDefinitionDescriptionString ¶
func (*Document) FieldDefinitionDirectiveByName ¶
func (*Document) FieldDefinitionDirectives ¶
func (*Document) FieldDefinitionHasArgumentsDefinitions ¶
func (*Document) FieldDefinitionHasDirectives ¶
func (*Document) FieldDefinitionHasNamedDirective ¶
func (*Document) FieldDefinitionIsFirst ¶
func (*Document) FieldDefinitionIsLast ¶
func (*Document) FieldDefinitionNameBytes ¶
func (*Document) FieldDefinitionNameString ¶
func (*Document) FieldDefinitionResolverTypeName ¶
func (*Document) FieldDefinitionType ¶
func (*Document) FieldDefinitionTypeNameBytes ¶
func (*Document) FieldDefinitionTypeNameString ¶
func (*Document) FieldDefinitionTypeNode ¶
func (*Document) FieldDefinitionsContainField ¶
func (*Document) FieldDirectives ¶
func (*Document) FieldHasArguments ¶
func (*Document) FieldHasDirectives ¶
func (*Document) FieldHasSelections ¶
func (*Document) FieldNameBytes ¶
func (*Document) FieldNameString ¶
FieldNameString - returns fied name as a string value
func (*Document) FieldNameUnsafeString ¶
FieldNameUnsafeString - returns field name as a string which is unsafe pointer to document input content
func (*Document) FieldSelectionSet ¶
func (*Document) FieldTypeNode ¶
FieldTypeNode - returns the type node of a field. it is applicable for fields on object and interface types
func (*Document) FieldsAreEqualFlat ¶
func (*Document) FieldsHaveSameShape ¶
func (*Document) FloatValueAsFloat32 ¶
func (*Document) FloatValueIsNegative ¶
func (*Document) FloatValueRaw ¶
func (*Document) FloatValuesAreEqual ¶
func (*Document) FragmentDefinitionDescriptionBytes ¶
func (*Document) FragmentDefinitionDescriptionString ¶
func (*Document) FragmentDefinitionIsLastRootNode ¶
func (*Document) FragmentDefinitionIsUsed ¶
func (*Document) FragmentDefinitionNameBytes ¶
func (*Document) FragmentDefinitionNameString ¶
func (*Document) FragmentDefinitionRef ¶
func (*Document) FragmentDefinitionTypeName ¶
func (*Document) FragmentDefinitionTypeNameString ¶
func (*Document) FragmentSpreadHasDirectives ¶
func (*Document) FragmentSpreadNameBytes ¶
func (*Document) FragmentSpreadNameString ¶
func (*Document) GenerateUnusedVariableDefinitionName ¶
func (*Document) HasSchemaDefinition ¶
func (*Document) ImportAndExtendEnumTypeDefinitionByEnumTypeExtension ¶
func (*Document) ImportAndExtendInputObjectTypeDefinitionByInputObjectTypeExtension ¶
func (*Document) ImportAndExtendInterfaceTypeDefinitionByInterfaceTypeExtension ¶
func (*Document) ImportAndExtendObjectTypeDefinitionByObjectTypeExtension ¶
func (*Document) ImportAndExtendScalarTypeDefinitionByScalarTypeExtension ¶
func (*Document) ImportAndExtendUnionTypeDefinitionByUnionTypeExtension ¶
func (*Document) ImportArgument ¶
func (*Document) ImportDescription ¶
func (d *Document) ImportDescription(desc string) (description Description)
func (*Document) ImportDirective ¶
func (*Document) ImportDirectiveDefinition ¶
func (*Document) ImportEnumTypeDefinition ¶
func (*Document) ImportEnumTypeDefinitionWithDirectives ¶
func (*Document) ImportEnumValue ¶
func (*Document) ImportEnumValueDefinition ¶
func (*Document) ImportFieldDefinition ¶
func (*Document) ImportFloatValue ¶
func (*Document) ImportInputObjectTypeDefinition ¶
func (*Document) ImportInputObjectTypeDefinitionWithDirectives ¶
func (*Document) ImportInputValueDefinition ¶
func (d *Document) ImportInputValueDefinition(name, description string, typeRef int, defaultValue DefaultValue) (ref int)
func (*Document) ImportIntValue ¶
func (*Document) ImportInterfaceTypeDefinition ¶
func (*Document) ImportInterfaceTypeDefinitionWithDirectives ¶
func (*Document) ImportListValue ¶
func (*Document) ImportObjectField ¶
func (*Document) ImportObjectTypeDefinition ¶
func (*Document) ImportObjectTypeDefinitionWithDirectives ¶
func (*Document) ImportObjectValue ¶
func (*Document) ImportRootNode ¶
func (*Document) ImportRootOperationTypeDefinition ¶
func (d *Document) ImportRootOperationTypeDefinition(name string, operationType OperationType) (ref int)
func (*Document) ImportRootOperationTypeDefinitions ¶
func (*Document) ImportScalarTypeDefinition ¶
func (*Document) ImportScalarTypeDefinitionWithDirectives ¶
func (*Document) ImportSchemaDefinition ¶
func (*Document) ImportStringValue ¶
func (*Document) ImportUnionTypeDefinition ¶
func (*Document) ImportUnionTypeDefinitionWithDirectives ¶
func (*Document) ImportVariableValue ¶
func (*Document) ImportVariableValueArgument ¶
func (*Document) InlineFragmentDirectives ¶
func (*Document) InlineFragmentHasDirectives ¶
func (*Document) InlineFragmentHasTypeCondition ¶
func (*Document) InlineFragmentIsOfTheSameType ¶
func (*Document) InlineFragmentSelectionSet ¶
func (*Document) InlineFragmentSelections ¶
func (*Document) InlineFragmentTypeConditionName ¶
func (*Document) InlineFragmentTypeConditionNameString ¶
func (*Document) InputObjectTypeDefinitionDescriptionBytes ¶
func (*Document) InputObjectTypeDefinitionDescriptionString ¶
func (*Document) InputObjectTypeDefinitionInputValueDefinitionByName ¶
func (*Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValue ¶
func (*Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueBool ¶
func (*Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueFloat32 ¶
func (*Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueInt64 ¶
func (*Document) InputObjectTypeDefinitionInputValueDefinitionDefaultValueString ¶
func (*Document) InputObjectTypeDefinitionNameBytes ¶
func (*Document) InputObjectTypeDefinitionNameString ¶
func (*Document) InputObjectTypeExtensionDescriptionBytes ¶
func (*Document) InputObjectTypeExtensionDescriptionString ¶
func (*Document) InputObjectTypeExtensionHasDirectives ¶
func (*Document) InputObjectTypeExtensionHasInputFieldsDefinition ¶
func (*Document) InputObjectTypeExtensionNameBytes ¶
func (*Document) InputObjectTypeExtensionNameString ¶
func (*Document) InputValueDefinitionArgumentIsOptional ¶
func (*Document) InputValueDefinitionDefaultValue ¶
func (*Document) InputValueDefinitionDescriptionBytes ¶
func (*Document) InputValueDefinitionDescriptionString ¶
func (*Document) InputValueDefinitionDirectiveByName ¶
func (*Document) InputValueDefinitionHasDefaultValue ¶
func (*Document) InputValueDefinitionHasDirective ¶
func (*Document) InputValueDefinitionHasDirectives ¶
func (*Document) InputValueDefinitionIsFirst ¶
func (*Document) InputValueDefinitionIsLast ¶
func (*Document) InputValueDefinitionNameBytes ¶
func (*Document) InputValueDefinitionNameString ¶
func (*Document) InputValueDefinitionRefByFieldDefinitionRefAndArgumentNameBytes ¶
func (*Document) InputValueDefinitionRefByInputObjectDefinitionRefAndFieldNameBytes ¶
func (*Document) InputValueDefinitionType ¶
func (*Document) IntValueAsInt ¶
func (*Document) IntValueAsInt32 ¶
func (*Document) IntValueIsNegative ¶
func (*Document) IntValueRaw ¶
func (*Document) IntValueValidInt32 ¶
func (*Document) IntValuesAreEquals ¶
func (*Document) InterfaceNodeIntersectsInterfaceNode ¶
InterfaceNodeIntersectsInterfaceNode checks if two interface nodes share common implementers.
func (*Document) InterfaceTypeDefinitionDescriptionBytes ¶
func (*Document) InterfaceTypeDefinitionDescriptionString ¶
func (*Document) InterfaceTypeDefinitionFieldWithName ¶
func (*Document) InterfaceTypeDefinitionImplementedByObjectWithNames ¶
func (d *Document) InterfaceTypeDefinitionImplementedByObjectWithNames(interfaceDefRef int) (typeNames []string, ok bool)
InterfaceTypeDefinitionImplementedByObjectWithNames returns object type names implementing the interface.
func (*Document) InterfaceTypeDefinitionImplementedByObjectWithNamesAsBytes ¶
func (*Document) InterfaceTypeDefinitionImplementedByRootNodes ¶
InterfaceTypeDefinitionImplementedByRootNodes will return all RootNodes that implement the given interface type (by ref)
func (*Document) InterfaceTypeDefinitionImplementsInterface ¶
func (*Document) InterfaceTypeDefinitionNameBytes ¶
func (*Document) InterfaceTypeDefinitionNameString ¶
func (*Document) InterfaceTypeExtensionDescriptionBytes ¶
func (*Document) InterfaceTypeExtensionDescriptionString ¶
func (*Document) InterfaceTypeExtensionHasDirectives ¶
func (*Document) InterfaceTypeExtensionHasFieldDefinitions ¶
func (*Document) InterfaceTypeExtensionNameBytes ¶
func (*Document) InterfaceTypeExtensionNameString ¶
func (*Document) InterfacesIntersect ¶
InterfacesIntersect checks if two interfaces share at least one common implementing type.
func (*Document) ListValuesAreEqual ¶
func (*Document) NamedTypeNodeByInputValueDefinitionRef ¶
func (*Document) NewEmptyRefs ¶
func (*Document) NextRefIndex ¶
func (*Document) NodeDirectiveLocation ¶
func (d *Document) NodeDirectiveLocation(node Node) (location DirectiveLocation, err error)
func (*Document) NodeDirectives ¶
func (*Document) NodeFieldDefinitionArgumentDefinitionByName ¶
func (*Document) NodeFieldDefinitionArgumentsDefinitions ¶
func (*Document) NodeFieldDefinitionByName ¶
func (*Document) NodeFieldDefinitions ¶
func (*Document) NodeFragmentIsAllowedOnInterfaceTypeDefinition ¶
func (*Document) NodeFragmentIsAllowedOnNode ¶
NodeFragmentIsAllowedOnNode determines if a fragment node is valid on a parent node.
func (*Document) NodeFragmentIsAllowedOnObjectTypeDefinition ¶
func (*Document) NodeFragmentIsAllowedOnUnionTypeDefinition ¶
func (*Document) NodeHasDirectiveByNameString ¶
NodeHasDirectiveByNameString returns whether the given node has a directive with the given name as string.
func (*Document) NodeImplementsInterface ¶
NodeImplementsInterface performs the same check as NodeImplementsInterfaceNode, but uses the name of an interface.
func (*Document) NodeImplementsInterfaceFields ¶
NodeImplementsInterfaceFields checks that the node has all fields of the interfaceNode. This method should not be called from new code.
func (*Document) NodeImplementsInterfaceNode ¶
NodeImplementsInterfaceNode checks that the node claims to implement an interfaceNode in the `implements` section. Node can be an object or interface kind.
This check does not verify that the node has all the fields of the interfaceName.
func (*Document) NodeInputFieldDefinitionByName ¶
func (*Document) NodeInputFieldDefinitions ¶
func (*Document) NodeInputValueDefinitions ¶
NodeInputValueDefinitions returns input value definition refs based on the node's kind.
func (*Document) NodeInterfaceRefs ¶
NodeInterfaceRefs returns the interfaces implemented by the given node (this is only applicable to object kinds). Returns nil if the node is not an object kind.
func (*Document) NodeIsLastRootNode ¶
func (*Document) NodeIsUnionMember ¶
NodeIsUnionMember checks if the node is a member of the specified union.
func (*Document) NodeKindNameBytes ¶
func (*Document) NodeNameBytes ¶
func (*Document) NodeNameString ¶
func (*Document) NodeNameUnsafeString ¶
TODO: we could use node name directly
func (*Document) NodeResolverTypeNameBytes ¶
NodeResolverTypeNameBytes returns lowercase query/mutation/subscription for Query/Mutation/Subscription for other type definitions it returns the default type name
func (*Document) NodeResolverTypeNameString ¶
func (*Document) NodeUnionMemberRefs ¶
NodeUnionMemberRefs returns the union members of the given node (this is only applicable to union kinds). Returns nil if the node is not a union kind.
func (*Document) NumOfOperationDefinitions ¶
func (*Document) ObjectField ¶
func (d *Document) ObjectField(ref int) ObjectField
func (*Document) ObjectFieldNameBytes ¶
func (*Document) ObjectFieldNameString ¶
func (*Document) ObjectFieldValue ¶
func (*Document) ObjectFieldsAreEqual ¶
func (*Document) ObjectTypeDefinitionFieldWithName ¶
func (*Document) ObjectTypeDefinitionHasField ¶
func (*Document) ObjectTypeDefinitionImplementsInterface ¶
func (*Document) ObjectTypeDefinitionNameBytes ¶
func (*Document) ObjectTypeDefinitionNameRef ¶
func (d *Document) ObjectTypeDefinitionNameRef(ref int) ByteSliceReference
func (*Document) ObjectTypeDefinitionNameString ¶
func (*Document) ObjectTypeDescriptionNameBytes ¶
func (*Document) ObjectTypeDescriptionNameString ¶
func (*Document) ObjectTypeExtensionDescriptionNameBytes ¶
func (*Document) ObjectTypeExtensionDescriptionNameString ¶
func (*Document) ObjectTypeExtensionHasDirectives ¶
func (*Document) ObjectTypeExtensionHasFieldDefinitions ¶
func (*Document) ObjectTypeExtensionNameBytes ¶
func (*Document) ObjectTypeExtensionNameString ¶
func (*Document) ObjectValuesAreEqual ¶
func (*Document) OperationDefinitionDescriptionBytes ¶
func (*Document) OperationDefinitionDescriptionString ¶
func (*Document) OperationDefinitionHasVariableDefinition ¶
func (*Document) OperationDefinitionNameBytes ¶
func (*Document) OperationDefinitionNameString ¶
func (*Document) OperationNameExists ¶
func (*Document) PopulateInterfaceTypeDefinitionImplementedByObjects ¶
func (d *Document) PopulateInterfaceTypeDefinitionImplementedByObjects()
func (*Document) PrintArguments ¶
func (*Document) PrintDescription ¶
func (d *Document) PrintDescription(description Description, indent []byte, depth int, writer io.Writer) (err error)
nolint
func (*Document) PrintSelections ¶
func (*Document) PrintTypeBytes ¶
func (*Document) PrintValue ¶
nolint
func (*Document) PrintValueBytes ¶
func (*Document) RemoveDirectiveFromNode ¶
func (*Document) RemoveDirectivesFromNode ¶
func (*Document) RemoveFieldAlias ¶
func (*Document) RemoveFieldDefinitionsFromObjectTypeDefinition ¶
func (*Document) RemoveFromSelectionSet ¶
func (*Document) RemoveMergedTypeExtensions ¶
func (d *Document) RemoveMergedTypeExtensions()
func (*Document) RemoveNodeFromSelectionSet ¶
func (*Document) RemoveNodeFromSelectionSetNode ¶
func (*Document) RemoveObjectTypeDefinition ¶
func (*Document) RemoveRootNode ¶
func (*Document) ReplaceFragmentSpread ¶
func (d *Document) ReplaceFragmentSpread(selectionSet int, spreadRef int, replaceWithSelectionSet int)
ReplaceFragmentSpread replaces a fragment spread with a given selection set attention! this might lead to duplicate field problems because the same field with its unique field reference might be copied into the same selection set possible problems: changing directives or sub selections will affect both fields with the same id simple solution: run normalization deduplicate fields as part of the normalization flow this problem will be handled automatically just be careful in case you use this function outside the normalization package
func (*Document) ReplaceFragmentSpreadWithInlineFragment ¶
func (d *Document) ReplaceFragmentSpreadWithInlineFragment(selectionSet int, spreadRef int, replaceWithSelectionSet int, typeCondition TypeCondition, directiveList DirectiveList)
ReplaceFragmentSpreadWithInlineFragment replaces a given fragment spread with an inline fragment attention! the same rules apply as for 'ReplaceFragmentSpread', look above!
func (*Document) ReplaceRootOperationTypeDefinition ¶
func (d *Document) ReplaceRootOperationTypeDefinition(name string, operationType OperationType) (ref int, ok bool)
func (*Document) ReplaceRootOperationTypesOfSchemaDefinition ¶
func (*Document) ReplaceSelectionOnSelectionSet ¶
func (*Document) ResolveIncludeDirectiveVariable ¶
func (*Document) ResolveListOrNameType ¶
ResolveListOrNameType unwraps the ref type until it finds the named or list type.
func (*Document) ResolveNestedListOrListType ¶
ResolveNestedListOrListType returns the underlying type of a list. In contrast to ResolveListOrNameType, this function does not unwrap a non-null type. e.g.: * [[String]] -> [String] * [[String]!] -> [String]! * [String!]! -> String! * [String]! -> String
func (*Document) ResolveNodeFromTypeRef ¶
ResolveNodeFromTypeRef returns the `ast.Node` for a given type reference.
func (*Document) ResolveSkipDirectiveVariable ¶
func (*Document) ResolveTypeNameBytes ¶
func (*Document) ResolveTypeNameString ¶
func (*Document) ResolveUnderlyingType ¶
ResolveUnderlyingType unwraps the ref type until it finds the named type.
func (*Document) RootOperationTypeDefinitionIsFirstInSchemaDefinition ¶
func (*Document) RootOperationTypeDefinitionIsLastInSchemaDefinition ¶
func (*Document) RootOperationTypeDefinitionNameString ¶
func (*Document) ScalarTypeDefinitionDescriptionBytes ¶
func (*Document) ScalarTypeDefinitionDescriptionString ¶
func (*Document) ScalarTypeDefinitionDirectiveByName ¶
func (*Document) ScalarTypeDefinitionHasDirectives ¶
func (*Document) ScalarTypeDefinitionNameBytes ¶
func (*Document) ScalarTypeDefinitionNameString ¶
func (*Document) ScalarTypeExtensionDescriptionBytes ¶
func (*Document) ScalarTypeExtensionDescriptionString ¶
func (*Document) ScalarTypeExtensionHasDirectives ¶
func (*Document) ScalarTypeExtensionNameBytes ¶
func (*Document) ScalarTypeExtensionNameString ¶
func (*Document) SchemaDefinitionRef ¶
func (*Document) SelectionKind ¶
func (d *Document) SelectionKind(ref int) SelectionKind
func (*Document) SelectionSetFieldNames ¶
func (*Document) SelectionSetFieldRefs ¶
SelectionSetFieldRefs returns a list of field refs in the selection set. It traverses through the field selections of the selection set and returns the actual field refs.
func (*Document) SelectionSetFieldSelections ¶
SelectionSetFieldSelections returns a list of field selection refs in the selection set.
func (*Document) SelectionSetFieldSetString ¶
SelectionSetFieldSetString returns a string of the field names in the selection set separated by a space Example: "{ name status }" -> "name status"
func (*Document) SelectionSetHasFieldSelectionWithExactName ¶
func (*Document) SelectionSetHasFieldSelectionWithNameOrAliasBytes ¶
func (*Document) SelectionSetHasFieldSelectionWithNameOrAliasString ¶
func (*Document) SelectionSetInlineFragmentSelections ¶
func (*Document) SelectionSetIsEmpty ¶
func (*Document) SelectionsAfter ¶
func (d *Document) SelectionsAfter(selectionKind SelectionKind, selectionRef int, selectionSet Node) bool
func (*Document) SelectionsAfterField ¶
func (*Document) SelectionsAfterFragmentSpread ¶
func (*Document) SelectionsAfterInlineFragment ¶
func (*Document) SelectionsBeforeField ¶
func (*Document) StringValue ¶
func (d *Document) StringValue(ref int) StringValue
func (*Document) StringValueContentBytes ¶
func (*Document) StringValueContentString ¶
func (*Document) StringValueIsBlockString ¶
func (*Document) StringValuesAreEquals ¶
func (*Document) TypeDefinitionContainsImplementsInterface ¶
func (*Document) TypeIsList ¶
func (*Document) TypeIsNonNull ¶
func (*Document) TypeIsNonNullList ¶
TypeIsNonNullList checks if the type is a non-nullable list. e.g.: * [String!]! -> true * [String]! -> true * [String!] -> false * [String] -> false
func (*Document) TypeNameBytes ¶
func (*Document) TypeNameString ¶
func (*Document) TypeNumberOfListWraps ¶
func (*Document) TypesAreCompatibleDeep ¶
func (*Document) TypesAreCompatibleIgnoringNullability ¶
TypesAreCompatibleIgnoringNullability is a relaxed variant of TypesAreCompatibleDeep that strips NonNull wrappers at every nesting level but still requires the same list structure and the same base named type.
Use this only when the two fields' enclosing types cannot overlap at runtime (i.e. potentiallySameObject returns false), for example two distinct concrete object types inside inline fragments on the same union/interface field. In that case the spec's SameResponseShape algorithm permits differing nullability because only one branch can ever execute for a given runtime object.
See https://spec.graphql.org/October2021/#SameResponseShape()
func (*Document) UnionHasMember ¶
func (*Document) UnionMemberTypeIsFirst ¶
func (*Document) UnionMemberTypeIsLast ¶
func (*Document) UnionNodeIntersectsInterfaceNode ¶
func (*Document) UnionNodeIntersectsUnionNode ¶
func (*Document) UnionTypeDefinitionDescriptionBytes ¶
func (*Document) UnionTypeDefinitionDescriptionString ¶
func (*Document) UnionTypeDefinitionHasDirectives ¶
func (*Document) UnionTypeDefinitionHasField ¶
func (*Document) UnionTypeDefinitionMemberTypeNames ¶
func (*Document) UnionTypeDefinitionMemberTypeNamesAsBytes ¶
func (*Document) UnionTypeDefinitionNameBytes ¶
func (*Document) UnionTypeDefinitionNameString ¶
func (*Document) UnionTypeExtensionDescriptionBytes ¶
func (*Document) UnionTypeExtensionDescriptionString ¶
func (*Document) UnionTypeExtensionHasDirectives ¶
func (*Document) UnionTypeExtensionHasUnionMemberTypes ¶
func (*Document) UnionTypeExtensionNameBytes ¶
func (*Document) UnionTypeExtensionNameString ¶
func (*Document) UpdateRootNode ¶
func (*Document) ValueContainsVariable ¶
func (*Document) ValueContentBytes ¶
func (*Document) ValueContentString ¶
func (*Document) ValuesAreEqual ¶
func (*Document) VariableDefinitionByNameAndOperation ¶
func (*Document) VariableDefinitionDefaultValue ¶
func (*Document) VariableDefinitionHasDefaultValue ¶
func (*Document) VariableDefinitionNameBytes ¶
func (*Document) VariableDefinitionNameString ¶
func (*Document) VariableDefinitionType ¶
func (*Document) VariableDefinitionsAfter ¶
func (*Document) VariableDefinitionsBefore ¶
func (*Document) VariablePathByArgumentRefAndArgumentPath ¶
func (*Document) VariableValueNameBytes ¶
func (*Document) VariableValueNameString ¶
func (*Document) VariableValuesAreEqual ¶
type EnumTypeDefinition ¶
type EnumTypeDefinition struct {
Description Description // optional, describes enum
EnumLiteral position.Position // enum
Name ByteSliceReference // e.g. Direction
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
HasEnumValuesDefinition bool
EnumValuesDefinition EnumValueDefinitionList // optional, e.g. { NORTH EAST }
}
EnumTypeDefinition example:
enum Direction {
NORTH
EAST
SOUTH
WEST
}
type EnumTypeExtension ¶
type EnumTypeExtension struct {
EnumTypeDefinition
ExtendLiteral position.Position
}
type EnumValue ¶
type EnumValue struct {
Name ByteSliceReference // e.g. ORIGIN
}
EnumValue example: Name but not true or false or null
type EnumValueDefinition ¶
type EnumValueDefinition struct {
Description Description // optional, describes enum value
EnumValue ByteSliceReference // e.g. NORTH (Name but not true, false or null
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
}
EnumValueDefinition example: "NORTH enum value" NORTH @foo
type EnumValueDefinitionList ¶
type Field ¶
type Field struct {
Alias Alias // optional, e.g. renamed:
Name ByteSliceReference // field name, e.g. id
HasArguments bool
Arguments ArgumentList // optional
HasDirectives bool
Directives DirectiveList // optional
SelectionSet int // optional
HasSelections bool
Position position.Position
}
type FieldDefinition ¶
type FieldDefinition struct {
Description Description // optional e.g. "FieldDefinition is ..."
Name ByteSliceReference // e.g. foo
HasArgumentsDefinitions bool
ArgumentsDefinition InputValueDefinitionList // optional
Colon position.Position // :
Type int // e.g. String
HasDirectives bool
Directives DirectiveList // e.g. @foo
}
type FieldDefinitionList ¶
type FloatValue ¶
type FloatValue struct {
Negative bool // indicates if the value is negative
NegativeSign position.Position // optional -
Raw ByteSliceReference // e.g. 13.37
}
FloatValue example: 13.37 / -13.37
type FragmentDefinition ¶
type FragmentDefinition struct {
Description Description // optional, describes the fragment
FragmentLiteral position.Position // fragment
Name ByteSliceReference // Name but not on, e.g. friendFields
TypeCondition TypeCondition // e.g. on User
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
SelectionSet int // e.g. { id }
HasSelections bool
}
FragmentDefinition example:
fragment friendFields on User {
id
name
profilePic(size: 50)
}
type FragmentSpread ¶
type FragmentSpread struct {
Spread position.Position // ...
FragmentName ByteSliceReference // Name but not on, e.g. MyFragment
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
}
FragmentSpread example: ...MyFragment
type Index ¶
type Index struct {
// QueryTypeName is the name of the query type on the schema Node
// schema { query: Query }
QueryTypeName ByteSlice
// MutationTypeName is the name of the mutation type on the schema Node
// schema { mutation: Mutation }
MutationTypeName ByteSlice
// SubscriptionTypeName is the name of the subscription type on the schema Node
// schema { subscription: Subscription }
SubscriptionTypeName ByteSlice
// ReplacedFragmentSpreads is a list of references (slice indices) of all FragmentSpreads that got replaced during normalization.
ReplacedFragmentSpreads []int
// MergedTypeExtensions is a list of Nodes (Node kind + reference) that got merged during type extension merging.
MergedTypeExtensions []Node
// contains filtered or unexported fields
}
Index is a struct to easily look up objects in a document, e.g. find Nodes (type/interface/union definitions) by name
func (*Index) AddNodeBytes ¶
func (*Index) AddNodeStr ¶
func (*Index) FirstNonExtensionNodeByNameBytes ¶
func (*Index) IsRootOperationTypeNameBytes ¶
func (*Index) IsRootOperationTypeNameString ¶
func (*Index) RemoveNodeByName ¶
type InlineFragment ¶
type InlineFragment struct {
Spread position.Position // ...
TypeCondition TypeCondition // on NamedType, e.g. on User
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
SelectionSet int // optional, e.g. { nextField }
HasSelections bool
IsOfTheSameType bool
}
InlineFragment example:
... on User {
friends {
count
}
}
type Input ¶
type Input struct {
// RawBytes is the raw byte input
RawBytes []byte
// Length of RawBytes
Length int
// InputPosition is the current position in the RawBytes
InputPosition int
// TextPosition is the current position within the text (line and character information about the current Tokens)
TextPosition position.Position
// Variables are the json encoded variables of the operation
Variables []byte
}
Input is a raw graphql document containing the raw input + meta data
func (*Input) AppendInputBytes ¶
func (i *Input) AppendInputBytes(bytes []byte) (ref ByteSliceReference)
AppendInputBytes appends a byte slice to the current input and returns the ByteSliceReference
func (*Input) AppendInputString ¶
func (i *Input) AppendInputString(input string) ByteSliceReference
AppendInputString appends a string to the current input and returns the ByteSliceReference
func (*Input) ByteSlice ¶
func (i *Input) ByteSlice(reference ByteSliceReference) ByteSlice
ByteSlice returns the byte slice for a given byte ByteSliceReference
func (*Input) ByteSliceReferenceContentEquals ¶
func (i *Input) ByteSliceReferenceContentEquals(left, right ByteSliceReference) bool
ByteSliceReferenceContentEquals compares the content of two byte slices and returns true if they are the same
func (*Input) ByteSliceString ¶
func (i *Input) ByteSliceString(reference ByteSliceReference) string
ByteSliceString returns a string for a given ByteSliceReference
func (*Input) ResetInputBytes ¶
ResetInputBytes empties the input and sets it to bytes argument
func (*Input) ResetInputString ¶
ResetInputString empties the input and sets it to input string.
type InputObjectTypeDefinition ¶
type InputObjectTypeDefinition struct {
Description Description // optional, describes the input type
InputLiteral position.Position // input
Name ByteSliceReference // name of the input type
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
HasInputFieldsDefinition bool
InputFieldsDefinition InputValueDefinitionList // e.g. x:Float
}
type InputObjectTypeExtension ¶
type InputObjectTypeExtension struct {
InputObjectTypeDefinition
ExtendLiteral position.Position
}
type InputValueDefinition ¶
type InputValueDefinition struct {
Description Description // optional, e.g. "input Foo is..."
Name ByteSliceReference // e.g. Foo
Colon position.Position // :
Type int // e.g. String
DefaultValue DefaultValue // e.g. = "Bar"
HasDirectives bool
Directives DirectiveList // e.g. @baz
}
type IntValue ¶
type IntValue struct {
Negative bool // indicates if the value is negative
NegativeSign position.Position // optional -
Raw ByteSliceReference // e.g. 123
}
IntValue example: 123 / -123
type InterfaceTypeDefinition ¶
type InterfaceTypeDefinition struct {
Description Description // optional, describes the interface
InterfaceLiteral position.Position // interface
Name ByteSliceReference // e.g. NamedEntity
ImplementsInterfaces TypeList // e.g implements Bar & Baz
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
HasFieldDefinitions bool
FieldsDefinition FieldDefinitionList // optional, e.g. { name: String }
ImplementedByObjectDefinitions []int // list of ObjectTypeDefinition refs that implement this interface
}
InterfaceTypeDefinition example:
interface NamedEntity {
name: String
}
type InterfaceTypeExtension ¶
type InterfaceTypeExtension struct {
InterfaceTypeDefinition
ExtendLiteral position.Position
}
type NodeKind ¶
type NodeKind int
const ( NodeKindUnknown NodeKind = 22 + iota NodeKindSchemaDefinition NodeKindSchemaExtension NodeKindObjectTypeDefinition NodeKindObjectTypeExtension NodeKindInterfaceTypeDefinition NodeKindInterfaceTypeExtension NodeKindUnionTypeDefinition NodeKindUnionTypeExtension NodeKindUnionMemberType NodeKindEnumTypeDefinition NodeKindEnumValueDefinition NodeKindEnumTypeExtension NodeKindInputObjectTypeDefinition NodeKindInputValueDefinition NodeKindInputObjectTypeExtension NodeKindScalarTypeDefinition NodeKindScalarTypeExtension NodeKindDirectiveDefinition NodeKindOperationDefinition NodeKindSelectionSet NodeKindField NodeKindFieldDefinition NodeKindFragmentSpread NodeKindInlineFragment NodeKindFragmentDefinition NodeKindArgument NodeKindDirective NodeKindVariableDefinition )
func (NodeKind) IsAbstractType ¶
type ObjectField ¶
type ObjectField struct {
Name ByteSliceReference // e.g. lon
Colon position.Position // :
Value Value // e.g. 12.43
Position position.Position
}
ObjectField example: lon: 12.43
type ObjectTypeDefinition ¶
type ObjectTypeDefinition struct {
Description Description // optional, e.g. "type Foo is ..."
TypeLiteral position.Position // type
Name ByteSliceReference // e.g. Foo
ImplementsInterfaces TypeList // e.g implements Bar & Baz
HasDirectives bool
Directives DirectiveList // e.g. @foo
HasFieldDefinitions bool
FieldsDefinition FieldDefinitionList // { foo:Bar bar(baz:String) }
}
type ObjectTypeExtension ¶
type ObjectTypeExtension struct {
ObjectTypeDefinition
ExtendLiteral position.Position
}
type ObjectValue ¶
type ObjectValue struct {
LBRACE position.Position
Refs []int // ObjectField
RBRACE position.Position
}
ObjectValue example: { lon: 12.43, lat: -53.211 }
type OperationDefinition ¶
type OperationDefinition struct {
Description Description // optional, describes the operation
OperationType OperationType // one of query, mutation, subscription
OperationTypeLiteral position.Position // position of the operation type literal, if present
Name ByteSliceReference // optional, user defined name of the operation
HasVariableDefinitions bool
VariableDefinitions VariableDefinitionList // optional, e.g. ($devicePicSize: Int)
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
SelectionSet int // e.g. {field}
HasSelections bool
}
type OperationType ¶
type OperationType int
const ( OperationTypeUnknown OperationType = iota OperationTypeQuery OperationTypeMutation OperationTypeSubscription )
func (OperationType) Name ¶
func (t OperationType) Name() string
Name returns a human-readable operation name for the given OperationType. If the operation is not one of the OperationType constants, it panics.
func (OperationType) String ¶
func (i OperationType) String() string
type Path ¶
type Path []PathItem
func (Path) DotDelimitedString ¶
func (Path) EndsWithFragment ¶
func (Path) RemoveLastItem ¶
func (Path) WithFieldNameItem ¶
func (Path) WithPathItem ¶
func (Path) WithoutInlineFragmentNames ¶
type PathItem ¶
type PathItem struct {
Kind PathKind
ArrayIndex int
FieldName ByteSlice
FragmentRef int // only used for InlineFragmentName, allows to distinguish between multiple inline fragments on the same type
}
func (*PathItem) MarshalJSON ¶
func (*PathItem) UnmarshalJSON ¶
type Repeatable ¶
type RootOperationTypeDefinition ¶
type RootOperationTypeDefinition struct {
OperationType OperationType // one of query, mutation, subscription
Colon position.Position // :
NamedType Type // e.g. Query
}
type ScalarTypeDefinition ¶
type ScalarTypeDefinition struct {
Description Description // optional, describes the scalar
ScalarLiteral position.Position // scalar
Name ByteSliceReference // e.g. JSON
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
}
ScalarTypeDefinition example: scalar JSON
type ScalarTypeExtension ¶
type ScalarTypeExtension struct {
ScalarTypeDefinition
ExtendLiteral position.Position
}
type SchemaDefinition ¶
type SchemaDefinition struct {
Description Description // optional
SchemaLiteral position.Position // schema
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
RootOperationTypeDefinitions RootOperationTypeDefinitionList // e.g. query: Query, mutation: Mutation, subscription: Subscription
}
func (*SchemaDefinition) AddRootOperationTypeDefinitionRefs ¶
func (s *SchemaDefinition) AddRootOperationTypeDefinitionRefs(refs ...int)
type SchemaExtension ¶
type SchemaExtension struct {
SchemaDefinition
ExtendLiteral position.Position
}
type Selection ¶
type Selection struct {
Kind SelectionKind // one of Field, FragmentSpread, InlineFragment
Ref int // reference to the actual selection
}
type SelectionKind ¶
type SelectionKind int
const ( SelectionKindUnknown SelectionKind = 18 + iota SelectionKindField SelectionKindFragmentSpread SelectionKindInlineFragment )
func (SelectionKind) String ¶
func (i SelectionKind) String() string
type SelectionSet ¶
type StringValue ¶
type StringValue struct {
BlockString bool // """foo""" = blockString, "foo" string
Content ByteSliceReference // e.g. foo
}
StringValue example: "foo"
type Type ¶
type Type struct {
TypeKind TypeKind // one of Named,List,NonNull
Name ByteSliceReference // e.g. String (only on NamedType)
Position position.Position
Open position.Position // [ (only on ListType)
Close position.Position // ] (only on ListType)
Bang position.Position // ! (only on NonNullType)
OfType int
}
type TypeCondition ¶
TypeCondition example: on User
type UnionTypeDefinition ¶
type UnionTypeDefinition struct {
Description Description // optional, describes union
UnionLiteral position.Position // union
Name ByteSliceReference // e.g. SearchResult
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
Equals position.Position // =
HasUnionMemberTypes bool
UnionMemberTypes TypeList // optional, e.g. Photo | Person
HasFieldDefinitions bool
FieldsDefinition FieldDefinitionList // contains a single field: { __typename: String! }
}
UnionTypeDefinition example: union SearchResult = Photo | Person
type UnionTypeExtension ¶
type UnionTypeExtension struct {
UnionTypeDefinition
ExtendLiteral position.Position
}
type VariableDefinition ¶
type VariableDefinition struct {
VariableValue Value // $ Name
Colon position.Position // :
Type int // e.g. String
DefaultValue DefaultValue // optional, e.g. = "Default"
HasDirectives bool
Directives DirectiveList // optional, e.g. @foo
}
VariableDefinition example: $devicePicSize: Int = 100 @small
type VariableDefinitionList ¶
type VariableValue ¶
type VariableValue struct {
Dollar position.Position // $
Name ByteSliceReference // e.g. devicePicSize
}
VariableValue example: $devicePicSize
Source Files
¶
- ast.go
- ast_argument.go
- ast_description.go
- ast_directive.go
- ast_directive_definition.go
- ast_enum_type_definition.go
- ast_enum_type_extension.go
- ast_enum_value_definition.go
- ast_field.go
- ast_field_alias.go
- ast_field_definition.go
- ast_fragment_definition.go
- ast_fragment_spread.go
- ast_inline_fragment.go
- ast_input_object_type_definition.go
- ast_input_object_type_extension.go
- ast_input_value_definition.go
- ast_interface_type_definition.go
- ast_interface_type_extension.go
- ast_node.go
- ast_node_kind.go
- ast_object_field.go
- ast_object_type_definition.go
- ast_object_type_extension.go
- ast_operation_definition.go
- ast_root_operation_type_definition.go
- ast_scalar_type_definition.go
- ast_scalar_type_extension.go
- ast_schema_definition.go
- ast_schema_extension.go
- ast_selection.go
- ast_string.go
- ast_type.go
- ast_union_type_definition.go
- ast_union_type_extension.go
- ast_val_boolean_value.go
- ast_val_enum_value.go
- ast_val_float_value.go
- ast_val_int_value.go
- ast_val_list_value.go
- ast_val_object_value.go
- ast_val_string_value.go
- ast_val_variable_value.go
- ast_value.go
- ast_variable_definition.go
- directive_location.go
- directive_location_string.go
- helpers.go
- index.go
- input.go
- path.go