Initial commit
This commit is contained in:
commit
f47e08fdcb
2409 files changed
+363607
No files matched your search
+90
@@ -0,0 +1,90 @@
|
||||
/**
|
||||
* Copyright (c) 2018-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @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
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user