@@ -20,33 +20,33 @@ function createAsyncResolver(field) {
2020 originalResolver ( source , args , context , info )
2121}
2222
23- function getDirectiveInfo ( directive , resolverMap , schema , location ) {
23+ function getDirectiveInfo ( directive , resolverMap , schema , location , variables ) {
2424 const name = directive . name . value
2525
2626 const Directive = schema . getDirective ( name )
2727 if ( typeof Directive === 'undefined' ) {
2828 throw new Error (
2929 `Directive @${ name } is undefined. ` +
30- 'Please define in schema before using.' ,
30+ 'Please define in schema before using.' ,
3131 )
3232 }
3333
3434 if ( ! Directive . locations . includes ( location ) ) {
3535 throw new Error (
3636 `Directive @${ name } is not marked to be used on "${ location } " location. ` +
37- `Please add "directive @${ name } ON ${ location } " in schema.` ,
37+ `Please add "directive @${ name } ON ${ location } " in schema.` ,
3838 )
3939 }
4040
4141 const resolver = resolverMap [ name ]
4242 if ( ! resolver && ! BUILT_IN_DIRECTIVES . includes ( name ) ) {
4343 throw new Error (
4444 `Directive @${ name } has no resolver.` +
45- 'Please define one using createFieldExecutionResolver().' ,
45+ 'Please define one using createFieldExecutionResolver().' ,
4646 )
4747 }
4848
49- const args = getDirectiveValues ( Directive , { directives : [ directive ] } )
49+ const args = getDirectiveValues ( Directive , { directives : [ directive ] } , variables )
5050 return { args, resolver }
5151}
5252
@@ -60,14 +60,13 @@ function createFieldExecutionResolver(field, resolverMap, schema) {
6060 schema ,
6161 DirectiveLocation . FIELD_DEFINITION ,
6262 )
63- return ( source , args , context , info ) =>
64- directiveInfo . resolver (
65- ( ) => recursiveResolver ( source , args , context , info ) ,
66- source ,
67- directiveInfo . args ,
68- context ,
69- info ,
70- )
63+ return ( source , args , context , info ) => directiveInfo . resolver (
64+ ( ) => recursiveResolver ( source , args , context , info ) ,
65+ source ,
66+ directiveInfo . args ,
67+ context ,
68+ info ,
69+ )
7170 } , createAsyncResolver ( field ) )
7271}
7372
@@ -83,6 +82,7 @@ function createFieldResolver(field, resolverMap, schema) {
8382 resolverMap ,
8483 schema ,
8584 DirectiveLocation . FIELD ,
85+ info . variableValues ,
8686 )
8787 return ( ) =>
8888 directiveInfo . resolver (
0 commit comments