predicates.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', {
  3. value: true,
  4. });
  5. exports.isConstValueNode = isConstValueNode;
  6. exports.isDefinitionNode = isDefinitionNode;
  7. exports.isExecutableDefinitionNode = isExecutableDefinitionNode;
  8. exports.isSelectionNode = isSelectionNode;
  9. exports.isTypeDefinitionNode = isTypeDefinitionNode;
  10. exports.isTypeExtensionNode = isTypeExtensionNode;
  11. exports.isTypeNode = isTypeNode;
  12. exports.isTypeSystemDefinitionNode = isTypeSystemDefinitionNode;
  13. exports.isTypeSystemExtensionNode = isTypeSystemExtensionNode;
  14. exports.isValueNode = isValueNode;
  15. var _kinds = require('./kinds.js');
  16. function isDefinitionNode(node) {
  17. return (
  18. isExecutableDefinitionNode(node) ||
  19. isTypeSystemDefinitionNode(node) ||
  20. isTypeSystemExtensionNode(node)
  21. );
  22. }
  23. function isExecutableDefinitionNode(node) {
  24. return (
  25. node.kind === _kinds.Kind.OPERATION_DEFINITION ||
  26. node.kind === _kinds.Kind.FRAGMENT_DEFINITION
  27. );
  28. }
  29. function isSelectionNode(node) {
  30. return (
  31. node.kind === _kinds.Kind.FIELD ||
  32. node.kind === _kinds.Kind.FRAGMENT_SPREAD ||
  33. node.kind === _kinds.Kind.INLINE_FRAGMENT
  34. );
  35. }
  36. function isValueNode(node) {
  37. return (
  38. node.kind === _kinds.Kind.VARIABLE ||
  39. node.kind === _kinds.Kind.INT ||
  40. node.kind === _kinds.Kind.FLOAT ||
  41. node.kind === _kinds.Kind.STRING ||
  42. node.kind === _kinds.Kind.BOOLEAN ||
  43. node.kind === _kinds.Kind.NULL ||
  44. node.kind === _kinds.Kind.ENUM ||
  45. node.kind === _kinds.Kind.LIST ||
  46. node.kind === _kinds.Kind.OBJECT
  47. );
  48. }
  49. function isConstValueNode(node) {
  50. return (
  51. isValueNode(node) &&
  52. (node.kind === _kinds.Kind.LIST
  53. ? node.values.some(isConstValueNode)
  54. : node.kind === _kinds.Kind.OBJECT
  55. ? node.fields.some((field) => isConstValueNode(field.value))
  56. : node.kind !== _kinds.Kind.VARIABLE)
  57. );
  58. }
  59. function isTypeNode(node) {
  60. return (
  61. node.kind === _kinds.Kind.NAMED_TYPE ||
  62. node.kind === _kinds.Kind.LIST_TYPE ||
  63. node.kind === _kinds.Kind.NON_NULL_TYPE
  64. );
  65. }
  66. function isTypeSystemDefinitionNode(node) {
  67. return (
  68. node.kind === _kinds.Kind.SCHEMA_DEFINITION ||
  69. isTypeDefinitionNode(node) ||
  70. node.kind === _kinds.Kind.DIRECTIVE_DEFINITION
  71. );
  72. }
  73. function isTypeDefinitionNode(node) {
  74. return (
  75. node.kind === _kinds.Kind.SCALAR_TYPE_DEFINITION ||
  76. node.kind === _kinds.Kind.OBJECT_TYPE_DEFINITION ||
  77. node.kind === _kinds.Kind.INTERFACE_TYPE_DEFINITION ||
  78. node.kind === _kinds.Kind.UNION_TYPE_DEFINITION ||
  79. node.kind === _kinds.Kind.ENUM_TYPE_DEFINITION ||
  80. node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION
  81. );
  82. }
  83. function isTypeSystemExtensionNode(node) {
  84. return (
  85. node.kind === _kinds.Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node)
  86. );
  87. }
  88. function isTypeExtensionNode(node) {
  89. return (
  90. node.kind === _kinds.Kind.SCALAR_TYPE_EXTENSION ||
  91. node.kind === _kinds.Kind.OBJECT_TYPE_EXTENSION ||
  92. node.kind === _kinds.Kind.INTERFACE_TYPE_EXTENSION ||
  93. node.kind === _kinds.Kind.UNION_TYPE_EXTENSION ||
  94. node.kind === _kinds.Kind.ENUM_TYPE_EXTENSION ||
  95. node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION
  96. );
  97. }