Mirror: The spec-compliant minimum of client-side GraphQL.
1import type { Kind, OperationTypeNode } from './kind'; 2import type { Location } from './types'; 3 4import type { 5 TypeSystemDefinitionNode, 6 TypeSystemExtensionNode, 7 SchemaDefinitionNode, 8 OperationTypeDefinitionNode, 9 ScalarTypeDefinitionNode, 10 ObjectTypeDefinitionNode, 11 FieldDefinitionNode, 12 InputValueDefinitionNode, 13 InterfaceTypeDefinitionNode, 14 UnionTypeDefinitionNode, 15 EnumTypeDefinitionNode, 16 EnumValueDefinitionNode, 17 InputObjectTypeDefinitionNode, 18 DirectiveDefinitionNode, 19 SchemaExtensionNode, 20 ScalarTypeExtensionNode, 21 ObjectTypeExtensionNode, 22 InterfaceTypeExtensionNode, 23 UnionTypeExtensionNode, 24 EnumTypeExtensionNode, 25 InputObjectTypeExtensionNode, 26} from './schemaAst'; 27 28export type ASTNode = 29 | NameNode 30 | DocumentNode 31 | OperationDefinitionNode 32 | VariableDefinitionNode 33 | VariableNode 34 | SelectionSetNode 35 | FieldNode 36 | ArgumentNode 37 | FragmentSpreadNode 38 | InlineFragmentNode 39 | FragmentDefinitionNode 40 | IntValueNode 41 | FloatValueNode 42 | StringValueNode 43 | BooleanValueNode 44 | NullValueNode 45 | EnumValueNode 46 | ListValueNode 47 | ObjectValueNode 48 | ObjectFieldNode 49 | DirectiveNode 50 | NamedTypeNode 51 | ListTypeNode 52 | NonNullTypeNode 53 | SchemaDefinitionNode 54 | OperationTypeDefinitionNode 55 | ScalarTypeDefinitionNode 56 | ObjectTypeDefinitionNode 57 | FieldDefinitionNode 58 | InputValueDefinitionNode 59 | InterfaceTypeDefinitionNode 60 | UnionTypeDefinitionNode 61 | EnumTypeDefinitionNode 62 | EnumValueDefinitionNode 63 | InputObjectTypeDefinitionNode 64 | DirectiveDefinitionNode 65 | SchemaExtensionNode 66 | ScalarTypeExtensionNode 67 | ObjectTypeExtensionNode 68 | InterfaceTypeExtensionNode 69 | UnionTypeExtensionNode 70 | EnumTypeExtensionNode 71 | InputObjectTypeExtensionNode; 72 73export interface NameNode { 74 readonly kind: Kind.NAME; 75 readonly value: string; 76 readonly loc?: Location; 77} 78 79export interface DocumentNode { 80 readonly kind: Kind.DOCUMENT; 81 readonly definitions: ReadonlyArray<DefinitionNode>; 82 readonly loc?: Location; 83} 84 85export type DefinitionNode = 86 | ExecutableDefinitionNode 87 | TypeSystemDefinitionNode 88 | TypeSystemExtensionNode; 89 90export type ExecutableDefinitionNode = OperationDefinitionNode | FragmentDefinitionNode; 91 92export interface OperationDefinitionNode { 93 readonly kind: Kind.OPERATION_DEFINITION; 94 readonly operation: OperationTypeNode; 95 readonly name?: NameNode; 96 readonly variableDefinitions?: ReadonlyArray<VariableDefinitionNode>; 97 readonly directives?: ReadonlyArray<DirectiveNode>; 98 readonly selectionSet: SelectionSetNode; 99 readonly loc?: Location; 100} 101 102export interface VariableDefinitionNode { 103 readonly kind: Kind.VARIABLE_DEFINITION; 104 readonly variable: VariableNode; 105 readonly type: TypeNode; 106 readonly defaultValue?: ConstValueNode; 107 readonly directives?: ReadonlyArray<ConstDirectiveNode>; 108 readonly loc?: Location; 109} 110 111export interface VariableNode { 112 readonly kind: Kind.VARIABLE; 113 readonly name: NameNode; 114 readonly loc?: Location; 115} 116 117export interface SelectionSetNode { 118 readonly kind: Kind.SELECTION_SET; 119 readonly selections: ReadonlyArray<SelectionNode>; 120 readonly loc?: Location; 121} 122 123export declare type SelectionNode = FieldNode | FragmentSpreadNode | InlineFragmentNode; 124 125export interface FieldNode { 126 readonly kind: Kind.FIELD; 127 readonly alias?: NameNode; 128 readonly name: NameNode; 129 readonly arguments?: ReadonlyArray<ArgumentNode>; 130 readonly directives?: ReadonlyArray<DirectiveNode>; 131 readonly selectionSet?: SelectionSetNode; 132 readonly loc?: Location; 133} 134 135export interface ArgumentNode { 136 readonly kind: Kind.ARGUMENT; 137 readonly name: NameNode; 138 readonly value: ValueNode; 139 readonly loc?: Location; 140} 141 142export interface ConstArgumentNode { 143 readonly kind: Kind.ARGUMENT; 144 readonly name: NameNode; 145 readonly value: ConstValueNode; 146 readonly loc?: Location; 147} 148 149export interface FragmentSpreadNode { 150 readonly kind: Kind.FRAGMENT_SPREAD; 151 readonly name: NameNode; 152 readonly directives?: ReadonlyArray<DirectiveNode>; 153 readonly loc?: Location; 154} 155 156export interface InlineFragmentNode { 157 readonly kind: Kind.INLINE_FRAGMENT; 158 readonly typeCondition?: NamedTypeNode; 159 readonly directives?: ReadonlyArray<DirectiveNode>; 160 readonly selectionSet: SelectionSetNode; 161 readonly loc?: Location; 162} 163 164export interface FragmentDefinitionNode { 165 readonly kind: Kind.FRAGMENT_DEFINITION; 166 readonly name: NameNode; 167 readonly typeCondition: NamedTypeNode; 168 readonly directives?: ReadonlyArray<DirectiveNode>; 169 readonly selectionSet: SelectionSetNode; 170 readonly loc?: Location; 171} 172 173export type ValueNode = 174 | VariableNode 175 | IntValueNode 176 | FloatValueNode 177 | StringValueNode 178 | BooleanValueNode 179 | NullValueNode 180 | EnumValueNode 181 | ListValueNode 182 | ObjectValueNode; 183 184export type ConstValueNode = 185 | IntValueNode 186 | FloatValueNode 187 | StringValueNode 188 | BooleanValueNode 189 | NullValueNode 190 | EnumValueNode 191 | ConstListValueNode 192 | ConstObjectValueNode; 193 194export interface IntValueNode { 195 readonly kind: Kind.INT; 196 readonly value: string; 197 readonly loc?: Location; 198} 199 200export interface FloatValueNode { 201 readonly kind: Kind.FLOAT; 202 readonly value: string; 203 readonly loc?: Location; 204} 205 206export interface StringValueNode { 207 readonly kind: Kind.STRING; 208 readonly value: string; 209 readonly block?: boolean; 210 readonly loc?: Location; 211} 212 213export interface BooleanValueNode { 214 readonly kind: Kind.BOOLEAN; 215 readonly value: boolean; 216 readonly loc?: Location; 217} 218 219export interface NullValueNode { 220 readonly kind: Kind.NULL; 221 readonly loc?: Location; 222} 223 224export interface EnumValueNode { 225 readonly kind: Kind.ENUM; 226 readonly value: string; 227 readonly loc?: Location; 228} 229 230export interface ListValueNode { 231 readonly kind: Kind.LIST; 232 readonly values: ReadonlyArray<ValueNode>; 233 readonly loc?: Location; 234} 235 236export interface ConstListValueNode { 237 readonly kind: Kind.LIST; 238 readonly values: ReadonlyArray<ConstValueNode>; 239 readonly loc?: Location; 240} 241 242export interface ObjectValueNode { 243 readonly kind: Kind.OBJECT; 244 readonly fields: ReadonlyArray<ObjectFieldNode>; 245 readonly loc?: Location; 246} 247 248export interface ConstObjectValueNode { 249 readonly kind: Kind.OBJECT; 250 readonly fields: ReadonlyArray<ConstObjectFieldNode>; 251 readonly loc?: Location; 252} 253 254export interface ObjectFieldNode { 255 readonly kind: Kind.OBJECT_FIELD; 256 readonly name: NameNode; 257 readonly value: ValueNode; 258 readonly loc?: Location; 259} 260 261export interface ConstObjectFieldNode { 262 readonly kind: Kind.OBJECT_FIELD; 263 readonly name: NameNode; 264 readonly value: ConstValueNode; 265 readonly loc?: Location; 266} 267 268export interface DirectiveNode { 269 readonly kind: Kind.DIRECTIVE; 270 readonly name: NameNode; 271 readonly arguments?: ReadonlyArray<ArgumentNode>; 272 readonly loc?: Location; 273} 274 275export interface ConstDirectiveNode { 276 readonly kind: Kind.DIRECTIVE; 277 readonly name: NameNode; 278 readonly arguments?: ReadonlyArray<ConstArgumentNode>; 279 readonly loc?: Location; 280} 281 282export declare type TypeNode = NamedTypeNode | ListTypeNode | NonNullTypeNode; 283 284export interface NamedTypeNode { 285 readonly kind: Kind.NAMED_TYPE; 286 readonly name: NameNode; 287 readonly loc?: Location; 288} 289 290export interface ListTypeNode { 291 readonly kind: Kind.LIST_TYPE; 292 readonly type: TypeNode; 293 readonly loc?: Location; 294} 295 296export interface NonNullTypeNode { 297 readonly kind: Kind.NON_NULL_TYPE; 298 readonly type: NamedTypeNode | ListTypeNode; 299 readonly loc?: Location; 300}