123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- import type { Maybe } from '../jsutils/Maybe';
- import type { GraphQLError } from '../error/GraphQLError';
- import type {
- ArgumentNode,
- ConstArgumentNode,
- ConstDirectiveNode,
- ConstListValueNode,
- ConstObjectFieldNode,
- ConstObjectValueNode,
- ConstValueNode,
- DefinitionNode,
- DirectiveDefinitionNode,
- DirectiveNode,
- DocumentNode,
- EnumTypeDefinitionNode,
- EnumTypeExtensionNode,
- EnumValueDefinitionNode,
- FieldDefinitionNode,
- FieldNode,
- FragmentDefinitionNode,
- FragmentSpreadNode,
- InlineFragmentNode,
- InputObjectTypeDefinitionNode,
- InputObjectTypeExtensionNode,
- InputValueDefinitionNode,
- InterfaceTypeDefinitionNode,
- InterfaceTypeExtensionNode,
- ListValueNode,
- NamedTypeNode,
- NameNode,
- ObjectFieldNode,
- ObjectTypeDefinitionNode,
- ObjectTypeExtensionNode,
- ObjectValueNode,
- OperationDefinitionNode,
- OperationTypeDefinitionNode,
- ScalarTypeDefinitionNode,
- ScalarTypeExtensionNode,
- SchemaDefinitionNode,
- SchemaExtensionNode,
- SelectionNode,
- SelectionSetNode,
- StringValueNode,
- Token,
- TypeNode,
- TypeSystemExtensionNode,
- UnionTypeDefinitionNode,
- UnionTypeExtensionNode,
- ValueNode,
- VariableDefinitionNode,
- VariableNode,
- } from './ast';
- import { Location, OperationTypeNode } from './ast';
- import { Lexer } from './lexer';
- import { Source } from './source';
- import { TokenKind } from './tokenKind';
- export interface ParseOptions {
-
- noLocation?: boolean;
-
- maxTokens?: number | undefined;
-
- allowLegacyFragmentVariables?: boolean;
- }
- export declare function parse(
- source: string | Source,
- options?: ParseOptions | undefined,
- ): DocumentNode;
- export declare function parseValue(
- source: string | Source,
- options?: ParseOptions | undefined,
- ): ValueNode;
- export declare function parseConstValue(
- source: string | Source,
- options?: ParseOptions | undefined,
- ): ConstValueNode;
- export declare function parseType(
- source: string | Source,
- options?: ParseOptions | undefined,
- ): TypeNode;
- export declare class Parser {
- protected _options: ParseOptions;
- protected _lexer: Lexer;
- protected _tokenCounter: number;
- constructor(source: string | Source, options?: ParseOptions);
-
- parseName(): NameNode;
-
- parseDocument(): DocumentNode;
-
- parseDefinition(): DefinitionNode;
-
- parseOperationDefinition(): OperationDefinitionNode;
-
- parseOperationType(): OperationTypeNode;
-
- parseVariableDefinitions(): Array<VariableDefinitionNode>;
-
- parseVariableDefinition(): VariableDefinitionNode;
-
- parseVariable(): VariableNode;
-
- parseSelectionSet(): SelectionSetNode;
-
- parseSelection(): SelectionNode;
-
- parseField(): FieldNode;
-
- parseArguments(isConst: true): Array<ConstArgumentNode>;
- parseArguments(isConst: boolean): Array<ArgumentNode>;
-
- parseArgument(isConst: true): ConstArgumentNode;
- parseArgument(isConst?: boolean): ArgumentNode;
- parseConstArgument(): ConstArgumentNode;
-
- parseFragment(): FragmentSpreadNode | InlineFragmentNode;
-
- parseFragmentDefinition(): FragmentDefinitionNode;
-
- parseFragmentName(): NameNode;
-
- parseValueLiteral(isConst: true): ConstValueNode;
- parseValueLiteral(isConst: boolean): ValueNode;
- parseConstValueLiteral(): ConstValueNode;
- parseStringLiteral(): StringValueNode;
-
- parseList(isConst: true): ConstListValueNode;
- parseList(isConst: boolean): ListValueNode;
-
- parseObject(isConst: true): ConstObjectValueNode;
- parseObject(isConst: boolean): ObjectValueNode;
-
- parseObjectField(isConst: true): ConstObjectFieldNode;
- parseObjectField(isConst: boolean): ObjectFieldNode;
-
- parseDirectives(isConst: true): Array<ConstDirectiveNode>;
- parseDirectives(isConst: boolean): Array<DirectiveNode>;
- parseConstDirectives(): Array<ConstDirectiveNode>;
-
- parseDirective(isConst: true): ConstDirectiveNode;
- parseDirective(isConst: boolean): DirectiveNode;
-
- parseTypeReference(): TypeNode;
-
- parseNamedType(): NamedTypeNode;
- peekDescription(): boolean;
-
- parseDescription(): undefined | StringValueNode;
-
- parseSchemaDefinition(): SchemaDefinitionNode;
-
- parseOperationTypeDefinition(): OperationTypeDefinitionNode;
-
- parseScalarTypeDefinition(): ScalarTypeDefinitionNode;
-
- parseObjectTypeDefinition(): ObjectTypeDefinitionNode;
-
- parseImplementsInterfaces(): Array<NamedTypeNode>;
-
- parseFieldsDefinition(): Array<FieldDefinitionNode>;
-
- parseFieldDefinition(): FieldDefinitionNode;
-
- parseArgumentDefs(): Array<InputValueDefinitionNode>;
-
- parseInputValueDef(): InputValueDefinitionNode;
-
- parseInterfaceTypeDefinition(): InterfaceTypeDefinitionNode;
-
- parseUnionTypeDefinition(): UnionTypeDefinitionNode;
-
- parseUnionMemberTypes(): Array<NamedTypeNode>;
-
- parseEnumTypeDefinition(): EnumTypeDefinitionNode;
-
- parseEnumValuesDefinition(): Array<EnumValueDefinitionNode>;
-
- parseEnumValueDefinition(): EnumValueDefinitionNode;
-
- parseEnumValueName(): NameNode;
-
- parseInputObjectTypeDefinition(): InputObjectTypeDefinitionNode;
-
- parseInputFieldsDefinition(): Array<InputValueDefinitionNode>;
-
- parseTypeSystemExtension(): TypeSystemExtensionNode;
-
- parseSchemaExtension(): SchemaExtensionNode;
-
- parseScalarTypeExtension(): ScalarTypeExtensionNode;
-
- parseObjectTypeExtension(): ObjectTypeExtensionNode;
-
- parseInterfaceTypeExtension(): InterfaceTypeExtensionNode;
-
- parseUnionTypeExtension(): UnionTypeExtensionNode;
-
- parseEnumTypeExtension(): EnumTypeExtensionNode;
-
- parseInputObjectTypeExtension(): InputObjectTypeExtensionNode;
-
- parseDirectiveDefinition(): DirectiveDefinitionNode;
-
- parseDirectiveLocations(): Array<NameNode>;
- parseDirectiveLocation(): NameNode;
-
- node<
- T extends {
- loc?: Location;
- },
- >(startToken: Token, node: T): T;
-
- peek(kind: TokenKind): boolean;
-
- expectToken(kind: TokenKind): Token;
-
- expectOptionalToken(kind: TokenKind): boolean;
-
- expectKeyword(value: string): void;
-
- expectOptionalKeyword(value: string): boolean;
-
- unexpected(atToken?: Maybe<Token>): GraphQLError;
-
- any<T>(openKind: TokenKind, parseFn: () => T, closeKind: TokenKind): Array<T>;
- /**
- * Returns a list of parse nodes, determined by the parseFn.
- * It can be empty only if open token is missing otherwise it will always return non-empty list
- * that begins with a lex token of openKind and ends with a lex token of closeKind.
- * Advances the parser to the next lex token after the closing token.
- */
- optionalMany<T>(
- openKind: TokenKind,
- parseFn: () => T,
- closeKind: TokenKind,
- ): Array<T>;
- /**
- * Returns a non-empty list of parse nodes, determined by the parseFn.
- * This list begins with a lex token of openKind and ends with a lex token of closeKind.
- * Advances the parser to the next lex token after the closing token.
- */
- many<T>(
- openKind: TokenKind,
- parseFn: () => T,
- closeKind: TokenKind,
- ): Array<T>;
- /**
- * Returns a non-empty list of parse nodes, determined by the parseFn.
- * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.
- * Advances the parser to the next lex token after last item in the list.
- */
- delimitedMany<T>(delimiterKind: TokenKind, parseFn: () => T): Array<T>;
- advanceLexer(): void;
- }
|