You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
537 lines
16 KiB
537 lines
16 KiB
import type { Kind } from './kinds'; |
|
import type { Source } from './source'; |
|
import type { TokenKind } from './tokenKind'; |
|
/** |
|
* Contains a range of UTF-8 character offsets and token references that |
|
* identify the region of the source from which the AST derived. |
|
*/ |
|
export declare class Location { |
|
/** |
|
* The character offset at which this Node begins. |
|
*/ |
|
readonly start: number; |
|
/** |
|
* The character offset at which this Node ends. |
|
*/ |
|
readonly end: number; |
|
/** |
|
* The Token at which this Node begins. |
|
*/ |
|
readonly startToken: Token; |
|
/** |
|
* The Token at which this Node ends. |
|
*/ |
|
readonly endToken: Token; |
|
/** |
|
* The Source document the AST represents. |
|
*/ |
|
readonly source: Source; |
|
constructor(startToken: Token, endToken: Token, source: Source); |
|
get [Symbol.toStringTag](): string; |
|
toJSON(): { |
|
start: number; |
|
end: number; |
|
}; |
|
} |
|
/** |
|
* Represents a range of characters represented by a lexical token |
|
* within a Source. |
|
*/ |
|
export declare class Token { |
|
/** |
|
* The kind of Token. |
|
*/ |
|
readonly kind: TokenKind; |
|
/** |
|
* The character offset at which this Node begins. |
|
*/ |
|
readonly start: number; |
|
/** |
|
* The character offset at which this Node ends. |
|
*/ |
|
readonly end: number; |
|
/** |
|
* The 1-indexed line number on which this Token appears. |
|
*/ |
|
readonly line: number; |
|
/** |
|
* The 1-indexed column number at which this Token begins. |
|
*/ |
|
readonly column: number; |
|
/** |
|
* For non-punctuation tokens, represents the interpreted value of the token. |
|
* |
|
* Note: is undefined for punctuation tokens, but typed as string for |
|
* convenience in the parser. |
|
*/ |
|
readonly value: string; |
|
/** |
|
* Tokens exist as nodes in a double-linked-list amongst all tokens |
|
* including ignored tokens. <SOF> is always the first node and <EOF> |
|
* the last. |
|
*/ |
|
readonly prev: Token | null; |
|
readonly next: Token | null; |
|
constructor( |
|
kind: TokenKind, |
|
start: number, |
|
end: number, |
|
line: number, |
|
column: number, |
|
value?: string, |
|
); |
|
get [Symbol.toStringTag](): string; |
|
toJSON(): { |
|
kind: TokenKind; |
|
value?: string; |
|
line: number; |
|
column: number; |
|
}; |
|
} |
|
/** |
|
* The list of all possible AST node types. |
|
*/ |
|
export declare type ASTNode = |
|
| NameNode |
|
| DocumentNode |
|
| OperationDefinitionNode |
|
| VariableDefinitionNode |
|
| VariableNode |
|
| SelectionSetNode |
|
| FieldNode |
|
| ArgumentNode |
|
| FragmentSpreadNode |
|
| InlineFragmentNode |
|
| FragmentDefinitionNode |
|
| IntValueNode |
|
| FloatValueNode |
|
| StringValueNode |
|
| BooleanValueNode |
|
| NullValueNode |
|
| EnumValueNode |
|
| ListValueNode |
|
| ObjectValueNode |
|
| ObjectFieldNode |
|
| DirectiveNode |
|
| NamedTypeNode |
|
| ListTypeNode |
|
| NonNullTypeNode |
|
| SchemaDefinitionNode |
|
| OperationTypeDefinitionNode |
|
| ScalarTypeDefinitionNode |
|
| ObjectTypeDefinitionNode |
|
| FieldDefinitionNode |
|
| InputValueDefinitionNode |
|
| InterfaceTypeDefinitionNode |
|
| UnionTypeDefinitionNode |
|
| EnumTypeDefinitionNode |
|
| EnumValueDefinitionNode |
|
| InputObjectTypeDefinitionNode |
|
| DirectiveDefinitionNode |
|
| SchemaExtensionNode |
|
| ScalarTypeExtensionNode |
|
| ObjectTypeExtensionNode |
|
| InterfaceTypeExtensionNode |
|
| UnionTypeExtensionNode |
|
| EnumTypeExtensionNode |
|
| InputObjectTypeExtensionNode; |
|
/** |
|
* Utility type listing all nodes indexed by their kind. |
|
*/ |
|
export declare type ASTKindToNode = { |
|
[NodeT in ASTNode as NodeT['kind']]: NodeT; |
|
}; |
|
/** |
|
* @internal |
|
*/ |
|
export declare const QueryDocumentKeys: { |
|
[NodeT in ASTNode as NodeT['kind']]: ReadonlyArray<keyof NodeT>; |
|
}; |
|
/** |
|
* @internal |
|
*/ |
|
export declare function isNode(maybeNode: any): maybeNode is ASTNode; |
|
/** Name */ |
|
export interface NameNode { |
|
readonly kind: Kind.NAME; |
|
readonly loc?: Location; |
|
readonly value: string; |
|
} |
|
/** Document */ |
|
export interface DocumentNode { |
|
readonly kind: Kind.DOCUMENT; |
|
readonly loc?: Location; |
|
readonly definitions: ReadonlyArray<DefinitionNode>; |
|
} |
|
export declare type DefinitionNode = |
|
| ExecutableDefinitionNode |
|
| TypeSystemDefinitionNode |
|
| TypeSystemExtensionNode; |
|
export declare type ExecutableDefinitionNode = |
|
| OperationDefinitionNode |
|
| FragmentDefinitionNode; |
|
export interface OperationDefinitionNode { |
|
readonly kind: Kind.OPERATION_DEFINITION; |
|
readonly loc?: Location; |
|
readonly operation: OperationTypeNode; |
|
readonly name?: NameNode; |
|
readonly variableDefinitions?: ReadonlyArray<VariableDefinitionNode>; |
|
readonly directives?: ReadonlyArray<DirectiveNode>; |
|
readonly selectionSet: SelectionSetNode; |
|
} |
|
declare enum OperationTypeNode { |
|
QUERY = 'query', |
|
MUTATION = 'mutation', |
|
SUBSCRIPTION = 'subscription', |
|
} |
|
export { OperationTypeNode }; |
|
export interface VariableDefinitionNode { |
|
readonly kind: Kind.VARIABLE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly variable: VariableNode; |
|
readonly type: TypeNode; |
|
readonly defaultValue?: ConstValueNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
} |
|
export interface VariableNode { |
|
readonly kind: Kind.VARIABLE; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
} |
|
export interface SelectionSetNode { |
|
kind: Kind.SELECTION_SET; |
|
loc?: Location; |
|
selections: ReadonlyArray<SelectionNode>; |
|
} |
|
export declare type SelectionNode = |
|
| FieldNode |
|
| FragmentSpreadNode |
|
| InlineFragmentNode; |
|
export interface FieldNode { |
|
readonly kind: Kind.FIELD; |
|
readonly loc?: Location; |
|
readonly alias?: NameNode; |
|
readonly name: NameNode; |
|
readonly arguments?: ReadonlyArray<ArgumentNode>; |
|
readonly directives?: ReadonlyArray<DirectiveNode>; |
|
readonly selectionSet?: SelectionSetNode; |
|
} |
|
export interface ArgumentNode { |
|
readonly kind: Kind.ARGUMENT; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly value: ValueNode; |
|
} |
|
export interface ConstArgumentNode { |
|
readonly kind: Kind.ARGUMENT; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly value: ConstValueNode; |
|
} |
|
/** Fragments */ |
|
export interface FragmentSpreadNode { |
|
readonly kind: Kind.FRAGMENT_SPREAD; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<DirectiveNode>; |
|
} |
|
export interface InlineFragmentNode { |
|
readonly kind: Kind.INLINE_FRAGMENT; |
|
readonly loc?: Location; |
|
readonly typeCondition?: NamedTypeNode; |
|
readonly directives?: ReadonlyArray<DirectiveNode>; |
|
readonly selectionSet: SelectionSetNode; |
|
} |
|
export interface FragmentDefinitionNode { |
|
readonly kind: Kind.FRAGMENT_DEFINITION; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
/** @deprecated variableDefinitions will be removed in v17.0.0 */ |
|
readonly variableDefinitions?: ReadonlyArray<VariableDefinitionNode>; |
|
readonly typeCondition: NamedTypeNode; |
|
readonly directives?: ReadonlyArray<DirectiveNode>; |
|
readonly selectionSet: SelectionSetNode; |
|
} |
|
/** Values */ |
|
export declare type ValueNode = |
|
| VariableNode |
|
| IntValueNode |
|
| FloatValueNode |
|
| StringValueNode |
|
| BooleanValueNode |
|
| NullValueNode |
|
| EnumValueNode |
|
| ListValueNode |
|
| ObjectValueNode; |
|
export declare type ConstValueNode = |
|
| IntValueNode |
|
| FloatValueNode |
|
| StringValueNode |
|
| BooleanValueNode |
|
| NullValueNode |
|
| EnumValueNode |
|
| ConstListValueNode |
|
| ConstObjectValueNode; |
|
export interface IntValueNode { |
|
readonly kind: Kind.INT; |
|
readonly loc?: Location; |
|
readonly value: string; |
|
} |
|
export interface FloatValueNode { |
|
readonly kind: Kind.FLOAT; |
|
readonly loc?: Location; |
|
readonly value: string; |
|
} |
|
export interface StringValueNode { |
|
readonly kind: Kind.STRING; |
|
readonly loc?: Location; |
|
readonly value: string; |
|
readonly block?: boolean; |
|
} |
|
export interface BooleanValueNode { |
|
readonly kind: Kind.BOOLEAN; |
|
readonly loc?: Location; |
|
readonly value: boolean; |
|
} |
|
export interface NullValueNode { |
|
readonly kind: Kind.NULL; |
|
readonly loc?: Location; |
|
} |
|
export interface EnumValueNode { |
|
readonly kind: Kind.ENUM; |
|
readonly loc?: Location; |
|
readonly value: string; |
|
} |
|
export interface ListValueNode { |
|
readonly kind: Kind.LIST; |
|
readonly loc?: Location; |
|
readonly values: ReadonlyArray<ValueNode>; |
|
} |
|
export interface ConstListValueNode { |
|
readonly kind: Kind.LIST; |
|
readonly loc?: Location; |
|
readonly values: ReadonlyArray<ConstValueNode>; |
|
} |
|
export interface ObjectValueNode { |
|
readonly kind: Kind.OBJECT; |
|
readonly loc?: Location; |
|
readonly fields: ReadonlyArray<ObjectFieldNode>; |
|
} |
|
export interface ConstObjectValueNode { |
|
readonly kind: Kind.OBJECT; |
|
readonly loc?: Location; |
|
readonly fields: ReadonlyArray<ConstObjectFieldNode>; |
|
} |
|
export interface ObjectFieldNode { |
|
readonly kind: Kind.OBJECT_FIELD; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly value: ValueNode; |
|
} |
|
export interface ConstObjectFieldNode { |
|
readonly kind: Kind.OBJECT_FIELD; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly value: ConstValueNode; |
|
} |
|
/** Directives */ |
|
export interface DirectiveNode { |
|
readonly kind: Kind.DIRECTIVE; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly arguments?: ReadonlyArray<ArgumentNode>; |
|
} |
|
export interface ConstDirectiveNode { |
|
readonly kind: Kind.DIRECTIVE; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly arguments?: ReadonlyArray<ConstArgumentNode>; |
|
} |
|
/** Type Reference */ |
|
export declare type TypeNode = NamedTypeNode | ListTypeNode | NonNullTypeNode; |
|
export interface NamedTypeNode { |
|
readonly kind: Kind.NAMED_TYPE; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
} |
|
export interface ListTypeNode { |
|
readonly kind: Kind.LIST_TYPE; |
|
readonly loc?: Location; |
|
readonly type: TypeNode; |
|
} |
|
export interface NonNullTypeNode { |
|
readonly kind: Kind.NON_NULL_TYPE; |
|
readonly loc?: Location; |
|
readonly type: NamedTypeNode | ListTypeNode; |
|
} |
|
/** Type System Definition */ |
|
export declare type TypeSystemDefinitionNode = |
|
| SchemaDefinitionNode |
|
| TypeDefinitionNode |
|
| DirectiveDefinitionNode; |
|
export interface SchemaDefinitionNode { |
|
readonly kind: Kind.SCHEMA_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly operationTypes: ReadonlyArray<OperationTypeDefinitionNode>; |
|
} |
|
export interface OperationTypeDefinitionNode { |
|
readonly kind: Kind.OPERATION_TYPE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly operation: OperationTypeNode; |
|
readonly type: NamedTypeNode; |
|
} |
|
/** Type Definition */ |
|
export declare type TypeDefinitionNode = |
|
| ScalarTypeDefinitionNode |
|
| ObjectTypeDefinitionNode |
|
| InterfaceTypeDefinitionNode |
|
| UnionTypeDefinitionNode |
|
| EnumTypeDefinitionNode |
|
| InputObjectTypeDefinitionNode; |
|
export interface ScalarTypeDefinitionNode { |
|
readonly kind: Kind.SCALAR_TYPE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
} |
|
export interface ObjectTypeDefinitionNode { |
|
readonly kind: Kind.OBJECT_TYPE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly interfaces?: ReadonlyArray<NamedTypeNode>; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly fields?: ReadonlyArray<FieldDefinitionNode>; |
|
} |
|
export interface FieldDefinitionNode { |
|
readonly kind: Kind.FIELD_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly arguments?: ReadonlyArray<InputValueDefinitionNode>; |
|
readonly type: TypeNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
} |
|
export interface InputValueDefinitionNode { |
|
readonly kind: Kind.INPUT_VALUE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly type: TypeNode; |
|
readonly defaultValue?: ConstValueNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
} |
|
export interface InterfaceTypeDefinitionNode { |
|
readonly kind: Kind.INTERFACE_TYPE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly interfaces?: ReadonlyArray<NamedTypeNode>; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly fields?: ReadonlyArray<FieldDefinitionNode>; |
|
} |
|
export interface UnionTypeDefinitionNode { |
|
readonly kind: Kind.UNION_TYPE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly types?: ReadonlyArray<NamedTypeNode>; |
|
} |
|
export interface EnumTypeDefinitionNode { |
|
readonly kind: Kind.ENUM_TYPE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly values?: ReadonlyArray<EnumValueDefinitionNode>; |
|
} |
|
export interface EnumValueDefinitionNode { |
|
readonly kind: Kind.ENUM_VALUE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
} |
|
export interface InputObjectTypeDefinitionNode { |
|
readonly kind: Kind.INPUT_OBJECT_TYPE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly fields?: ReadonlyArray<InputValueDefinitionNode>; |
|
} |
|
/** Directive Definitions */ |
|
export interface DirectiveDefinitionNode { |
|
readonly kind: Kind.DIRECTIVE_DEFINITION; |
|
readonly loc?: Location; |
|
readonly description?: StringValueNode; |
|
readonly name: NameNode; |
|
readonly arguments?: ReadonlyArray<InputValueDefinitionNode>; |
|
readonly repeatable: boolean; |
|
readonly locations: ReadonlyArray<NameNode>; |
|
} |
|
/** Type System Extensions */ |
|
export declare type TypeSystemExtensionNode = |
|
| SchemaExtensionNode |
|
| TypeExtensionNode; |
|
export interface SchemaExtensionNode { |
|
readonly kind: Kind.SCHEMA_EXTENSION; |
|
readonly loc?: Location; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly operationTypes?: ReadonlyArray<OperationTypeDefinitionNode>; |
|
} |
|
/** Type Extensions */ |
|
export declare type TypeExtensionNode = |
|
| ScalarTypeExtensionNode |
|
| ObjectTypeExtensionNode |
|
| InterfaceTypeExtensionNode |
|
| UnionTypeExtensionNode |
|
| EnumTypeExtensionNode |
|
| InputObjectTypeExtensionNode; |
|
export interface ScalarTypeExtensionNode { |
|
readonly kind: Kind.SCALAR_TYPE_EXTENSION; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
} |
|
export interface ObjectTypeExtensionNode { |
|
readonly kind: Kind.OBJECT_TYPE_EXTENSION; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly interfaces?: ReadonlyArray<NamedTypeNode>; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly fields?: ReadonlyArray<FieldDefinitionNode>; |
|
} |
|
export interface InterfaceTypeExtensionNode { |
|
readonly kind: Kind.INTERFACE_TYPE_EXTENSION; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly interfaces?: ReadonlyArray<NamedTypeNode>; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly fields?: ReadonlyArray<FieldDefinitionNode>; |
|
} |
|
export interface UnionTypeExtensionNode { |
|
readonly kind: Kind.UNION_TYPE_EXTENSION; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly types?: ReadonlyArray<NamedTypeNode>; |
|
} |
|
export interface EnumTypeExtensionNode { |
|
readonly kind: Kind.ENUM_TYPE_EXTENSION; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly values?: ReadonlyArray<EnumValueDefinitionNode>; |
|
} |
|
export interface InputObjectTypeExtensionNode { |
|
readonly kind: Kind.INPUT_OBJECT_TYPE_EXTENSION; |
|
readonly loc?: Location; |
|
readonly name: NameNode; |
|
readonly directives?: ReadonlyArray<ConstDirectiveNode>; |
|
readonly fields?: ReadonlyArray<InputValueDefinitionNode>; |
|
}
|
|
|