1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- // @flow strict
- import { Kind } from './kinds';
- import { type ASTNode } from './ast';
- 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
- );
- }
|