kitXIII/project-lvl3-s310

View on GitHub
src/lib/batchLoader.js

Summary

Maintainability
A
0 mins
Test Coverage
F
57%
import Listr from 'listr';

const listrBatchLoad = (preparedHandlers) => {
  const tasks = new Listr(preparedHandlers.map(({ uri, path, process }) => ({
    title: uri,
    task: () => process(uri, path),
  })), { concurrent: true });

  return tasks.run();
};

const promiseAllBatchLoad = preparedHandlers => Promise.all(preparedHandlers
  .map(({ uri, path, process }) => process(uri, path)));

export default useListr => (useListr ? listrBatchLoad : promiseAllBatchLoad);