import { __require as requireQueueMicrotask } from '../../../queue-microtask@1.2.3/node_modules/queue-microtask/index.mjs';

/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
var runParallel_1;
var hasRequiredRunParallel;
function requireRunParallel() {
  if (hasRequiredRunParallel) return runParallel_1;
  hasRequiredRunParallel = 1;
  runParallel_1 = runParallel;
  const queueMicrotask = requireQueueMicrotask();
  function runParallel(tasks, cb) {
    let results, pending, keys;
    let isSync = true;
    if (Array.isArray(tasks)) {
      results = [];
      pending = tasks.length;
    } else {
      keys = Object.keys(tasks);
      results = {};
      pending = keys.length;
    }
    function done(err) {
      function end() {
        if (cb) cb(err, results);
        cb = null;
      }
      if (isSync) queueMicrotask(end);else end();
    }
    function each(i, err, result) {
      results[i] = result;
      if (--pending === 0 || err) {
        done(err);
      }
    }
    if (!pending) {
      // empty
      done(null);
    } else if (keys) {
      // object
      keys.forEach(function (key) {
        tasks[key](function (err, result) {
          each(key, err, result);
        });
      });
    } else {
      // array
      tasks.forEach(function (task, i) {
        task(function (err, result) {
          each(i, err, result);
        });
      });
    }
    isSync = false;
  }
  return runParallel_1;
}

export { requireRunParallel as __require };
