@@ -34,6 +34,7 @@ import { translateResolveReference } from "../translate/translate-resolve-refere
3434import type { Context , Node } from "../types" ;
3535import { execute } from "../utils" ;
3636import getNeo4jResolveTree from "../utils/get-neo4j-resolve-tree" ;
37+ import { isInArray } from "../utils/is-in-array" ;
3738
3839// TODO fetch the directive names from the spec
3940const federationDirectiveNames = [
@@ -48,22 +49,14 @@ const federationDirectiveNames = [
4849 "tag" ,
4950 "composeDirective" ,
5051 "interfaceObject" ,
51- ] ;
52+ ] as const ;
5253
5354type FederationDirectiveName = ( typeof federationDirectiveNames ) [ number ] ;
5455
55- type FullyQualifiedFederationDirectiveName = `federation__${FederationDirectiveName } `;
56-
5756type ReferenceResolver = ( reference , context : Context , info : GraphQLResolveInfo ) => Promise < unknown > ;
5857
59- const isFederationDirectiveName = ( name : string ) : name is FederationDirectiveName =>
60- federationDirectiveNames . includes ( name ) ;
61-
6258export class Subgraph {
63- private importArgument : Map <
64- FederationDirectiveName ,
65- FederationDirectiveName | FullyQualifiedFederationDirectiveName | string
66- > ;
59+ private importArgument : Map < FederationDirectiveName , string > ;
6760 private typeDefs : TypeSource ;
6861 private linkExtension : SchemaExtensionNode ;
6962
@@ -96,7 +89,6 @@ export class Subgraph {
9689 }
9790
9891 public getFullyQualifiedDirectiveName ( name : FederationDirectiveName ) : string {
99- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
10092 return this . importArgument . get ( name ) ! ;
10193 }
10294
@@ -225,7 +217,7 @@ export class Subgraph {
225217 if ( value . kind === Kind . STRING ) {
226218 const trimmedName = this . trimDirectiveName ( value . value ) ;
227219
228- if ( ! isFederationDirectiveName ( trimmedName ) ) {
220+ if ( ! isInArray ( federationDirectiveNames , trimmedName ) ) {
229221 throw new Error ( `Encountered unknown Apollo Federation directive ${ value . value } ` ) ;
230222 }
231223
@@ -239,7 +231,7 @@ export class Subgraph {
239231 if ( name ?. value . kind === Kind . STRING ) {
240232 const trimmedName = this . trimDirectiveName ( name . value . value ) ;
241233
242- if ( ! isFederationDirectiveName ( trimmedName ) ) {
234+ if ( ! isInArray ( federationDirectiveNames , trimmedName ) ) {
243235 throw new Error ( `Encountered unknown Apollo Federation directive ${ name . value . value } ` ) ;
244236 }
245237
0 commit comments