rest-api-handler
Version:
Handler for REST APIs
31 lines (23 loc) • 739 B
JavaScript
;
// processor can be instance of class
/**
* Resolve given processor.
*
* @param response - Response to process.
* @param list - Array of processors.
* @param request - fetch request
* @param i - Index of current processor.
* @returns Processed response
*/
async function resolveProcessors(response, list, request, i = 0) {
const processor = list[i];
if (!processor) {
return response;
}
const processedResponse = typeof processor === 'function' ? await processor(response, request) : await processor.processResponse(response, request);
if (list[i + 1]) {
return resolveProcessors(processedResponse, list, request, i + 1);
}
return processedResponse;
}
module.exports = resolveProcessors;