(file, compression, compressionOptions)
| 12993 | * @return {JSZip.CompressedObject} the compressed result. |
| 12994 | */ |
| 12995 | var generateCompressedObjectFrom = function(file, compression, compressionOptions) { |
| 12996 | var result = new CompressedObject(), |
| 12997 | content; |
| 12998 | |
| 12999 | // the data has not been decompressed, we might reuse things ! |
| 13000 | if (file._data instanceof CompressedObject) { |
| 13001 | result.uncompressedSize = file._data.uncompressedSize; |
| 13002 | result.crc32 = file._data.crc32; |
| 13003 | |
| 13004 | if (result.uncompressedSize === 0 || file.dir) { |
| 13005 | compression = compressions['STORE']; |
| 13006 | result.compressedContent = ""; |
| 13007 | result.crc32 = 0; |
| 13008 | } |
| 13009 | else if (file._data.compressionMethod === compression.magic) { |
| 13010 | result.compressedContent = file._data.getCompressedContent(); |
| 13011 | } |
| 13012 | else { |
| 13013 | content = file._data.getContent(); |
| 13014 | // need to decompress / recompress |
| 13015 | result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content), compressionOptions); |
| 13016 | } |
| 13017 | } |
| 13018 | else { |
| 13019 | // have uncompressed data |
| 13020 | content = getBinaryData(file); |
| 13021 | if (!content || content.length === 0 || file.dir) { |
| 13022 | compression = compressions['STORE']; |
| 13023 | content = ""; |
| 13024 | } |
| 13025 | result.uncompressedSize = content.length; |
| 13026 | result.crc32 = crc32(content); |
| 13027 | result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content), compressionOptions); |
| 13028 | } |
| 13029 | |
| 13030 | result.compressedSize = result.compressedContent.length; |
| 13031 | result.compressionMethod = compression.magic; |
| 13032 | |
| 13033 | return result; |
| 13034 | }; |
| 13035 | |
| 13036 | |
| 13037 |
nothing calls this directly
no test coverage detected