UNPKG

react-native-compressor

Version:

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

41 lines (40 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _Main = require("../Main"); var _utils = require("../utils"); var _reactNative = require("react-native"); const base64UrlRegex = /^data:image\/.*;(?:charset=.{3,5};)?base64,/; const ImageCompressEventEmitter = new _reactNative.NativeEventEmitter(_Main.Compressor); const NativeImage = _Main.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 = (0, _utils.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(); } } } }; var _default = exports.default = Image; //# sourceMappingURL=index.js.map