/*
  Usage: loadJavaScriptFiles([{
    href:
      'https://path-to',
  },
  {
    href:
      'https://unpkg.com/cdn-path-to',
    integrity:
      'sha384',
  },
  {
    href: 'https://unpkg.com/path-to',
  },
])
*/
const loadJavaScriptFiles = list => {
  return Promise.all(
    list.map(file => {
      return new Promise((resolve, reject) => {
        const script = document.createElement('script');

        Object.keys(file).forEach(propertyName => {
          script[propertyName] = file[propertyName];
        });

        script.onload = () => resolve();
        script.onerror = () => reject();

        document.body.appendChild(script);
      });
    })
  );
};

module exports loadJavaScriptFiles