utils.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.toArray = toArray;
  4. exports.readFile = readFile;
  5. exports.isOversize = isOversize;
  6. exports.isImageUrl = isImageUrl;
  7. exports.isImageFile = isImageFile;
  8. function toArray(item) {
  9. if (Array.isArray(item)) {
  10. return item;
  11. }
  12. return [item];
  13. }
  14. function readFile(file, resultType) {
  15. return new Promise(function (resolve) {
  16. if (resultType === 'file') {
  17. resolve(null);
  18. return;
  19. }
  20. var reader = new FileReader();
  21. reader.onload = function (event) {
  22. resolve(event.target.result);
  23. };
  24. if (resultType === 'dataUrl') {
  25. reader.readAsDataURL(file);
  26. } else if (resultType === 'text') {
  27. reader.readAsText(file);
  28. }
  29. });
  30. }
  31. function isOversize(files, maxSize) {
  32. return toArray(files).some(function (file) {
  33. return file.size > maxSize;
  34. });
  35. }
  36. var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;
  37. function isImageUrl(url) {
  38. return IMAGE_REGEXP.test(url);
  39. }
  40. function isImageFile(item) {
  41. // some special urls cannot be recognized
  42. // user can add `isImage` flag to mark it as an image url
  43. if (item.isImage) {
  44. return true;
  45. }
  46. if (item.file && item.file.type) {
  47. return item.file.type.indexOf('image') === 0;
  48. }
  49. if (item.url) {
  50. return isImageUrl(item.url);
  51. }
  52. if (item.content) {
  53. return item.content.indexOf('data:image') === 0;
  54. }
  55. return false;
  56. }