aws-param-store
Version:
Library for loading parameters from AWS Parameter Store
41 lines (25 loc) • 844 B
JavaScript
function nextPage( params, results ) {
return Object.assign( {}, params, { NextToken: results.NextToken } );
}
class AWSPaginatedCall {
constructor( service, funcName ) {
this._service = service;
this._funcName = funcName;
}
execute( params, initialState, proc ) {
params = Object.assign( {}, params );
return this._invoke( params, initialState, proc )
}
_invoke( params, results, proc ) {
return this._service[ this._funcName ]( params ).promise()
.then( (data) => {
proc( data, results );
if( data.NextToken ) {
return this._invoke( nextPage( params, data ), results, proc );
}
return results;
});
}
}
module.exports = AWSPaginatedCall;
;