UNPKG

react-native-compressor

Version:

Compress Image, Video, and Audio same like Whatsapp & Auto/Manual Compression | Background Upload | Download File | Create Video Thumbnail

37 lines (36 loc) 1.19 kB
"use strict"; import { Compressor } from '../Main'; import { uuidv4 } from '../utils'; const base64UrlRegex = /^data:image\/.*;(?:charset=.{3,5};)?base64,/; import { NativeEventEmitter } from 'react-native'; const ImageCompressEventEmitter = new NativeEventEmitter(Compressor); const NativeImage = Compressor; const Image = { compress: async (value, options = {}) => { if (!value) { throw new Error('Compression value is empty, please provide a value for compression.'); } let subscription; try { if (options?.downloadProgress) { const uuid = uuidv4(); //@ts-ignore options.uuid = uuid; subscription = ImageCompressEventEmitter.addListener('downloadProgress', event => { if (event.uuid === uuid) { options.downloadProgress && options.downloadProgress(event.data.progress); } }); } const cleanData = value.replace(base64UrlRegex, ''); return await NativeImage.image_compress(cleanData, options); } finally { // @ts-ignore if (subscription) { subscription.remove(); } } } }; export default Image; //# sourceMappingURL=index.js.map