From 09f738c6d5c750df75bef7e6ca8b488646f47048 Mon Sep 17 00:00:00 2001 From: Pavel Lang Date: Mon, 31 Dec 2018 16:58:00 +0100 Subject: [PATCH] [graphql] Predicates can be now used as type guards (#31701) * feat(graphql): predicates as type guards Predicates in `graphql/language/predicates` are used in Flow as type guards. Now they can be used in TS too: * isDefinitionNode * isExecutableDefinitionNode * isSelectionNode * isValueNode * isTypeNode * isTypeSystemDefinitionNode * isTypeDefinitionNode * isTypeSystemExtensionNode * isTypeExtensionNode * chore(graphql): add langpavel to "Definitions by" --- types/graphql/index.d.ts | 1 + types/graphql/language/predicates.d.ts | 31 +++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/types/graphql/index.d.ts b/types/graphql/index.d.ts index 0b87d35222..abaa81294b 100644 --- a/types/graphql/index.d.ts +++ b/types/graphql/index.d.ts @@ -16,6 +16,7 @@ // Brad Zacher // Curtis Layne // Jonathan Cardoso +// Pavel Lang // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.6 diff --git a/types/graphql/language/predicates.d.ts b/types/graphql/language/predicates.d.ts index 81d2e02c41..c31a87f2a5 100644 --- a/types/graphql/language/predicates.d.ts +++ b/types/graphql/language/predicates.d.ts @@ -1,19 +1,30 @@ -import { ASTNode } from "./ast"; +import { + ASTNode, + DefinitionNode, + ExecutableDefinitionNode, + SelectionNode, + ValueNode, + TypeNode, + TypeSystemDefinitionNode, + TypeDefinitionNode, + TypeSystemExtensionNode, + TypeExtensionNode, +} from "./ast"; -export function isDefinitionNode(node: ASTNode): boolean; +export function isDefinitionNode(node: ASTNode): node is DefinitionNode; -export function isExecutableDefinitionNode(node: ASTNode): boolean; +export function isExecutableDefinitionNode(node: ASTNode): node is ExecutableDefinitionNode; -export function isSelectionNode(node: ASTNode): boolean; +export function isSelectionNode(node: ASTNode): node is SelectionNode; -export function isValueNode(node: ASTNode): boolean; +export function isValueNode(node: ASTNode): node is ValueNode; -export function isTypeNode(node: ASTNode): boolean; +export function isTypeNode(node: ASTNode): node is TypeNode; -export function isTypeSystemDefinitionNode(node: ASTNode): boolean; +export function isTypeSystemDefinitionNode(node: ASTNode): node is TypeSystemDefinitionNode; -export function isTypeDefinitionNode(node: ASTNode): boolean; +export function isTypeDefinitionNode(node: ASTNode): node is TypeDefinitionNode; -export function isTypeSystemExtensionNode(node: ASTNode): boolean; +export function isTypeSystemExtensionNode(node: ASTNode): node is TypeSystemExtensionNode; -export function isTypeExtensionNode(node: ASTNode): boolean; +export function isTypeExtensionNode(node: ASTNode): node is TypeExtensionNode;