22var utils = require ( './utils' ) ;
33var external = require ( "./external" ) ;
44var utf8 = require ( './utf8' ) ;
5- var utils = require ( './utils' ) ;
65var ZipEntries = require ( './zipEntries' ) ;
76var Crc32Probe = require ( './stream/Crc32Probe' ) ;
87var nodejsUtils = require ( "./nodejsUtils" ) ;
@@ -18,18 +17,18 @@ function checkEntryCRC32(zipEntry) {
1817 worker . on ( "error" , function ( e ) {
1918 reject ( e ) ;
2019 } )
21- . on ( "end" , function ( ) {
22- if ( worker . streamInfo . crc32 !== zipEntry . decompressed . crc32 ) {
23- reject ( new Error ( "Corrupted zip : CRC32 mismatch" ) ) ;
24- } else {
25- resolve ( ) ;
26- }
27- } )
28- . resume ( ) ;
20+ . on ( "end" , function ( ) {
21+ if ( worker . streamInfo . crc32 !== zipEntry . decompressed . crc32 ) {
22+ reject ( new Error ( "Corrupted zip : CRC32 mismatch" ) ) ;
23+ } else {
24+ resolve ( ) ;
25+ }
26+ } )
27+ . resume ( ) ;
2928 } ) ;
3029}
3130
32- module . exports = function ( data , options ) {
31+ module . exports = function ( data , options ) {
3332 var zip = this ;
3433 options = utils . extend ( options || { } , {
3534 base64 : false ,
@@ -44,39 +43,39 @@ module.exports = function(data, options) {
4443 }
4544
4645 return utils . prepareContent ( "the loaded zip file" , data , true , options . optimizedBinaryString , options . base64 )
47- . then ( function ( data ) {
48- var zipEntries = new ZipEntries ( options ) ;
49- zipEntries . load ( data ) ;
50- return zipEntries ;
51- } ) . then ( function checkCRC32 ( zipEntries ) {
52- var promises = [ external . Promise . resolve ( zipEntries ) ] ;
53- var files = zipEntries . files ;
54- if ( options . checkCRC32 ) {
46+ . then ( function ( data ) {
47+ var zipEntries = new ZipEntries ( options ) ;
48+ zipEntries . load ( data ) ;
49+ return zipEntries ;
50+ } ) . then ( function checkCRC32 ( zipEntries ) {
51+ var promises = [ external . Promise . resolve ( zipEntries ) ] ;
52+ var files = zipEntries . files ;
53+ if ( options . checkCRC32 ) {
54+ for ( var i = 0 ; i < files . length ; i ++ ) {
55+ promises . push ( checkEntryCRC32 ( files [ i ] ) ) ;
56+ }
57+ }
58+ return external . Promise . all ( promises ) ;
59+ } ) . then ( function addFiles ( results ) {
60+ var zipEntries = results . shift ( ) ;
61+ var files = zipEntries . files ;
5562 for ( var i = 0 ; i < files . length ; i ++ ) {
56- promises . push ( checkEntryCRC32 ( files [ i ] ) ) ;
63+ var input = files [ i ] ;
64+ zip . file ( input . fileNameStr , input . decompressed , {
65+ binary : true ,
66+ optimizedBinaryString : true ,
67+ date : input . date ,
68+ dir : input . dir ,
69+ comment : input . fileCommentStr . length ? input . fileCommentStr : null ,
70+ unixPermissions : input . unixPermissions ,
71+ dosPermissions : input . dosPermissions ,
72+ createFolders : options . createFolders
73+ } ) ;
74+ }
75+ if ( zipEntries . zipComment . length ) {
76+ zip . comment = zipEntries . zipComment ;
5777 }
58- }
59- return external . Promise . all ( promises ) ;
60- } ) . then ( function addFiles ( results ) {
61- var zipEntries = results . shift ( ) ;
62- var files = zipEntries . files ;
63- for ( var i = 0 ; i < files . length ; i ++ ) {
64- var input = files [ i ] ;
65- zip . file ( input . fileNameStr , input . decompressed , {
66- binary : true ,
67- optimizedBinaryString : true ,
68- date : input . date ,
69- dir : input . dir ,
70- comment : input . fileCommentStr . length ? input . fileCommentStr : null ,
71- unixPermissions : input . unixPermissions ,
72- dosPermissions : input . dosPermissions ,
73- createFolders : options . createFolders
74- } ) ;
75- }
76- if ( zipEntries . zipComment . length ) {
77- zip . comment = zipEntries . zipComment ;
78- }
7978
80- return zip ;
81- } ) ;
79+ return zip ;
80+ } ) ;
8281} ;
0 commit comments