@@ -69,13 +69,16 @@ program
6969 } )
7070 }
7171
72- function _fetchResolvers ( apiId , typeName ) {
72+ function _fetchResolvers ( apiId , typeName , nextToken ) {
7373 return new Promise ( function ( resolve , reject ) {
7474 let params = {
7575 apiId : apiId ,
7676 typeName : typeName ,
7777 maxResults : 25
7878 } ;
79+ if ( nextToken ) {
80+ params . nextToken = nextToken ;
81+ }
7982 appsync . listResolvers ( params , function ( err , data ) {
8083 if ( err )
8184 return reject ( err )
@@ -142,47 +145,59 @@ program
142145 }
143146 ] ,
144147 function ( err , results ) {
145- if ( err )
146- return reject ( err )
148+ if ( err ) {
149+ console . log ( "Error" , err ) ;
150+ return reject ( err )
151+ }
147152 else
148153 return resolve ( null )
149154 } ) ;
150155 } )
151156 }
152157
158+ function processAllResolvers ( type , nextToken , eachCallback ) {
159+ async . waterfall ( [
160+ function fetchResolvers ( cb ) {
161+ console . log ( "Fetching resolvers for" , type . name , nextToken ) ;
162+ _fetchResolvers ( API_ID , type . name , nextToken ) . then ( function ( data ) {
163+ cb ( null , data ) ;
164+ } ) . catch ( function ( e ) {
165+ cb ( e ) ;
166+ } )
167+ } ,
168+ function writeResolvers ( data , cb ) {
169+ if ( data . resolvers . length > 0 ) {
170+ async . each ( data . resolvers , function ( resolver , resolverCallback ) {
171+ _writeMappingTemplates ( type . name , resolver ) . then ( function ( ) {
172+ resolverCallback ( null , data )
173+ } ) . catch ( function ( err ) {
174+ console . log ( "Err" , err ) ;
175+ resolverCallback ( err , data )
176+ } )
177+ } , function ( err ) {
178+ cb ( null , data )
179+ } )
180+ } else {
181+ console . log ( 'No resolvers for ' , type . name )
182+ cb ( null , 'NO_RESOLVER' ) ;
183+ }
184+ }
185+ ] , function ( err , data ) {
186+ if ( data != 'NO_RESOLVER' && data . nextToken != null && data . nextToken != undefined ) {
187+ processAllResolvers ( type , data . nextToken , eachCallback ) ;
188+ } else
189+ eachCallback ( err , null )
190+ } ) ;
191+ }
192+
153193 function ProcessAPI ( params , callback ) {
154194 _getDataTypes ( params , function ( err , data ) {
155195 if ( err )
156196 return callback ( err )
157197 async . each ( data . types , function ( type , eachCallback ) {
158- async . waterfall ( [
159- function fetchResolvers ( cb ) {
160- _fetchResolvers ( API_ID , type . name ) . then ( function ( data ) {
161- cb ( null , data ) ;
162- } ) . catch ( function ( e ) {
163- cb ( e ) ;
164- } )
165- } ,
166- function writeResolvers ( data , cb ) {
167- if ( data . resolvers . length > 0 ) {
168- async . each ( data . resolvers , function ( resolver , resolverCallback ) {
169- _writeMappingTemplates ( type . name , resolver ) . then ( function ( ) {
170- resolverCallback ( null )
171- } ) . catch ( function ( err ) {
172- resolverCallback ( err )
173- } )
174- } , function ( err , done ) {
175- cb ( null )
176- } )
177- } else {
178- console . log ( 'No resolvers for ' , type . name )
179- cb ( null , 'NO_RESOLVER' ) ;
180- }
181- }
182- ] , function ( err , done ) {
183- eachCallback ( err , done )
184- } ) ;
185- } , function ( err , done ) {
198+ processAllResolvers ( type , null , eachCallback ) ;
199+ }
200+ , function ( err , done ) {
186201 if ( data . nextToken != null || data . nextToken != undefined ) {
187202 params . nextToken = data . nextToken ;
188203 ProcessAPI ( params , callback )
0 commit comments