graphql
Version:
A Query Language and Runtime which can target any service.
205 lines (204 loc) • 7.51 kB
text/typescript
/** @category AST Predicates */
import type { ASTNode, ConstValueNode, DefinitionNode, ExecutableDefinitionNode, OperationDefinitionNode, SchemaCoordinateNode, SelectionNode, SubscriptionOperationDefinitionNode, TypeDefinitionNode, TypeExtensionNode, TypeNode, TypeSystemDefinitionNode, TypeSystemExtensionNode, ValueNode } from "./ast.mjs";
/**
* Returns true when the AST node is a definition node.
* @param node - The AST node to test.
* @returns True when the AST node is a definition node.
* @example
* ```ts
* import { parse, isDefinitionNode } from 'graphql/language';
*
* const document = parse('{ hello }');
*
* isDefinitionNode(document.definitions[0]); // => true
* isDefinitionNode(document); // => false
* ```
*/
export declare function isDefinitionNode(node: ASTNode): node is DefinitionNode;
/**
* Returns true when the AST node is an executable definition node.
* @param node - The AST node to test.
* @returns True when the AST node is an executable definition node.
* @example
* ```ts
* import { parse, isExecutableDefinitionNode } from 'graphql/language';
*
* const query = parse('{ hello }');
* const schema = parse('type Query { hello: String }');
*
* isExecutableDefinitionNode(query.definitions[0]); // => true
* isExecutableDefinitionNode(schema.definitions[0]); // => false
* ```
*/
export declare function isExecutableDefinitionNode(node: ASTNode): node is ExecutableDefinitionNode;
/**
* A type predicate for SubscriptionOperationDefinitionNode.
* Useful anywhere that must distinguish subscription operations from
* queries and mutations, such as the subscription execution pipeline
* which routes events through a different code path.
* @param node - Operation definition node to test.
* @returns True when the operation definition is a subscription.
* @example
* ```ts
* import { parse, isSubscriptionOperationDefinitionNode } from 'graphql/language';
*
* const subscription = parse('subscription { greeting }').definitions[0];
* const query = parse('{ greeting }').definitions[0];
*
* isSubscriptionOperationDefinitionNode(subscription); // => true
* isSubscriptionOperationDefinitionNode(query); // => false
* ```
*/
export declare function isSubscriptionOperationDefinitionNode(node: OperationDefinitionNode): node is SubscriptionOperationDefinitionNode;
/**
* Returns true when the AST node is a selection node.
* @param node - The AST node to test.
* @returns True when the AST node is a selection node.
* @example
* ```ts
* import { Kind, isSelectionNode } from 'graphql/language';
*
* const field = { kind: Kind.FIELD, name: { kind: Kind.NAME, value: 'hello' } };
* const document = { kind: Kind.DOCUMENT, definitions: [] };
*
* isSelectionNode(field); // => true
* isSelectionNode(document); // => false
* ```
*/
export declare function isSelectionNode(node: ASTNode): node is SelectionNode;
/**
* Returns true when the AST node is a value node.
* @param node - The AST node to test.
* @returns True when the AST node is a value node.
* @example
* ```ts
* import { parseType, parseValue, isValueNode } from 'graphql/language';
*
* const value = parseValue('[42]');
* const type = parseType('[String!]');
*
* isValueNode(value); // => true
* isValueNode(type); // => false
* ```
*/
export declare function isValueNode(node: ASTNode): node is ValueNode;
/**
* Returns true when the AST node is a constant value node.
* @param node - The AST node to test.
* @returns True when the AST node is a constant value node.
* @example
* ```ts
* import {
* parseConstValue,
* parseValue,
* isConstValueNode,
* } from 'graphql/language';
*
* const value = parseConstValue('[42]');
* const variable = parseValue('$id');
*
* isConstValueNode(value); // => true
* isConstValueNode(variable); // => false
* ```
*/
export declare function isConstValueNode(node: ASTNode): node is ConstValueNode;
/**
* Returns true when the AST node is a type node.
* @param node - The AST node to test.
* @returns True when the AST node is a type node.
* @example
* ```ts
* import { parseType, parseValue, isTypeNode } from 'graphql/language';
*
* const type = parseType('[String!]');
* const value = parseValue('[42]');
*
* isTypeNode(type); // => true
* isTypeNode(value); // => false
* ```
*/
export declare function isTypeNode(node: ASTNode): node is TypeNode;
/**
* Returns true when the AST node is a type system definition node.
* @param node - The AST node to test.
* @returns True when the AST node is a type system definition node.
* @example
* ```ts
* import { parse, isTypeSystemDefinitionNode } from 'graphql/language';
*
* const schema = parse('type Query { hello: String }');
* const query = parse('{ hello }');
*
* isTypeSystemDefinitionNode(schema.definitions[0]); // => true
* isTypeSystemDefinitionNode(query.definitions[0]); // => false
* ```
*/
export declare function isTypeSystemDefinitionNode(node: ASTNode): node is TypeSystemDefinitionNode;
/**
* Returns true when the AST node is a type definition node.
* @param node - The AST node to test.
* @returns True when the AST node is a type definition node.
* @example
* ```ts
* import { parse, isTypeDefinitionNode } from 'graphql/language';
*
* const typeDefinition = parse('type Query { hello: String }');
* const directiveDefinition = parse('directive @cache on FIELD');
*
* isTypeDefinitionNode(typeDefinition.definitions[0]); // => true
* isTypeDefinitionNode(directiveDefinition.definitions[0]); // => false
* ```
*/
export declare function isTypeDefinitionNode(node: ASTNode): node is TypeDefinitionNode;
/**
* Returns true when the AST node is a type system extension node.
* @param node - The AST node to test.
* @returns True when the AST node is a type system extension node.
* @example
* ```ts
* import { parse, isTypeSystemExtensionNode } from 'graphql/language';
*
* const extension = parse('extend type Query { hello: String }');
* const definition = parse('type Query { hello: String }');
*
* isTypeSystemExtensionNode(extension.definitions[0]); // => true
* isTypeSystemExtensionNode(definition.definitions[0]); // => false
* ```
*/
export declare function isTypeSystemExtensionNode(node: ASTNode): node is TypeSystemExtensionNode;
/**
* Returns true when the AST node is a type extension node.
* @param node - The AST node to test.
* @returns True when the AST node is a type extension node.
* @example
* ```ts
* import { parse, isTypeExtensionNode } from 'graphql/language';
*
* const extension = parse('extend type Query { hello: String }');
* const schemaExtension = parse('extend schema { query: Query }');
*
* isTypeExtensionNode(extension.definitions[0]); // => true
* isTypeExtensionNode(schemaExtension.definitions[0]); // => false
* ```
*/
export declare function isTypeExtensionNode(node: ASTNode): node is TypeExtensionNode;
/**
* Returns true when the AST node is a schema coordinate node.
* @param node - The AST node to test.
* @returns True when the AST node is a schema coordinate node.
* @example
* ```ts
* import {
* parse,
* parseSchemaCoordinate,
* isSchemaCoordinateNode,
* } from 'graphql/language';
*
* const coordinate = parseSchemaCoordinate('Query.hero');
* const document = parse('{ hero }');
*
* isSchemaCoordinateNode(coordinate); // => true
* isSchemaCoordinateNode(document); // => false
* ```
*/
export declare function isSchemaCoordinateNode(node: ASTNode): node is SchemaCoordinateNode;