12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // @flow strict
- import type { ASTNode } from './ast';
- import { Kind } from './kinds';
- export function isDefinitionNode(node: ASTNode): boolean %checks {
- return (
- isExecutableDefinitionNode(node) ||
- isTypeSystemDefinitionNode(node) ||
- isTypeSystemExtensionNode(node)
- );
- }
- export function isExecutableDefinitionNode(node: ASTNode): boolean %checks {
- return (
- node.kind === Kind.OPERATION_DEFINITION ||
- node.kind === Kind.FRAGMENT_DEFINITION
- );
- }
- export function isSelectionNode(node: ASTNode): boolean %checks {
- return (
- node.kind === Kind.FIELD ||
- node.kind === Kind.FRAGMENT_SPREAD ||
- node.kind === Kind.INLINE_FRAGMENT
- );
- }
- export function isValueNode(node: ASTNode): boolean %checks {
- return (
- node.kind === Kind.VARIABLE ||
- node.kind === Kind.INT ||
- node.kind === Kind.FLOAT ||
- node.kind === Kind.STRING ||
- node.kind === Kind.BOOLEAN ||
- node.kind === Kind.NULL ||
- node.kind === Kind.ENUM ||
- node.kind === Kind.LIST ||
- node.kind === Kind.OBJECT
- );
- }
- export function isTypeNode(node: ASTNode): boolean %checks {
- return (
- node.kind === Kind.NAMED_TYPE ||
- node.kind === Kind.LIST_TYPE ||
- node.kind === Kind.NON_NULL_TYPE
- );
- }
- export function isTypeSystemDefinitionNode(node: ASTNode): boolean %checks {
- return (
- node.kind === Kind.SCHEMA_DEFINITION ||
- isTypeDefinitionNode(node) ||
- node.kind === Kind.DIRECTIVE_DEFINITION
- );
- }
- export function isTypeDefinitionNode(node: ASTNode): boolean %checks {
- return (
- node.kind === Kind.SCALAR_TYPE_DEFINITION ||
- node.kind === Kind.OBJECT_TYPE_DEFINITION ||
- node.kind === Kind.INTERFACE_TYPE_DEFINITION ||
- node.kind === Kind.UNION_TYPE_DEFINITION ||
- node.kind === Kind.ENUM_TYPE_DEFINITION ||
- node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION
- );
- }
- export function isTypeSystemExtensionNode(node: ASTNode): boolean %checks {
- return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);
- }
- export function isTypeExtensionNode(node: ASTNode): boolean %checks {
- return (
- node.kind === Kind.SCALAR_TYPE_EXTENSION ||
- node.kind === Kind.OBJECT_TYPE_EXTENSION ||
- node.kind === Kind.INTERFACE_TYPE_EXTENSION ||
- node.kind === Kind.UNION_TYPE_EXTENSION ||
- node.kind === Kind.ENUM_TYPE_EXTENSION ||
- node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION
- );
- }
|