You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

preloadImage.web.js 663B

123456789101112131415161718192021222324252627282930
  1. // @flow
  2. import { isIconUrl } from './functions';
  3. /**
  4. * Tries to preload an image.
  5. *
  6. * @param {string | Object} src - Source of the avatar.
  7. * @returns {Promise}
  8. */
  9. export function preloadImage(src: string | Object): Promise<string> {
  10. if (isIconUrl(src)) {
  11. return Promise.resolve(src);
  12. }
  13. return new Promise((resolve, reject) => {
  14. fetch(src, { referrer: '' })
  15. .then(response => {
  16. if (response.ok) {
  17. resolve(src);
  18. } else {
  19. reject();
  20. }
  21. })
  22. .catch(e => {
  23. reject(e);
  24. });
  25. });
  26. }