/**
 * Runs multiple middlewares in parallel
 * Usage: parallel(mw1, mw2, mw3);
 */

const { after } = require("lodash");

const parallel = (...fns) => (req, res, next) => {
  const finalNext = after(fns.length, next);
  fns.forEach(fn => fn(req, res, finalNext));
};

module.exports = parallel;