@@ -42,6 +42,9 @@ function resolveRelevantMappings<Resolvers extends Record<string, any> = Record<
4242 const fieldName = split [ 1 ] ;
4343
4444 if ( typeName === '*' ) {
45+ if ( ! resolvers ) {
46+ return [ ] ;
47+ }
4548 return flatten (
4649 Object . keys ( resolvers ) . map ( typeName =>
4750 resolveRelevantMappings ( resolvers , `${ typeName } .${ fieldName } ` , allMappings )
@@ -50,14 +53,12 @@ function resolveRelevantMappings<Resolvers extends Record<string, any> = Record<
5053 }
5154
5255 if ( fieldName === '*' ) {
53- const endpoints = resolvers [ typeName ] ;
54- if ( ! endpoints ) {
55- return [ ]
56+ const fieldMap = resolvers [ typeName ] ;
57+ if ( ! fieldMap ) {
58+ return [ ] ;
5659 }
5760 return flatten (
58- Object . keys ( endpoints ) . map ( field =>
59- resolveRelevantMappings ( resolvers , `${ typeName } .${ field } ` , allMappings )
60- )
61+ Object . keys ( fieldMap ) . map ( field => resolveRelevantMappings ( resolvers , `${ typeName } .${ field } ` , allMappings ) )
6162 ) . filter ( mapItem => ! allMappings [ mapItem ] ) ;
6263 } else {
6364 const paths = [ ] ;
@@ -81,8 +82,13 @@ function resolveRelevantMappings<Resolvers extends Record<string, any> = Record<
8182 } else if ( split . length === 1 ) {
8283 const typeName = split [ 0 ] ;
8384
85+ const fieldMap = resolvers [ typeName ] ;
86+ if ( ! fieldMap ) {
87+ return [ ] ;
88+ }
89+
8490 return flatten (
85- Object . keys ( resolvers [ typeName ] ) . map ( fieldName =>
91+ Object . keys ( fieldMap ) . map ( fieldName =>
8692 resolveRelevantMappings ( resolvers , `${ typeName } .${ fieldName } ` , allMappings )
8793 )
8894 ) ;
@@ -106,15 +112,16 @@ export function composeResolvers<Resolvers extends Record<string, any>>(
106112 const mappingResult : { [ path : string ] : ( ( ...args : any [ ] ) => any ) [ ] } = { } ;
107113
108114 Object . keys ( mapping ) . forEach ( ( resolverPath : string ) => {
109- if ( mapping [ resolverPath ] instanceof Array || typeof mapping [ resolverPath ] === 'function' ) {
110- const composeFns = mapping [ resolverPath ] as ResolversComposition | ResolversComposition [ ] ;
115+ const resolverPathMapping = mapping [ resolverPath ] ;
116+ if ( resolverPathMapping instanceof Array || typeof resolverPathMapping === 'function' ) {
117+ const composeFns = resolverPathMapping as ResolversComposition | ResolversComposition [ ] ;
111118 const relevantFields = resolveRelevantMappings ( resolvers , resolverPath , mapping ) ;
112119
113120 relevantFields . forEach ( ( path : string ) => {
114121 mappingResult [ path ] = asArray ( composeFns ) ;
115122 } ) ;
116- } else {
117- Object . keys ( mapping [ resolverPath ] ) . forEach ( fieldName => {
123+ } else if ( resolverPathMapping ) {
124+ Object . keys ( resolverPathMapping ) . forEach ( fieldName => {
118125 const composeFns = mapping [ resolverPath ] [ fieldName ] ;
119126 const relevantFields = resolveRelevantMappings ( resolvers , resolverPath + '.' + fieldName , mapping ) ;
120127
0 commit comments