async function loadModules(appDescriptors, pathFolders, customLoadModuleSource) {
  const modules = new Map();
  appDescriptors.forEach(descriptor => descriptor.modules.forEach(module => modules.set(module.name, null)));
  await Promise.all(Array.from(modules).map(async([moduleName, module]) => {
    modules.set(moduleName, await loadModule(pathFolders, moduleName, customLoadModuleSource));
  }));
  return modules;
}
@param {!Map<string, !AppDescriptor>} appDescriptors
@param {!Array<string>} pathFolders
@return {!Promise<!Map<string, !ModuleDescriptor>>}