Mirror: The spec-compliant minimum of client-side GraphQL.
1import type * as GraphQL from 'graphql'; 2 3import type { Kind, OperationTypeNode } from './kind'; 4import type { Or, Location } from './types'; 5 6import type { 7 TypeSystemDefinitionNode, 8 TypeSystemExtensionNode, 9 SchemaDefinitionNode, 10 OperationTypeDefinitionNode, 11 ScalarTypeDefinitionNode, 12 ObjectTypeDefinitionNode, 13 FieldDefinitionNode, 14 InputValueDefinitionNode, 15 InterfaceTypeDefinitionNode, 16 UnionTypeDefinitionNode, 17 EnumTypeDefinitionNode, 18 EnumValueDefinitionNode, 19 InputObjectTypeDefinitionNode, 20 DirectiveDefinitionNode, 21 SchemaExtensionNode, 22 ScalarTypeExtensionNode, 23 ObjectTypeExtensionNode, 24 InterfaceTypeExtensionNode, 25 UnionTypeExtensionNode, 26 EnumTypeExtensionNode, 27 InputObjectTypeExtensionNode, 28} from './schemaAst'; 29 30export type ASTNode = Or< 31 GraphQL.ASTNode, 32 | NameNode 33 | DocumentNode 34 | OperationDefinitionNode 35 | VariableDefinitionNode 36 | VariableNode 37 | SelectionSetNode 38 | FieldNode 39 | ArgumentNode 40 | FragmentSpreadNode 41 | InlineFragmentNode 42 | FragmentDefinitionNode 43 | IntValueNode 44 | FloatValueNode 45 | StringValueNode 46 | BooleanValueNode 47 | NullValueNode 48 | EnumValueNode 49 | ListValueNode 50 | ObjectValueNode 51 | ObjectFieldNode 52 | DirectiveNode 53 | NamedTypeNode 54 | ListTypeNode 55 | NonNullTypeNode 56 | SchemaDefinitionNode 57 | OperationTypeDefinitionNode 58 | ScalarTypeDefinitionNode 59 | ObjectTypeDefinitionNode 60 | FieldDefinitionNode 61 | InputValueDefinitionNode 62 | InterfaceTypeDefinitionNode 63 | UnionTypeDefinitionNode 64 | EnumTypeDefinitionNode 65 | EnumValueDefinitionNode 66 | InputObjectTypeDefinitionNode 67 | DirectiveDefinitionNode 68 | SchemaExtensionNode 69 | ScalarTypeExtensionNode 70 | ObjectTypeExtensionNode 71 | InterfaceTypeExtensionNode 72 | UnionTypeExtensionNode 73 | EnumTypeExtensionNode 74 | InputObjectTypeExtensionNode 75>; 76 77export type NameNode = Or< 78 GraphQL.NameNode, 79 { 80 readonly kind: Kind.NAME; 81 readonly value: string; 82 readonly loc?: Location; 83 } 84>; 85 86export type DocumentNode = Or< 87 GraphQL.DocumentNode, 88 { 89 readonly kind: Kind.DOCUMENT; 90 readonly definitions: ReadonlyArray<DefinitionNode>; 91 readonly loc?: Location; 92 } 93>; 94 95export type DefinitionNode = Or< 96 GraphQL.DefinitionNode, 97 ExecutableDefinitionNode | TypeSystemDefinitionNode | TypeSystemExtensionNode 98>; 99 100export type ExecutableDefinitionNode = Or< 101 GraphQL.ExecutableDefinitionNode, 102 OperationDefinitionNode | FragmentDefinitionNode 103>; 104 105export type OperationDefinitionNode = Or< 106 GraphQL.OperationDefinitionNode & { description?: StringValueNode }, 107 { 108 readonly kind: Kind.OPERATION_DEFINITION; 109 readonly operation: OperationTypeNode; 110 readonly name?: NameNode; 111 readonly description?: StringValueNode; 112 readonly variableDefinitions?: ReadonlyArray<VariableDefinitionNode>; 113 readonly directives?: ReadonlyArray<DirectiveNode>; 114 readonly selectionSet: SelectionSetNode; 115 readonly loc?: Location; 116 } 117>; 118 119export type VariableDefinitionNode = Or< 120 GraphQL.VariableDefinitionNode & { description?: StringValueNode }, 121 { 122 readonly kind: Kind.VARIABLE_DEFINITION; 123 readonly variable: VariableNode; 124 readonly type: TypeNode; 125 readonly defaultValue?: ConstValueNode; 126 readonly description?: StringValueNode; 127 readonly directives?: ReadonlyArray<ConstDirectiveNode>; 128 readonly loc?: Location; 129 } 130>; 131 132export type VariableNode = Or< 133 GraphQL.VariableNode, 134 { 135 readonly kind: Kind.VARIABLE; 136 readonly name: NameNode; 137 readonly loc?: Location; 138 } 139>; 140 141export type SelectionSetNode = Or< 142 GraphQL.SelectionSetNode, 143 { 144 readonly kind: Kind.SELECTION_SET; 145 readonly selections: ReadonlyArray<SelectionNode>; 146 readonly loc?: Location; 147 } 148>; 149 150export declare type SelectionNode = Or< 151 GraphQL.SelectionNode, 152 FieldNode | FragmentSpreadNode | InlineFragmentNode 153>; 154 155export type FieldNode = Or< 156 GraphQL.FieldNode, 157 { 158 readonly kind: Kind.FIELD; 159 readonly alias?: NameNode; 160 readonly name: NameNode; 161 readonly arguments?: ReadonlyArray<ArgumentNode>; 162 readonly directives?: ReadonlyArray<DirectiveNode>; 163 readonly selectionSet?: SelectionSetNode; 164 readonly loc?: Location; 165 } 166>; 167 168export type ArgumentNode = Or< 169 GraphQL.ArgumentNode, 170 { 171 readonly kind: Kind.ARGUMENT; 172 readonly name: NameNode; 173 readonly value: ValueNode; 174 readonly loc?: Location; 175 } 176>; 177 178export type ConstArgumentNode = Or< 179 GraphQL.ConstArgumentNode, 180 { 181 readonly kind: Kind.ARGUMENT; 182 readonly name: NameNode; 183 readonly value: ConstValueNode; 184 readonly loc?: Location; 185 } 186>; 187 188export type FragmentSpreadNode = Or< 189 GraphQL.FragmentSpreadNode, 190 { 191 readonly kind: Kind.FRAGMENT_SPREAD; 192 readonly name: NameNode; 193 readonly directives?: ReadonlyArray<DirectiveNode>; 194 readonly loc?: Location; 195 } 196>; 197 198export type InlineFragmentNode = Or< 199 GraphQL.InlineFragmentNode, 200 { 201 readonly kind: Kind.INLINE_FRAGMENT; 202 readonly typeCondition?: NamedTypeNode; 203 readonly directives?: ReadonlyArray<DirectiveNode>; 204 readonly selectionSet: SelectionSetNode; 205 readonly loc?: Location; 206 } 207>; 208 209export type FragmentDefinitionNode = Or< 210 GraphQL.FragmentDefinitionNode & { description?: StringValueNode }, 211 { 212 readonly kind: Kind.FRAGMENT_DEFINITION; 213 readonly name: NameNode; 214 readonly description?: StringValueNode; 215 readonly typeCondition: NamedTypeNode; 216 readonly directives?: ReadonlyArray<DirectiveNode>; 217 readonly selectionSet: SelectionSetNode; 218 readonly loc?: Location; 219 } 220>; 221 222export type ValueNode = Or< 223 GraphQL.ValueNode, 224 | VariableNode 225 | IntValueNode 226 | FloatValueNode 227 | StringValueNode 228 | BooleanValueNode 229 | NullValueNode 230 | EnumValueNode 231 | ListValueNode 232 | ObjectValueNode 233>; 234 235export type ConstValueNode = Or< 236 GraphQL.ConstValueNode, 237 | IntValueNode 238 | FloatValueNode 239 | StringValueNode 240 | BooleanValueNode 241 | NullValueNode 242 | EnumValueNode 243 | ConstListValueNode 244 | ConstObjectValueNode 245>; 246 247export type IntValueNode = Or< 248 GraphQL.IntValueNode, 249 { 250 readonly kind: Kind.INT; 251 readonly value: string; 252 readonly loc?: Location; 253 } 254>; 255 256export type FloatValueNode = Or< 257 GraphQL.FloatValueNode, 258 { 259 readonly kind: Kind.FLOAT; 260 readonly value: string; 261 readonly loc?: Location; 262 } 263>; 264 265export type StringValueNode = Or< 266 GraphQL.StringValueNode, 267 { 268 readonly kind: Kind.STRING; 269 readonly value: string; 270 readonly block?: boolean; 271 readonly loc?: Location; 272 } 273>; 274 275export type BooleanValueNode = Or< 276 GraphQL.BooleanValueNode, 277 { 278 readonly kind: Kind.BOOLEAN; 279 readonly value: boolean; 280 readonly loc?: Location; 281 } 282>; 283 284export type NullValueNode = Or< 285 GraphQL.NullValueNode, 286 { 287 readonly kind: Kind.NULL; 288 readonly loc?: Location; 289 } 290>; 291 292export type EnumValueNode = Or< 293 GraphQL.EnumValueNode, 294 { 295 readonly kind: Kind.ENUM; 296 readonly value: string; 297 readonly loc?: Location; 298 } 299>; 300 301export type ListValueNode = Or< 302 GraphQL.ListValueNode, 303 { 304 readonly kind: Kind.LIST; 305 readonly values: ReadonlyArray<ValueNode>; 306 readonly loc?: Location; 307 } 308>; 309 310export type ConstListValueNode = Or< 311 GraphQL.ConstListValueNode, 312 { 313 readonly kind: Kind.LIST; 314 readonly values: ReadonlyArray<ConstValueNode>; 315 readonly loc?: Location; 316 } 317>; 318 319export type ObjectValueNode = Or< 320 GraphQL.ObjectValueNode, 321 { 322 readonly kind: Kind.OBJECT; 323 readonly fields: ReadonlyArray<ObjectFieldNode>; 324 readonly loc?: Location; 325 } 326>; 327 328export type ConstObjectValueNode = Or< 329 GraphQL.ConstObjectValueNode, 330 { 331 readonly kind: Kind.OBJECT; 332 readonly fields: ReadonlyArray<ConstObjectFieldNode>; 333 readonly loc?: Location; 334 } 335>; 336 337export type ObjectFieldNode = Or< 338 GraphQL.ObjectFieldNode, 339 { 340 readonly kind: Kind.OBJECT_FIELD; 341 readonly name: NameNode; 342 readonly value: ValueNode; 343 readonly loc?: Location; 344 } 345>; 346 347export type ConstObjectFieldNode = Or< 348 GraphQL.ConstObjectFieldNode, 349 { 350 readonly kind: Kind.OBJECT_FIELD; 351 readonly name: NameNode; 352 readonly value: ConstValueNode; 353 readonly loc?: Location; 354 } 355>; 356 357export type DirectiveNode = Or< 358 GraphQL.DirectiveNode, 359 { 360 readonly kind: Kind.DIRECTIVE; 361 readonly name: NameNode; 362 readonly arguments?: ReadonlyArray<ArgumentNode>; 363 readonly loc?: Location; 364 } 365>; 366 367export type ConstDirectiveNode = Or< 368 GraphQL.ConstDirectiveNode, 369 { 370 readonly kind: Kind.DIRECTIVE; 371 readonly name: NameNode; 372 readonly arguments?: ReadonlyArray<ConstArgumentNode>; 373 readonly loc?: Location; 374 } 375>; 376 377export type TypeNode = Or<GraphQL.TypeNode, NamedTypeNode | ListTypeNode | NonNullTypeNode>; 378 379export type NamedTypeNode = Or< 380 GraphQL.NamedTypeNode, 381 { 382 readonly kind: Kind.NAMED_TYPE; 383 readonly name: NameNode; 384 readonly loc?: Location; 385 } 386>; 387 388export type ListTypeNode = Or< 389 GraphQL.ListTypeNode, 390 { 391 readonly kind: Kind.LIST_TYPE; 392 readonly type: TypeNode; 393 readonly loc?: Location; 394 } 395>; 396 397export type NonNullTypeNode = Or< 398 GraphQL.NonNullTypeNode, 399 { 400 readonly kind: Kind.NON_NULL_TYPE; 401 readonly type: NamedTypeNode | ListTypeNode; 402 readonly loc?: Location; 403 } 404>;