UNPKG

@cran/lib.gql.core

Version:

GQL Core Functionality

35 lines (30 loc) 1.43 kB
import { DirectiveLocation, type GraphQLDirective } from "graphql"; export const isInternal: Readonly<Record<DirectiveLocation, boolean>> = { // Request Definitions [DirectiveLocation.QUERY] : false, [DirectiveLocation.MUTATION] : false, [DirectiveLocation.SUBSCRIPTION] : false, [DirectiveLocation.FIELD] : false, [DirectiveLocation.FRAGMENT_DEFINITION] : false, [DirectiveLocation.FRAGMENT_SPREAD] : false, [DirectiveLocation.INLINE_FRAGMENT] : false, [DirectiveLocation.VARIABLE_DEFINITION] : false, // Type System Definitions [DirectiveLocation.SCHEMA] : true, [DirectiveLocation.SCALAR] : true, [DirectiveLocation.OBJECT] : true, [DirectiveLocation.FIELD_DEFINITION] : true, [DirectiveLocation.ARGUMENT_DEFINITION] : true, [DirectiveLocation.INTERFACE] : true, [DirectiveLocation.UNION] : true, [DirectiveLocation.ENUM] : true, [DirectiveLocation.ENUM_VALUE] : true, [DirectiveLocation.INPUT_OBJECT] : true, [DirectiveLocation.INPUT_FIELD_DEFINITION]: true, }; export function isInternalLocation ( location: DirectiveLocation ) { return isInternal[location]; } export function isInternalDirective ( directive: GraphQLDirective ) { return directive.locations.every(isInternalLocation); }