@@ -13,6 +13,18 @@ const options_1 = require('./options');
1313const fs = require ( 'fs' ) ;
1414const JS_EXTENSION = ".js" ;
1515const MINIFY_EXTENSION_PREFIX = ".min" ;
16+ class RejectionError {
17+ constructor ( error , type = undefined ) {
18+ this . error = error ;
19+ this . type = type ;
20+ }
21+ get Type ( ) {
22+ return this . type ;
23+ }
24+ get Error ( ) {
25+ return this . error ;
26+ }
27+ }
1628class GlobsUglifyJs {
1729 constructor ( globPattern , options ) {
1830 this . options = new options_1 . default ( options ) ;
@@ -25,12 +37,19 @@ class GlobsUglifyJs {
2537 main ( ) {
2638 return __awaiter ( this , void 0 , void 0 , function * ( ) {
2739 let rejected = false ;
28- let filesList = yield this . getGlobs ( this . globPattern ) ;
40+ let filesList = yield this . getGlobs ( this . globPattern )
41+ . catch ( error => {
42+ console . log ( error ) ;
43+ rejected = true ;
44+ } ) ;
45+ if ( rejected ) {
46+ return ;
47+ }
2948 if ( filesList . length === 0 ) {
3049 console . log ( "No files found." ) ;
3150 return ;
3251 }
33- yield this . recursiveUglify ( filesList . slice ( ) )
52+ yield this . recursiveUglify ( filesList . slice ( 0 ) )
3453 . catch ( error => {
3554 console . log ( error ) ;
3655 rejected = true ;
@@ -39,7 +58,7 @@ class GlobsUglifyJs {
3958 return ;
4059 }
4160 if ( this . options . RemoveSource ) {
42- yield this . deleteFiles ( filesList . slice ( ) )
61+ yield this . deleteFiles ( filesList . slice ( 0 ) )
4362 . catch ( error => {
4463 console . log ( error ) ;
4564 rejected = true ;
@@ -71,7 +90,7 @@ class GlobsUglifyJs {
7190 yield this . deleteFile ( file )
7291 . catch ( error => {
7392 rejected = true ;
74- reject ( error ) ;
93+ reject ( new RejectionError ( error , "deleteFile" ) ) ;
7594 } ) ;
7695 if ( ! rejected ) {
7796 yield this . deleteFiles ( fileList ) ;
@@ -94,39 +113,59 @@ class GlobsUglifyJs {
94113 } ) ;
95114 } ) ;
96115 }
116+ uglifyFile ( file ) {
117+ return __awaiter ( this , void 0 , void 0 , function * ( ) {
118+ return new Promise ( ( resolve , reject ) => {
119+ try {
120+ let outputData = uglifyjs . minify ( file ) ;
121+ resolve ( outputData ) ;
122+ }
123+ catch ( error ) {
124+ reject ( error ) ;
125+ }
126+ } ) ;
127+ } ) ;
128+ }
97129 recursiveUglify ( filesList ) {
98130 return __awaiter ( this , void 0 , void 0 , function * ( ) {
99131 return new Promise ( ( resolve , reject ) => __awaiter ( this , void 0 , void 0 , function * ( ) {
100132 let file = filesList . shift ( ) ;
101133 if ( file != null ) {
102134 let rejected = false ;
103- let outputData = uglifyjs . minify ( file ) ;
135+ let outputData = yield this . uglifyFile ( file )
136+ . catch ( error => {
137+ reject ( new RejectionError ( error , "uglifyFile" ) ) ;
138+ rejected = true ;
139+ } ) ;
140+ if ( rejected ) {
141+ return ;
142+ }
104143 let outPath = this . resolveOutFilePath ( file ) ;
105144 yield this . ensureDirectoryExistence ( outPath )
106145 . catch ( error => {
146+ console . log ( error ) ;
107147 rejected = true ;
108- reject ( error ) ;
148+ reject ( new RejectionError ( error , "ensureDirectoryExistence" ) ) ;
109149 } ) ;
110150 if ( rejected ) {
111151 return ;
112152 }
113153 yield this . writeToFile ( outPath , outputData . code )
114154 . catch ( error => {
115155 rejected = true ;
116- reject ( error ) ;
156+ reject ( new RejectionError ( error , "writeToFile" ) ) ;
117157 } ) ;
118158 if ( rejected ) {
119159 return ;
120160 }
121161 yield this . recursiveUglify ( filesList )
122162 . catch ( error => {
123163 rejected = true ;
124- reject ( error ) ;
164+ reject ( new RejectionError ( error , "recursiveUglify" ) ) ;
125165 } ) ;
126- if ( rejected ) {
127- return ;
166+ if ( ! rejected ) {
167+ resolve ( ) ;
128168 }
129- resolve ( ) ;
130169 }
131170 else {
132171 resolve ( ) ;
@@ -137,13 +176,22 @@ class GlobsUglifyJs {
137176 ensureDirectoryExistence ( filePath ) {
138177 return __awaiter ( this , void 0 , void 0 , function * ( ) {
139178 return new Promise ( ( resolve , reject ) => __awaiter ( this , void 0 , void 0 , function * ( ) {
179+ let rejected = false ;
140180 let dirname = path . dirname ( filePath ) ;
141- if ( yield this . directoryExists ( dirname ) ) {
181+ let directoryExist = yield this . directoryExists ( dirname ) ;
182+ if ( directoryExist ) {
142183 resolve ( ) ;
143184 return ;
144185 }
145- yield this . ensureDirectoryExistence ( dirname ) ;
146- fs . mkdir ( dirname , ( error ) => {
186+ yield this . ensureDirectoryExistence ( dirname )
187+ . catch ( error => {
188+ reject ( error ) ;
189+ rejected = true ;
190+ } ) ;
191+ if ( rejected ) {
192+ return ;
193+ }
194+ fs . mkdir ( dirname , error => {
147195 if ( error ) {
148196 reject ( error ) ;
149197 }
@@ -182,9 +230,9 @@ class GlobsUglifyJs {
182230 for ( let i = 0 ; i < files . length ; i ++ ) {
183231 let file = files [ i ] ;
184232 var fullPath = path . join ( directoryPath , file ) ;
185- yield this . deleteEmptyDirectories ( fullPath ) . catch ( error => {
186- console . log ( "Error: " , error ) ;
187- reject ( error ) ;
233+ yield this . deleteEmptyDirectories ( fullPath )
234+ . catch ( error => {
235+ reject ( new RejectionError ( error , "deleteEmptyDirectories" ) ) ;
188236 rejected = true ;
189237 } ) ;
190238 if ( rejected ) {
@@ -202,7 +250,7 @@ class GlobsUglifyJs {
202250 if ( files . length == 0 ) {
203251 yield this . removeDirectory ( directoryPath )
204252 . catch ( error => {
205- reject ( error ) ;
253+ reject ( new RejectionError ( error , "removeDirectory" ) ) ;
206254 rejected = true ;
207255 } ) ;
208256 }
0 commit comments