utils.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. exports.isPromise = exports.isObject = exports.isFunction = exports.chooseFile = exports.isVideo = exports.isImageFile = void 0;
  4. var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;
  5. function isImageUrl(url) {
  6. return IMAGE_REGEXP.test(url);
  7. }
  8. function isImageFile(item) {
  9. if (item.type) {
  10. return item.type.indexOf('image') === 0;
  11. }
  12. if (item.path) {
  13. return isImageUrl(item.path);
  14. }
  15. if (item.url) {
  16. return isImageUrl(item.url);
  17. }
  18. return false;
  19. }
  20. exports.isImageFile = isImageFile;
  21. function isVideo(res, accept) {
  22. return accept === 'video';
  23. }
  24. exports.isVideo = isVideo;
  25. function chooseFile(_a) {
  26. var accept = _a.accept,
  27. multiple = _a.multiple,
  28. capture = _a.capture,
  29. compressed = _a.compressed,
  30. maxDuration = _a.maxDuration,
  31. sizeType = _a.sizeType,
  32. camera = _a.camera,
  33. maxCount = _a.maxCount;
  34. switch (accept) {
  35. case 'image':
  36. return new Promise(function (resolve, reject) {
  37. wx.chooseImage({
  38. count: multiple ? Math.min(maxCount, 9) : 1,
  39. sourceType: capture,
  40. sizeType: sizeType,
  41. success: resolve,
  42. fail: reject,
  43. });
  44. });
  45. case 'media':
  46. return new Promise(function (resolve, reject) {
  47. wx.chooseMedia({
  48. count: multiple ? Math.min(maxCount, 9) : 1,
  49. sourceType: capture,
  50. maxDuration: maxDuration,
  51. sizeType: sizeType,
  52. camera: camera,
  53. success: resolve,
  54. fail: reject,
  55. });
  56. });
  57. case 'video':
  58. return new Promise(function (resolve, reject) {
  59. wx.chooseVideo({
  60. sourceType: capture,
  61. compressed: compressed,
  62. maxDuration: maxDuration,
  63. camera: camera,
  64. success: resolve,
  65. fail: reject,
  66. });
  67. });
  68. default:
  69. return new Promise(function (resolve, reject) {
  70. wx.chooseMessageFile({
  71. count: multiple ? maxCount : 1,
  72. type: 'file',
  73. success: resolve,
  74. fail: reject,
  75. });
  76. });
  77. }
  78. }
  79. exports.chooseFile = chooseFile;
  80. function isFunction(val) {
  81. return typeof val === 'function';
  82. }
  83. exports.isFunction = isFunction;
  84. function isObject(val) {
  85. return val !== null && typeof val === 'object';
  86. }
  87. exports.isObject = isObject;
  88. function isPromise(val) {
  89. return isObject(val) && isFunction(val.then) && isFunction(val.catch);
  90. }
  91. exports.isPromise = isPromise;