graphql-language-service-parser
Version:
An online parser for GraphQL for use in syntax-highlighters and code intelligence tools
170 lines • 5.7 kB
TypeScript
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