UNPKG

graphql-language-service-parser

Version:

An online parser for GraphQL for use in syntax-highlighters and code intelligence tools

170 lines 5.7 kB
import { Kind } from 'graphql'; import { Maybe } from 'graphql-language-service-types'; import CharacterStream from './CharacterStream'; export declare type ContextToken = { start: number; end: number; string: string; state: State; style?: string; }; export declare type ContextTokenForCodeMirror = { start: number; end: number; string: string; type: string | null; state: State; }; export declare type ContextTokenUnion = ContextToken | ContextTokenForCodeMirror; export declare type RuleOrString = Rule | string; export declare type ParseRule = RuleOrString[] | ((token: Token, stream: CharacterStream) => string | null | void); export declare type Token = { kind: string; value: string; }; export declare type Rule = { style?: string; match?: (token: Token) => boolean; update?: (state: State, token: Token) => void; separator?: string | Rule; isList?: boolean; ofRule?: Rule | string; }; export declare type State = { level: number; levels?: number[]; prevState: Maybe<State>; rule: Maybe<ParseRule>; kind: Maybe<RuleKind>; name: Maybe<string>; type: Maybe<string>; step: number; needsSeperator: boolean; needsAdvance?: boolean; indentLevel?: number; }; export declare const AdditionalRuleKinds: _AdditionalRuleKinds; export declare type _AdditionalRuleKinds = { ALIASED_FIELD: 'AliasedField'; ARGUMENTS: 'Arguments'; SHORT_QUERY: 'ShortQuery'; QUERY: 'Query'; MUTATION: 'Mutation'; SUBSCRIPTION: 'Subscription'; TYPE_CONDITION: 'TypeCondition'; INVALID: 'Invalid'; COMMENT: 'Comment'; SCHEMA_DEF: 'SchemaDef'; SCALAR_DEF: 'ScalarDef'; OBJECT_TYPE_DEF: 'ObjectTypeDef'; OBJECT_VALUE: 'ObjectValue'; LIST_VALUE: 'ListValue'; INTERFACE_DEF: 'InterfaceDef'; UNION_DEF: 'UnionDef'; ENUM_DEF: 'EnumDef'; ENUM_VALUE: 'EnumValue'; FIELD_DEF: 'FieldDef'; INPUT_DEF: 'InputDef'; INPUT_VALUE_DEF: 'InputValueDef'; ARGUMENTS_DEF: 'ArgumentsDef'; EXTEND_DEF: 'ExtendDef'; DIRECTIVE_DEF: 'DirectiveDef'; IMPLEMENTS: 'Implements'; VARIABLE_DEFINITIONS: 'VariableDefinitions'; TYPE: 'Type'; }; export declare const RuleKinds: { ALIASED_FIELD: 'AliasedField'; ARGUMENTS: 'Arguments'; SHORT_QUERY: 'ShortQuery'; QUERY: 'Query'; MUTATION: 'Mutation'; SUBSCRIPTION: 'Subscription'; TYPE_CONDITION: 'TypeCondition'; INVALID: 'Invalid'; COMMENT: 'Comment'; SCHEMA_DEF: 'SchemaDef'; SCALAR_DEF: 'ScalarDef'; OBJECT_TYPE_DEF: 'ObjectTypeDef'; OBJECT_VALUE: 'ObjectValue'; LIST_VALUE: 'ListValue'; INTERFACE_DEF: 'InterfaceDef'; UNION_DEF: 'UnionDef'; ENUM_DEF: 'EnumDef'; ENUM_VALUE: 'EnumValue'; FIELD_DEF: 'FieldDef'; INPUT_DEF: 'InputDef'; INPUT_VALUE_DEF: 'InputValueDef'; ARGUMENTS_DEF: 'ArgumentsDef'; EXTEND_DEF: 'ExtendDef'; DIRECTIVE_DEF: 'DirectiveDef'; IMPLEMENTS: 'Implements'; VARIABLE_DEFINITIONS: 'VariableDefinitions'; TYPE: 'Type'; NAME: "Name"; DOCUMENT: "Document"; OPERATION_DEFINITION: "OperationDefinition"; VARIABLE_DEFINITION: "VariableDefinition"; SELECTION_SET: "SelectionSet"; FIELD: "Field"; ARGUMENT: "Argument"; FRAGMENT_SPREAD: "FragmentSpread"; INLINE_FRAGMENT: "InlineFragment"; FRAGMENT_DEFINITION: "FragmentDefinition"; VARIABLE: "Variable"; INT: "IntValue"; FLOAT: "FloatValue"; STRING: "StringValue"; BOOLEAN: "BooleanValue"; NULL: "NullValue"; ENUM: "EnumValue"; LIST: "ListValue"; OBJECT: "ObjectValue"; OBJECT_FIELD: "ObjectField"; DIRECTIVE: "Directive"; NAMED_TYPE: "NamedType"; LIST_TYPE: "ListType"; NON_NULL_TYPE: "NonNullType"; SCHEMA_DEFINITION: "SchemaDefinition"; OPERATION_TYPE_DEFINITION: "OperationTypeDefinition"; SCALAR_TYPE_DEFINITION: "ScalarTypeDefinition"; OBJECT_TYPE_DEFINITION: "ObjectTypeDefinition"; FIELD_DEFINITION: "FieldDefinition"; INPUT_VALUE_DEFINITION: "InputValueDefinition"; INTERFACE_TYPE_DEFINITION: "InterfaceTypeDefinition"; UNION_TYPE_DEFINITION: "UnionTypeDefinition"; ENUM_TYPE_DEFINITION: "EnumTypeDefinition"; ENUM_VALUE_DEFINITION: "EnumValueDefinition"; INPUT_OBJECT_TYPE_DEFINITION: "InputObjectTypeDefinition"; DIRECTIVE_DEFINITION: "DirectiveDefinition"; SCHEMA_EXTENSION: "SchemaExtension"; SCALAR_TYPE_EXTENSION: "ScalarTypeExtension"; OBJECT_TYPE_EXTENSION: "ObjectTypeExtension"; INTERFACE_TYPE_EXTENSION: "InterfaceTypeExtension"; UNION_TYPE_EXTENSION: "UnionTypeExtension"; ENUM_TYPE_EXTENSION: "EnumTypeExtension"; INPUT_OBJECT_TYPE_EXTENSION: "InputObjectTypeExtension"; }; export declare type _RuleKinds = typeof Kind & typeof AdditionalRuleKinds; export declare type RuleKind = _RuleKinds[keyof _RuleKinds]; export declare type RuleKindEnum = RuleKind; export declare type TokenPattern = string | ((char: string) => boolean) | RegExp; export interface CharacterStreamInterface { getStartOfToken: () => number; getCurrentPosition: () => number; eol: () => boolean; sol: () => boolean; peek: () => string | null; next: () => string; eat: (pattern: TokenPattern) => string | undefined; eatWhile: (match: TokenPattern) => boolean; eatSpace: () => boolean; skipToEnd: () => void; skipTo: (position: number) => void; match: (pattern: TokenPattern, consume?: Maybe<boolean>, caseFold?: Maybe<boolean>) => string[] | boolean; backUp: (num: number) => void; column: () => number; indentation: () => number; current: () => string; } //# sourceMappingURL=types.d.ts.map