graphql 16.13.2 → 16.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/error/GraphQLError.d.ts +151 -15
  2. package/error/GraphQLError.js +143 -12
  3. package/error/GraphQLError.mjs +143 -12
  4. package/error/index.d.ts +6 -0
  5. package/error/index.mjs +6 -0
  6. package/error/locatedError.d.ts +20 -0
  7. package/error/locatedError.js +21 -0
  8. package/error/locatedError.mjs +20 -0
  9. package/error/syntaxError.d.ts +15 -0
  10. package/error/syntaxError.js +16 -0
  11. package/error/syntaxError.mjs +15 -0
  12. package/execution/collectFields.js +6 -0
  13. package/execution/collectFields.mjs +6 -0
  14. package/execution/execute.d.ts +211 -12
  15. package/execution/execute.js +214 -23
  16. package/execution/execute.mjs +213 -23
  17. package/execution/index.d.ts +6 -0
  18. package/execution/index.mjs +6 -0
  19. package/execution/mapAsyncIterator.d.ts +2 -0
  20. package/execution/mapAsyncIterator.js +2 -0
  21. package/execution/mapAsyncIterator.mjs +2 -0
  22. package/execution/subscribe.d.ts +195 -5
  23. package/execution/subscribe.js +154 -11
  24. package/execution/subscribe.mjs +153 -11
  25. package/execution/values.d.ts +167 -10
  26. package/execution/values.js +149 -5
  27. package/execution/values.mjs +148 -5
  28. package/graphql.d.ts +163 -41
  29. package/graphql.js +126 -4
  30. package/graphql.mjs +131 -41
  31. package/index.d.ts +12 -17
  32. package/index.mjs +13 -19
  33. package/jsutils/Maybe.d.ts +5 -1
  34. package/jsutils/ObjMap.d.ts +4 -0
  35. package/jsutils/Path.d.ts +30 -0
  36. package/jsutils/Path.js +29 -0
  37. package/jsutils/Path.mjs +29 -0
  38. package/jsutils/PromiseOrValue.d.ts +1 -0
  39. package/jsutils/devAssert.d.ts +1 -0
  40. package/jsutils/devAssert.js +1 -0
  41. package/jsutils/devAssert.mjs +1 -0
  42. package/jsutils/didYouMean.d.ts +4 -1
  43. package/jsutils/didYouMean.js +4 -1
  44. package/jsutils/didYouMean.mjs +4 -1
  45. package/jsutils/groupBy.d.ts +2 -0
  46. package/jsutils/groupBy.js +2 -0
  47. package/jsutils/groupBy.mjs +2 -0
  48. package/jsutils/identityFunc.d.ts +2 -0
  49. package/jsutils/identityFunc.js +2 -0
  50. package/jsutils/identityFunc.mjs +2 -0
  51. package/jsutils/inspect.d.ts +2 -0
  52. package/jsutils/inspect.js +2 -0
  53. package/jsutils/inspect.mjs +2 -0
  54. package/jsutils/instanceOf.d.ts +2 -0
  55. package/jsutils/instanceOf.js +2 -0
  56. package/jsutils/instanceOf.mjs +2 -0
  57. package/jsutils/invariant.d.ts +1 -0
  58. package/jsutils/invariant.js +1 -0
  59. package/jsutils/invariant.mjs +1 -0
  60. package/jsutils/isAsyncIterable.d.ts +2 -0
  61. package/jsutils/isAsyncIterable.js +2 -0
  62. package/jsutils/isAsyncIterable.mjs +2 -0
  63. package/jsutils/isIterableObject.d.ts +6 -5
  64. package/jsutils/isIterableObject.js +6 -5
  65. package/jsutils/isIterableObject.mjs +6 -5
  66. package/jsutils/isObjectLike.d.ts +2 -0
  67. package/jsutils/isObjectLike.js +2 -0
  68. package/jsutils/isObjectLike.mjs +2 -0
  69. package/jsutils/isPromise.d.ts +2 -0
  70. package/jsutils/isPromise.js +2 -0
  71. package/jsutils/isPromise.mjs +2 -0
  72. package/jsutils/keyMap.d.ts +7 -14
  73. package/jsutils/keyMap.js +7 -14
  74. package/jsutils/keyMap.mjs +7 -14
  75. package/jsutils/keyValMap.d.ts +9 -6
  76. package/jsutils/keyValMap.js +9 -6
  77. package/jsutils/keyValMap.mjs +9 -6
  78. package/jsutils/mapValue.d.ts +2 -0
  79. package/jsutils/mapValue.js +2 -0
  80. package/jsutils/mapValue.mjs +2 -0
  81. package/jsutils/memoize3.d.ts +2 -0
  82. package/jsutils/memoize3.js +2 -0
  83. package/jsutils/memoize3.mjs +2 -0
  84. package/jsutils/naturalCompare.d.ts +2 -0
  85. package/jsutils/naturalCompare.js +2 -0
  86. package/jsutils/naturalCompare.mjs +2 -0
  87. package/jsutils/printPathArray.d.ts +2 -0
  88. package/jsutils/printPathArray.js +2 -0
  89. package/jsutils/printPathArray.mjs +2 -0
  90. package/jsutils/promiseForObject.d.ts +2 -0
  91. package/jsutils/promiseForObject.js +2 -0
  92. package/jsutils/promiseForObject.mjs +2 -0
  93. package/jsutils/promiseReduce.d.ts +2 -0
  94. package/jsutils/promiseReduce.js +2 -0
  95. package/jsutils/promiseReduce.mjs +2 -0
  96. package/jsutils/suggestionList.d.ts +2 -0
  97. package/jsutils/suggestionList.js +4 -0
  98. package/jsutils/suggestionList.mjs +4 -0
  99. package/jsutils/toError.d.ts +2 -0
  100. package/jsutils/toError.js +2 -0
  101. package/jsutils/toError.mjs +2 -0
  102. package/jsutils/toObjMap.d.ts +1 -0
  103. package/jsutils/toObjMap.js +1 -0
  104. package/jsutils/toObjMap.mjs +1 -0
  105. package/language/ast.d.ts +422 -55
  106. package/language/ast.js +103 -39
  107. package/language/ast.mjs +103 -39
  108. package/language/blockString.d.ts +1 -3
  109. package/language/blockString.js +1 -3
  110. package/language/blockString.mjs +1 -3
  111. package/language/directiveLocation.d.ts +29 -8
  112. package/language/directiveLocation.js +10 -6
  113. package/language/directiveLocation.mjs +10 -6
  114. package/language/index.d.ts +7 -0
  115. package/language/index.mjs +6 -0
  116. package/language/kinds.d.ts +58 -18
  117. package/language/kinds.js +10 -6
  118. package/language/kinds.mjs +10 -6
  119. package/language/lexer.d.ts +47 -14
  120. package/language/lexer.js +71 -13
  121. package/language/lexer.mjs +70 -13
  122. package/language/location.d.ts +16 -3
  123. package/language/location.js +14 -3
  124. package/language/location.mjs +14 -3
  125. package/language/parser.d.ts +248 -11
  126. package/language/parser.js +257 -0
  127. package/language/parser.mjs +257 -3
  128. package/language/predicates.d.ts +169 -0
  129. package/language/predicates.js +173 -1
  130. package/language/predicates.mjs +185 -1
  131. package/language/printLocation.d.ts +28 -0
  132. package/language/printLocation.js +29 -0
  133. package/language/printLocation.mjs +28 -0
  134. package/language/printString.d.ts +2 -0
  135. package/language/printString.js +5 -1
  136. package/language/printString.mjs +5 -1
  137. package/language/printer.d.ts +12 -0
  138. package/language/printer.js +32 -1
  139. package/language/printer.mjs +31 -1
  140. package/language/schemaCoordinateLexer.d.ts +8 -6
  141. package/language/schemaCoordinateLexer.js +10 -6
  142. package/language/schemaCoordinateLexer.mjs +10 -6
  143. package/language/source.d.ts +28 -0
  144. package/language/source.js +32 -0
  145. package/language/source.mjs +31 -0
  146. package/language/tokenKind.d.ts +30 -3
  147. package/language/tokenKind.js +8 -3
  148. package/language/tokenKind.mjs +8 -3
  149. package/language/visitor.d.ts +200 -72
  150. package/language/visitor.js +122 -50
  151. package/language/visitor.mjs +122 -54
  152. package/package.json +1 -1
  153. package/subscription/index.d.ts +9 -3
  154. package/subscription/index.mjs +9 -3
  155. package/type/assertName.d.ts +18 -1
  156. package/type/assertName.js +19 -1
  157. package/type/assertName.mjs +18 -1
  158. package/type/definition.d.ts +2540 -79
  159. package/type/definition.js +2214 -61
  160. package/type/definition.mjs +2241 -60
  161. package/type/directives.d.ts +202 -19
  162. package/type/directives.js +206 -20
  163. package/type/directives.mjs +206 -20
  164. package/type/index.d.ts +6 -0
  165. package/type/index.mjs +6 -0
  166. package/type/introspection.d.ts +36 -0
  167. package/type/introspection.js +57 -1
  168. package/type/introspection.mjs +65 -1
  169. package/type/scalars.d.ts +29 -2
  170. package/type/scalars.js +37 -2
  171. package/type/scalars.mjs +36 -2
  172. package/type/schema.d.ts +490 -28
  173. package/type/schema.js +484 -26
  174. package/type/schema.mjs +484 -26
  175. package/type/validate.d.ts +31 -0
  176. package/type/validate.js +32 -0
  177. package/type/validate.mjs +31 -0
  178. package/utilities/TypeInfo.d.ts +441 -1
  179. package/utilities/TypeInfo.js +444 -1
  180. package/utilities/TypeInfo.mjs +443 -1
  181. package/utilities/assertValidName.d.ts +27 -2
  182. package/utilities/assertValidName.js +28 -2
  183. package/utilities/assertValidName.mjs +27 -2
  184. package/utilities/astFromValue.d.ts +33 -3
  185. package/utilities/astFromValue.js +36 -3
  186. package/utilities/astFromValue.mjs +35 -3
  187. package/utilities/buildASTSchema.d.ts +65 -6
  188. package/utilities/buildASTSchema.js +69 -6
  189. package/utilities/buildASTSchema.mjs +69 -6
  190. package/utilities/buildClientSchema.d.ts +15 -0
  191. package/utilities/buildClientSchema.js +17 -0
  192. package/utilities/buildClientSchema.mjs +16 -0
  193. package/utilities/coerceInputValue.d.ts +46 -0
  194. package/utilities/coerceInputValue.js +47 -0
  195. package/utilities/coerceInputValue.mjs +46 -0
  196. package/utilities/concatAST.d.ts +12 -0
  197. package/utilities/concatAST.js +13 -0
  198. package/utilities/concatAST.mjs +12 -0
  199. package/utilities/extendSchema.d.ts +56 -3
  200. package/utilities/extendSchema.js +121 -6
  201. package/utilities/extendSchema.mjs +120 -6
  202. package/utilities/findBreakingChanges.d.ts +95 -0
  203. package/utilities/findBreakingChanges.js +68 -0
  204. package/utilities/findBreakingChanges.mjs +70 -0
  205. package/utilities/getIntrospectionQuery.d.ts +148 -0
  206. package/utilities/getIntrospectionQuery.js +72 -38
  207. package/utilities/getIntrospectionQuery.mjs +72 -38
  208. package/utilities/getOperationAST.d.ts +15 -0
  209. package/utilities/getOperationAST.js +16 -0
  210. package/utilities/getOperationAST.mjs +15 -0
  211. package/utilities/getOperationRootType.d.ts +18 -1
  212. package/utilities/getOperationRootType.js +19 -1
  213. package/utilities/getOperationRootType.mjs +18 -1
  214. package/utilities/index.d.ts +7 -0
  215. package/utilities/index.mjs +7 -0
  216. package/utilities/introspectionFromSchema.d.ts +54 -0
  217. package/utilities/introspectionFromSchema.js +56 -0
  218. package/utilities/introspectionFromSchema.mjs +55 -0
  219. package/utilities/lexicographicSortSchema.d.ts +35 -0
  220. package/utilities/lexicographicSortSchema.js +36 -0
  221. package/utilities/lexicographicSortSchema.mjs +35 -0
  222. package/utilities/printSchema.d.ts +63 -0
  223. package/utilities/printSchema.js +67 -0
  224. package/utilities/printSchema.mjs +68 -0
  225. package/utilities/resolveSchemaCoordinate.d.ts +62 -0
  226. package/utilities/resolveSchemaCoordinate.js +64 -0
  227. package/utilities/resolveSchemaCoordinate.mjs +63 -0
  228. package/utilities/separateOperations.d.ts +30 -0
  229. package/utilities/separateOperations.js +31 -0
  230. package/utilities/separateOperations.mjs +30 -0
  231. package/utilities/stripIgnoredCharacters.d.ts +13 -6
  232. package/utilities/stripIgnoredCharacters.js +16 -6
  233. package/utilities/stripIgnoredCharacters.mjs +15 -6
  234. package/utilities/typeComparators.d.ts +84 -0
  235. package/utilities/typeComparators.js +85 -0
  236. package/utilities/typeComparators.mjs +84 -0
  237. package/utilities/typeFromAST.d.ts +86 -0
  238. package/utilities/typeFromAST.js +3 -0
  239. package/utilities/typeFromAST.mjs +3 -0
  240. package/utilities/typedQueryDocumentNode.d.ts +4 -0
  241. package/utilities/valueFromAST.d.ts +38 -0
  242. package/utilities/valueFromAST.js +51 -2
  243. package/utilities/valueFromAST.mjs +50 -2
  244. package/utilities/valueFromASTUntyped.d.ts +15 -2
  245. package/utilities/valueFromASTUntyped.js +16 -2
  246. package/utilities/valueFromASTUntyped.mjs +15 -2
  247. package/validation/ValidationContext.d.ts +399 -0
  248. package/validation/ValidationContext.js +400 -0
  249. package/validation/ValidationContext.mjs +401 -0
  250. package/validation/index.d.ts +6 -0
  251. package/validation/index.mjs +6 -0
  252. package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
  253. package/validation/rules/ExecutableDefinitionsRule.js +29 -0
  254. package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
  255. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
  256. package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
  257. package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
  258. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
  259. package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
  260. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
  261. package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
  262. package/validation/rules/KnownArgumentNamesRule.js +30 -3
  263. package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
  264. package/validation/rules/KnownDirectivesRule.d.ts +28 -0
  265. package/validation/rules/KnownDirectivesRule.js +33 -0
  266. package/validation/rules/KnownDirectivesRule.mjs +32 -0
  267. package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
  268. package/validation/rules/KnownFragmentNamesRule.js +29 -0
  269. package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
  270. package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
  271. package/validation/rules/KnownTypeNamesRule.js +29 -0
  272. package/validation/rules/KnownTypeNamesRule.mjs +28 -0
  273. package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
  274. package/validation/rules/LoneAnonymousOperationRule.js +29 -0
  275. package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
  276. package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
  277. package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
  278. package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
  279. package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
  280. package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
  281. package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
  282. package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
  283. package/validation/rules/NoFragmentCyclesRule.js +29 -0
  284. package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
  285. package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
  286. package/validation/rules/NoUndefinedVariablesRule.js +29 -0
  287. package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
  288. package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
  289. package/validation/rules/NoUnusedFragmentsRule.js +29 -0
  290. package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
  291. package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
  292. package/validation/rules/NoUnusedVariablesRule.js +30 -0
  293. package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
  294. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
  295. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
  296. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
  297. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
  298. package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
  299. package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
  300. package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
  301. package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
  302. package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
  303. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
  304. package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
  305. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
  306. package/validation/rules/ScalarLeafsRule.d.ts +28 -0
  307. package/validation/rules/ScalarLeafsRule.js +29 -0
  308. package/validation/rules/ScalarLeafsRule.mjs +28 -0
  309. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
  310. package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
  311. package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
  312. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
  313. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
  314. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
  315. package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
  316. package/validation/rules/UniqueArgumentNamesRule.js +29 -0
  317. package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
  318. package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
  319. package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
  320. package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
  321. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
  322. package/validation/rules/UniqueDirectivesPerLocationRule.js +41 -0
  323. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +40 -0
  324. package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
  325. package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
  326. package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
  327. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
  328. package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
  329. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
  330. package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
  331. package/validation/rules/UniqueFragmentNamesRule.js +29 -0
  332. package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
  333. package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
  334. package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
  335. package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
  336. package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
  337. package/validation/rules/UniqueOperationNamesRule.js +29 -0
  338. package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
  339. package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
  340. package/validation/rules/UniqueOperationTypesRule.js +22 -0
  341. package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
  342. package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
  343. package/validation/rules/UniqueTypeNamesRule.js +22 -0
  344. package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
  345. package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
  346. package/validation/rules/UniqueVariableNamesRule.js +29 -0
  347. package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
  348. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
  349. package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
  350. package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
  351. package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
  352. package/validation/rules/VariablesAreInputTypesRule.js +33 -0
  353. package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
  354. package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
  355. package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
  356. package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
  357. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
  358. package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
  359. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
  360. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
  361. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
  362. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
  363. package/validation/specifiedRules.d.ts +2 -3
  364. package/validation/specifiedRules.js +2 -3
  365. package/validation/specifiedRules.mjs +2 -3
  366. package/validation/validate.d.ts +70 -9
  367. package/validation/validate.js +63 -7
  368. package/validation/validate.mjs +63 -7
  369. package/version.d.ts +3 -6
  370. package/version.js +7 -9
  371. package/version.mjs +6 -9
@@ -1,5 +1,9 @@
1
+ /** @category Directives */
1
2
  import type { Maybe } from '../jsutils/Maybe';
2
- import type { DirectiveDefinitionNode } from '../language/ast';
3
+ import type {
4
+ DirectiveDefinitionNode,
5
+ DirectiveExtensionNode,
6
+ } from '../language/ast';
3
7
  import { DirectiveLocation } from '../language/directiveLocation';
4
8
  import type {
5
9
  GraphQLArgument,
@@ -7,14 +11,46 @@ import type {
7
11
  } from './definition';
8
12
  /**
9
13
  * Test if the given value is a GraphQL directive.
14
+ * @param directive - Value to inspect.
15
+ * @returns True when the value is a GraphQLDirective.
16
+ * @example
17
+ * ```ts
18
+ * import { DirectiveLocation } from 'graphql/language';
19
+ * import { GraphQLDirective, GraphQLString, isDirective } from 'graphql/type';
20
+ *
21
+ * const upper = new GraphQLDirective({
22
+ * name: 'upper',
23
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
24
+ * });
25
+ *
26
+ * isDirective(upper); // => true
27
+ * isDirective(GraphQLString); // => false
28
+ * ```
10
29
  */
11
30
  export declare function isDirective(
12
31
  directive: unknown,
13
32
  ): directive is GraphQLDirective;
33
+ /**
34
+ * Returns the value as a GraphQLDirective, or throws if it is not a directive.
35
+ * @param directive - Value to inspect.
36
+ * @returns The value typed as a GraphQLDirective.
37
+ * @example
38
+ * ```ts
39
+ * import { DirectiveLocation } from 'graphql/language';
40
+ * import { assertDirective, GraphQLDirective, GraphQLString } from 'graphql/type';
41
+ *
42
+ * const upper = new GraphQLDirective({
43
+ * name: 'upper',
44
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
45
+ * });
46
+ *
47
+ * assertDirective(upper); // => upper
48
+ * assertDirective(GraphQLString); // throws an error
49
+ * ```
50
+ */
14
51
  export declare function assertDirective(directive: unknown): GraphQLDirective;
15
52
  /**
16
53
  * Custom extensions
17
- *
18
54
  * @remarks
19
55
  * Use a unique identifier name for your extension, for example the name of
20
56
  * your library or project. Do not use a shortened identifier as this increases
@@ -29,61 +65,208 @@ export interface GraphQLDirectiveExtensions {
29
65
  * behavior. Type system creators will usually not create these directly.
30
66
  */
31
67
  export declare class GraphQLDirective {
68
+ /** The GraphQL name for this schema element. */
32
69
  name: string;
70
+ /** Human-readable description for this schema element, if provided. */
33
71
  description: Maybe<string>;
72
+ /** Locations where this directive may be applied. */
34
73
  locations: ReadonlyArray<DirectiveLocation>;
74
+ /** Arguments accepted by this field or directive. */
35
75
  args: ReadonlyArray<GraphQLArgument>;
76
+ /** Whether this directive may appear more than once at the same location. */
36
77
  isRepeatable: boolean;
78
+ /** Reason this element is deprecated, if one was provided. */
79
+ deprecationReason: Maybe<string>;
80
+ /** Extension fields to include in the formatted result. */
37
81
  extensions: Readonly<GraphQLDirectiveExtensions>;
82
+ /** AST node from which this schema element was built, if available. */
38
83
  astNode: Maybe<DirectiveDefinitionNode>;
84
+ /** AST extension nodes applied to this schema element. */
85
+ extensionASTNodes: ReadonlyArray<DirectiveExtensionNode>;
86
+ /**
87
+ * Creates a GraphQLDirective instance.
88
+ * @param config - Configuration describing this object.
89
+ * @example
90
+ * ```ts
91
+ * import { DirectiveLocation, parse } from 'graphql/language';
92
+ * import {
93
+ * GraphQLBoolean,
94
+ * GraphQLDirective,
95
+ * GraphQLInt,
96
+ * GraphQLNonNull,
97
+ * } from 'graphql/type';
98
+ *
99
+ * const document = parse(`
100
+ * directive @cacheControl(maxAge: Int) repeatable on FIELD_DEFINITION
101
+ * extend directive @cacheControl(maxAge: Int) on FIELD_DEFINITION
102
+ * `);
103
+ * const definition = document.definitions[0];
104
+ *
105
+ * const cacheControl = new GraphQLDirective({
106
+ * name: 'cacheControl',
107
+ * description: 'Controls HTTP cache hints for a field.',
108
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
109
+ * args: {
110
+ * inheritMaxAge: {
111
+ * description: 'Inherit the parent cache hint.',
112
+ * type: new GraphQLNonNull(GraphQLBoolean),
113
+ * defaultValue: false,
114
+ * deprecationReason: 'Use maxAge instead.',
115
+ * extensions: { scope: 'cache' },
116
+ * },
117
+ * maxAge: {
118
+ * type: GraphQLInt,
119
+ * astNode: definition.arguments[0],
120
+ * },
121
+ * },
122
+ * isRepeatable: true,
123
+ * deprecationReason: 'Use @cache instead.',
124
+ * extensions: { scope: 'cache' },
125
+ * astNode: definition,
126
+ * extensionASTNodes: [ document.definitions[1] ],
127
+ * });
128
+ *
129
+ * cacheControl.name; // => 'cacheControl'
130
+ * cacheControl.description; // => 'Controls HTTP cache hints for a field.'
131
+ * cacheControl.args[0].name; // => 'inheritMaxAge'
132
+ * cacheControl.args[0].defaultValue; // => false
133
+ * cacheControl.isRepeatable; // => true
134
+ * cacheControl.extensions; // => { scope: 'cache' }
135
+ * ```
136
+ */
39
137
  constructor(config: Readonly<GraphQLDirectiveConfig>);
138
+ /**
139
+ * Returns the value used by `Object.prototype.toString`.
140
+ * @returns The built-in string tag for this object.
141
+ */
40
142
  get [Symbol.toStringTag](): string;
143
+ /**
144
+ * Returns a normalized configuration object for this object.
145
+ * @returns A configuration object that can be used to recreate this object.
146
+ * @example
147
+ * ```ts
148
+ * import { DirectiveLocation } from 'graphql/language';
149
+ * import { GraphQLDirective, GraphQLString } from 'graphql/type';
150
+ *
151
+ * const tag = new GraphQLDirective({
152
+ * name: 'tag',
153
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
154
+ * args: {
155
+ * name: { type: GraphQLString },
156
+ * },
157
+ * });
158
+ *
159
+ * const config = tag.toConfig();
160
+ * const tagCopy = new GraphQLDirective(config);
161
+ *
162
+ * config.args.name.type; // => GraphQLString
163
+ * tagCopy.args[0].name; // => 'name'
164
+ * ```
165
+ */
41
166
  toConfig(): GraphQLDirectiveNormalizedConfig;
167
+ /**
168
+ * Returns the schema coordinate identifying this directive.
169
+ * @returns The directive schema coordinate.
170
+ * @example
171
+ * ```ts
172
+ * import { DirectiveLocation } from 'graphql/language';
173
+ * import { GraphQLDirective } from 'graphql/type';
174
+ *
175
+ * const tag = new GraphQLDirective({
176
+ * name: 'tag',
177
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
178
+ * });
179
+ *
180
+ * tag.toString(); // => '@tag'
181
+ * ```
182
+ */
42
183
  toString(): string;
184
+ /**
185
+ * Returns the JSON representation used when this object is serialized.
186
+ * @returns The JSON-serializable representation.
187
+ * @example
188
+ * ```ts
189
+ * import { DirectiveLocation } from 'graphql/language';
190
+ * import { GraphQLDirective } from 'graphql/type';
191
+ *
192
+ * const tag = new GraphQLDirective({
193
+ * name: 'tag',
194
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
195
+ * });
196
+ *
197
+ * tag.toJSON(); // => '@tag'
198
+ * JSON.stringify({ directive: tag }); // => '{"directive":"@tag"}'
199
+ * ```
200
+ */
43
201
  toJSON(): string;
44
202
  }
203
+ /** Configuration used to construct a GraphQLDirective. */
45
204
  export interface GraphQLDirectiveConfig {
205
+ /** The GraphQL name for this schema element. */
46
206
  name: string;
207
+ /** Human-readable description for this schema element, if provided. */
47
208
  description?: Maybe<string>;
209
+ /** Locations where this directive may be applied. */
48
210
  locations: ReadonlyArray<DirectiveLocation>;
211
+ /** Arguments accepted by this field or directive. */
49
212
  args?: Maybe<GraphQLFieldConfigArgumentMap>;
213
+ /** Whether this directive may appear more than once at the same location. */
50
214
  isRepeatable?: Maybe<boolean>;
215
+ /** Reason this element is deprecated, if one was provided. */
216
+ deprecationReason?: Maybe<string>;
217
+ /** Extension fields to include in the formatted result. */
51
218
  extensions?: Maybe<Readonly<GraphQLDirectiveExtensions>>;
219
+ /** AST node from which this schema element was built, if available. */
52
220
  astNode?: Maybe<DirectiveDefinitionNode>;
221
+ /** AST extension nodes applied to this schema element. */
222
+ extensionASTNodes?: Maybe<ReadonlyArray<DirectiveExtensionNode>>;
53
223
  }
54
224
  interface GraphQLDirectiveNormalizedConfig extends GraphQLDirectiveConfig {
55
225
  args: GraphQLFieldConfigArgumentMap;
56
226
  isRepeatable: boolean;
57
227
  extensions: Readonly<GraphQLDirectiveExtensions>;
228
+ extensionASTNodes: ReadonlyArray<DirectiveExtensionNode>;
58
229
  }
59
- /**
60
- * Used to conditionally include fields or fragments.
61
- */
230
+ /** Used to conditionally include fields or fragments. */
62
231
  export declare const GraphQLIncludeDirective: GraphQLDirective;
63
- /**
64
- * Used to conditionally skip (exclude) fields or fragments.
65
- */
232
+ /** Used to conditionally skip (exclude) fields or fragments. */
66
233
  export declare const GraphQLSkipDirective: GraphQLDirective;
67
- /**
68
- * Constant string used for default reason for a deprecation.
69
- */
234
+ /** Constant string used for default reason for a deprecation. */
70
235
  export declare const DEFAULT_DEPRECATION_REASON = 'No longer supported';
71
236
  /**
72
237
  * Used to declare element of a GraphQL schema as deprecated.
238
+ *
239
+ * The optional `reason` argument defaults to `DEFAULT_DEPRECATION_REASON`.
73
240
  */
74
241
  export declare const GraphQLDeprecatedDirective: GraphQLDirective;
75
- /**
76
- * Used to provide a URL for specifying the behavior of custom scalar definitions.
77
- */
242
+ /** Used to provide a URL for specifying the behavior of custom scalar definitions. */
78
243
  export declare const GraphQLSpecifiedByDirective: GraphQLDirective;
79
- /**
80
- * Used to indicate an Input Object is a OneOf Input Object.
81
- */
244
+ /** Used to indicate an Input Object is a OneOf Input Object. */
82
245
  export declare const GraphQLOneOfDirective: GraphQLDirective;
246
+ /** Full list of stable directives specified by GraphQL.js. */
247
+ export declare const specifiedDirectives: ReadonlyArray<GraphQLDirective>;
83
248
  /**
84
- * The full list of specified directives.
249
+ * Returns true when the directive is one of the directives specified by GraphQL.
250
+ * @param directive - Directive to inspect.
251
+ * @returns True when the directive is specified by GraphQL.
252
+ * @example
253
+ * ```ts
254
+ * import {
255
+ * GraphQLDirective,
256
+ * GraphQLIncludeDirective,
257
+ * isSpecifiedDirective,
258
+ * } from 'graphql/type';
259
+ * import { DirectiveLocation } from 'graphql/language';
260
+ *
261
+ * const customDirective = new GraphQLDirective({
262
+ * name: 'auth',
263
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
264
+ * });
265
+ *
266
+ * isSpecifiedDirective(GraphQLIncludeDirective); // => true
267
+ * isSpecifiedDirective(customDirective); // => false
268
+ * ```
85
269
  */
86
- export declare const specifiedDirectives: ReadonlyArray<GraphQLDirective>;
87
270
  export declare function isSpecifiedDirective(
88
271
  directive: GraphQLDirective,
89
272
  ): boolean;
@@ -34,12 +34,47 @@ var _definition = require('./definition.js');
34
34
 
35
35
  var _scalars = require('./scalars.js');
36
36
 
37
+ /** @category Directives */
38
+
37
39
  /**
38
40
  * Test if the given value is a GraphQL directive.
41
+ * @param directive - Value to inspect.
42
+ * @returns True when the value is a GraphQLDirective.
43
+ * @example
44
+ * ```ts
45
+ * import { DirectiveLocation } from 'graphql/language';
46
+ * import { GraphQLDirective, GraphQLString, isDirective } from 'graphql/type';
47
+ *
48
+ * const upper = new GraphQLDirective({
49
+ * name: 'upper',
50
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
51
+ * });
52
+ *
53
+ * isDirective(upper); // => true
54
+ * isDirective(GraphQLString); // => false
55
+ * ```
39
56
  */
40
57
  function isDirective(directive) {
41
58
  return (0, _instanceOf.instanceOf)(directive, GraphQLDirective);
42
59
  }
60
+ /**
61
+ * Returns the value as a GraphQLDirective, or throws if it is not a directive.
62
+ * @param directive - Value to inspect.
63
+ * @returns The value typed as a GraphQLDirective.
64
+ * @example
65
+ * ```ts
66
+ * import { DirectiveLocation } from 'graphql/language';
67
+ * import { assertDirective, GraphQLDirective, GraphQLString } from 'graphql/type';
68
+ *
69
+ * const upper = new GraphQLDirective({
70
+ * name: 'upper',
71
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
72
+ * });
73
+ *
74
+ * assertDirective(upper); // => upper
75
+ * assertDirective(GraphQLString); // throws an error
76
+ * ```
77
+ */
43
78
 
44
79
  function assertDirective(directive) {
45
80
  if (!isDirective(directive)) {
@@ -52,7 +87,6 @@ function assertDirective(directive) {
52
87
  }
53
88
  /**
54
89
  * Custom extensions
55
- *
56
90
  * @remarks
57
91
  * Use a unique identifier name for your extension, for example the name of
58
92
  * your library or project. Do not use a shortened identifier as this increases
@@ -65,8 +99,77 @@ function assertDirective(directive) {
65
99
  * behavior. Type system creators will usually not create these directly.
66
100
  */
67
101
  class GraphQLDirective {
102
+ /** The GraphQL name for this schema element. */
103
+
104
+ /** Human-readable description for this schema element, if provided. */
105
+
106
+ /** Locations where this directive may be applied. */
107
+
108
+ /** Arguments accepted by this field or directive. */
109
+
110
+ /** Whether this directive may appear more than once at the same location. */
111
+
112
+ /** Reason this element is deprecated, if one was provided. */
113
+
114
+ /** Extension fields to include in the formatted result. */
115
+
116
+ /** AST node from which this schema element was built, if available. */
117
+
118
+ /** AST extension nodes applied to this schema element. */
119
+
120
+ /**
121
+ * Creates a GraphQLDirective instance.
122
+ * @param config - Configuration describing this object.
123
+ * @example
124
+ * ```ts
125
+ * import { DirectiveLocation, parse } from 'graphql/language';
126
+ * import {
127
+ * GraphQLBoolean,
128
+ * GraphQLDirective,
129
+ * GraphQLInt,
130
+ * GraphQLNonNull,
131
+ * } from 'graphql/type';
132
+ *
133
+ * const document = parse(`
134
+ * directive @cacheControl(maxAge: Int) repeatable on FIELD_DEFINITION
135
+ * extend directive @cacheControl(maxAge: Int) on FIELD_DEFINITION
136
+ * `);
137
+ * const definition = document.definitions[0];
138
+ *
139
+ * const cacheControl = new GraphQLDirective({
140
+ * name: 'cacheControl',
141
+ * description: 'Controls HTTP cache hints for a field.',
142
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
143
+ * args: {
144
+ * inheritMaxAge: {
145
+ * description: 'Inherit the parent cache hint.',
146
+ * type: new GraphQLNonNull(GraphQLBoolean),
147
+ * defaultValue: false,
148
+ * deprecationReason: 'Use maxAge instead.',
149
+ * extensions: { scope: 'cache' },
150
+ * },
151
+ * maxAge: {
152
+ * type: GraphQLInt,
153
+ * astNode: definition.arguments[0],
154
+ * },
155
+ * },
156
+ * isRepeatable: true,
157
+ * deprecationReason: 'Use @cache instead.',
158
+ * extensions: { scope: 'cache' },
159
+ * astNode: definition,
160
+ * extensionASTNodes: [ document.definitions[1] ],
161
+ * });
162
+ *
163
+ * cacheControl.name; // => 'cacheControl'
164
+ * cacheControl.description; // => 'Controls HTTP cache hints for a field.'
165
+ * cacheControl.args[0].name; // => 'inheritMaxAge'
166
+ * cacheControl.args[0].defaultValue; // => false
167
+ * cacheControl.isRepeatable; // => true
168
+ * cacheControl.extensions; // => { scope: 'cache' }
169
+ * ```
170
+ */
68
171
  constructor(config) {
69
- var _config$isRepeatable, _config$args;
172
+ var _config$isRepeatable, _config$extensionASTN, _config$args;
70
173
 
71
174
  this.name = (0, _assertName.assertName)(config.name);
72
175
  this.description = config.description;
@@ -76,8 +179,14 @@ class GraphQLDirective {
76
179
  _config$isRepeatable !== void 0
77
180
  ? _config$isRepeatable
78
181
  : false;
182
+ this.deprecationReason = config.deprecationReason;
79
183
  this.extensions = (0, _toObjMap.toObjMap)(config.extensions);
80
184
  this.astNode = config.astNode;
185
+ this.extensionASTNodes =
186
+ (_config$extensionASTN = config.extensionASTNodes) !== null &&
187
+ _config$extensionASTN !== void 0
188
+ ? _config$extensionASTN
189
+ : [];
81
190
  Array.isArray(config.locations) ||
82
191
  (0, _devAssert.devAssert)(
83
192
  false,
@@ -94,10 +203,37 @@ class GraphQLDirective {
94
203
  );
95
204
  this.args = (0, _definition.defineArguments)(args);
96
205
  }
206
+ /**
207
+ * Returns the value used by `Object.prototype.toString`.
208
+ * @returns The built-in string tag for this object.
209
+ */
97
210
 
98
211
  get [Symbol.toStringTag]() {
99
212
  return 'GraphQLDirective';
100
213
  }
214
+ /**
215
+ * Returns a normalized configuration object for this object.
216
+ * @returns A configuration object that can be used to recreate this object.
217
+ * @example
218
+ * ```ts
219
+ * import { DirectiveLocation } from 'graphql/language';
220
+ * import { GraphQLDirective, GraphQLString } from 'graphql/type';
221
+ *
222
+ * const tag = new GraphQLDirective({
223
+ * name: 'tag',
224
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
225
+ * args: {
226
+ * name: { type: GraphQLString },
227
+ * },
228
+ * });
229
+ *
230
+ * const config = tag.toConfig();
231
+ * const tagCopy = new GraphQLDirective(config);
232
+ *
233
+ * config.args.name.type; // => GraphQLString
234
+ * tagCopy.args[0].name; // => 'name'
235
+ * ```
236
+ */
101
237
 
102
238
  toConfig() {
103
239
  return {
@@ -106,25 +242,59 @@ class GraphQLDirective {
106
242
  locations: this.locations,
107
243
  args: (0, _definition.argsToArgsConfig)(this.args),
108
244
  isRepeatable: this.isRepeatable,
245
+ deprecationReason: this.deprecationReason,
109
246
  extensions: this.extensions,
110
247
  astNode: this.astNode,
248
+ extensionASTNodes: this.extensionASTNodes,
111
249
  };
112
250
  }
251
+ /**
252
+ * Returns the schema coordinate identifying this directive.
253
+ * @returns The directive schema coordinate.
254
+ * @example
255
+ * ```ts
256
+ * import { DirectiveLocation } from 'graphql/language';
257
+ * import { GraphQLDirective } from 'graphql/type';
258
+ *
259
+ * const tag = new GraphQLDirective({
260
+ * name: 'tag',
261
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
262
+ * });
263
+ *
264
+ * tag.toString(); // => '@tag'
265
+ * ```
266
+ */
113
267
 
114
268
  toString() {
115
269
  return '@' + this.name;
116
270
  }
271
+ /**
272
+ * Returns the JSON representation used when this object is serialized.
273
+ * @returns The JSON-serializable representation.
274
+ * @example
275
+ * ```ts
276
+ * import { DirectiveLocation } from 'graphql/language';
277
+ * import { GraphQLDirective } from 'graphql/type';
278
+ *
279
+ * const tag = new GraphQLDirective({
280
+ * name: 'tag',
281
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
282
+ * });
283
+ *
284
+ * tag.toJSON(); // => '@tag'
285
+ * JSON.stringify({ directive: tag }); // => '{"directive":"@tag"}'
286
+ * ```
287
+ */
117
288
 
118
289
  toJSON() {
119
290
  return this.toString();
120
291
  }
121
292
  }
293
+ /** Configuration used to construct a GraphQLDirective. */
122
294
 
123
295
  exports.GraphQLDirective = GraphQLDirective;
124
296
 
125
- /**
126
- * Used to conditionally include fields or fragments.
127
- */
297
+ /** Used to conditionally include fields or fragments. */
128
298
  const GraphQLIncludeDirective = new GraphQLDirective({
129
299
  name: 'include',
130
300
  description:
@@ -141,9 +311,7 @@ const GraphQLIncludeDirective = new GraphQLDirective({
141
311
  },
142
312
  },
143
313
  });
144
- /**
145
- * Used to conditionally skip (exclude) fields or fragments.
146
- */
314
+ /** Used to conditionally skip (exclude) fields or fragments. */
147
315
 
148
316
  exports.GraphQLIncludeDirective = GraphQLIncludeDirective;
149
317
  const GraphQLSkipDirective = new GraphQLDirective({
@@ -162,14 +330,14 @@ const GraphQLSkipDirective = new GraphQLDirective({
162
330
  },
163
331
  },
164
332
  });
165
- /**
166
- * Constant string used for default reason for a deprecation.
167
- */
333
+ /** Constant string used for default reason for a deprecation. */
168
334
 
169
335
  exports.GraphQLSkipDirective = GraphQLSkipDirective;
170
336
  const DEFAULT_DEPRECATION_REASON = 'No longer supported';
171
337
  /**
172
338
  * Used to declare element of a GraphQL schema as deprecated.
339
+ *
340
+ * The optional `reason` argument defaults to `DEFAULT_DEPRECATION_REASON`.
173
341
  */
174
342
 
175
343
  exports.DEFAULT_DEPRECATION_REASON = DEFAULT_DEPRECATION_REASON;
@@ -181,6 +349,7 @@ const GraphQLDeprecatedDirective = new GraphQLDirective({
181
349
  _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION,
182
350
  _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION,
183
351
  _directiveLocation.DirectiveLocation.ENUM_VALUE,
352
+ _directiveLocation.DirectiveLocation.DIRECTIVE_DEFINITION,
184
353
  ],
185
354
  args: {
186
355
  reason: {
@@ -191,9 +360,7 @@ const GraphQLDeprecatedDirective = new GraphQLDirective({
191
360
  },
192
361
  },
193
362
  });
194
- /**
195
- * Used to provide a URL for specifying the behavior of custom scalar definitions.
196
- */
363
+ /** Used to provide a URL for specifying the behavior of custom scalar definitions. */
197
364
 
198
365
  exports.GraphQLDeprecatedDirective = GraphQLDeprecatedDirective;
199
366
  const GraphQLSpecifiedByDirective = new GraphQLDirective({
@@ -207,9 +374,7 @@ const GraphQLSpecifiedByDirective = new GraphQLDirective({
207
374
  },
208
375
  },
209
376
  });
210
- /**
211
- * Used to indicate an Input Object is a OneOf Input Object.
212
- */
377
+ /** Used to indicate an Input Object is a OneOf Input Object. */
213
378
 
214
379
  exports.GraphQLSpecifiedByDirective = GraphQLSpecifiedByDirective;
215
380
  const GraphQLOneOfDirective = new GraphQLDirective({
@@ -219,9 +384,7 @@ const GraphQLOneOfDirective = new GraphQLDirective({
219
384
  locations: [_directiveLocation.DirectiveLocation.INPUT_OBJECT],
220
385
  args: {},
221
386
  });
222
- /**
223
- * The full list of specified directives.
224
- */
387
+ /** Full list of stable directives specified by GraphQL.js. */
225
388
 
226
389
  exports.GraphQLOneOfDirective = GraphQLOneOfDirective;
227
390
  const specifiedDirectives = Object.freeze([
@@ -231,6 +394,29 @@ const specifiedDirectives = Object.freeze([
231
394
  GraphQLSpecifiedByDirective,
232
395
  GraphQLOneOfDirective,
233
396
  ]);
397
+ /**
398
+ * Returns true when the directive is one of the directives specified by GraphQL.
399
+ * @param directive - Directive to inspect.
400
+ * @returns True when the directive is specified by GraphQL.
401
+ * @example
402
+ * ```ts
403
+ * import {
404
+ * GraphQLDirective,
405
+ * GraphQLIncludeDirective,
406
+ * isSpecifiedDirective,
407
+ * } from 'graphql/type';
408
+ * import { DirectiveLocation } from 'graphql/language';
409
+ *
410
+ * const customDirective = new GraphQLDirective({
411
+ * name: 'auth',
412
+ * locations: [DirectiveLocation.FIELD_DEFINITION],
413
+ * });
414
+ *
415
+ * isSpecifiedDirective(GraphQLIncludeDirective); // => true
416
+ * isSpecifiedDirective(customDirective); // => false
417
+ * ```
418
+ */
419
+
234
420
  exports.specifiedDirectives = specifiedDirectives;
235
421
 
236
422
  function isSpecifiedDirective(directive) {