@@ -8,7 +8,7 @@ const GREEN = "\x1b[32m%s\x1b[0m";
88const YELLOW = "\x1b[33m%s\x1b[0m" ;
99const RED = "\x1b[31m%s\x1b[0m" ;
1010
11- const VERSION = 7 ;
11+ const VERSION = 8 ;
1212
1313Handlebars . registerHelper ( "or" , function ( param1 , param2 ) {
1414 return param1 || param2 ;
@@ -88,7 +88,7 @@ const LIGHT = {
8888 ignorednt : false ,
8989} ;
9090
91- const files = [
91+ const templates = [
9292 {
9393 type : "js" ,
9494 input : `${ __dirname } /src/default.js` ,
@@ -199,18 +199,6 @@ const files = [
199199 baseUrl : "{{nginxHost}}" ,
200200 } ,
201201 } ,
202- {
203- type : "js" ,
204- input : `${ __dirname } /src/embed.js` ,
205- output : `embed.js` ,
206- variables : {
207- minify : true ,
208- version : 1 ,
209- sri : false ,
210- script : "embed.js" ,
211- url : "docs.simpleanalytics.com/embed-graph-on-your-site" ,
212- } ,
213- } ,
214202 {
215203 type : "js" ,
216204 input : `${ __dirname } /src/auto-events.js` ,
@@ -225,6 +213,19 @@ const files = [
225213 } ,
226214] ;
227215
216+ // Add both SRI files and non SRI files if variables.sri = true
217+ const files = templates . reduce ( ( list , template ) => {
218+ if ( template . variables ?. sri ) {
219+ list . push (
220+ { ...template , variables : { ...template . variables , sri : true } } ,
221+ { ...template , variables : { ...template . variables , sri : false } }
222+ ) ;
223+ } else {
224+ list . push ( template ) ;
225+ }
226+ return list ;
227+ } , [ ] ) ;
228+
228229for ( const file of files ) {
229230 const { variables, input, output } = file ;
230231 const name = output . toUpperCase ( ) ;
@@ -262,6 +263,7 @@ for (const file of files) {
262263 } ${ variables . version ? `; v${ variables . version } ` : "" } ) */\n`;
263264
264265 const originalFileName = finalFileName . replace ( ".js" , ".source.js" ) ;
266+
265267 const {
266268 code : codeTemplate ,
267269 map,
@@ -318,10 +320,10 @@ for (const file of files) {
318320
319321 if ( variables . version && variables . sri ) {
320322 fs . mkdirSync ( path . dirname ( versionFile ) , { recursive : true } ) ;
323+ } else {
324+ fs . mkdirSync ( path . dirname ( latestFile ) , { recursive : true } ) ;
321325 }
322326
323- fs . mkdirSync ( path . dirname ( latestFile ) , { recursive : true } ) ;
324-
325327 const compiledMap = map ? fillTemplate ( map , variables ) : null ;
326328
327329 if ( variables . version && variables . sri ) {
@@ -333,20 +335,29 @@ for (const file of files) {
333335 `sourceMappingURL=${ cdnFileName } .map`
334336 )
335337 ) ;
336- if ( compiledMap )
338+ if ( compiledMap ) {
337339 fs . writeFileSync (
338340 `${ cdnVersionFile } .map` ,
339341 compiledMap . replace ( / l a t e s t \. s o u r c e \. j s / gi, cdnFileName )
340342 ) ;
343+ }
344+ } else {
345+ fs . writeFileSync ( latestFile , code . replace ( / ; S R I - v e r s i o n / i, "" ) ) ;
346+ if ( compiledMap ) fs . writeFileSync ( `${ latestFile } .map` , compiledMap ) ;
341347 }
342348
343- fs . writeFileSync ( latestFile , code . replace ( / ; S R I - v e r s i o n / i, "" ) ) ;
344- if ( compiledMap ) fs . writeFileSync ( `${ latestFile } .map` , compiledMap ) ;
345-
346349 const bytes = new TextEncoder ( "utf-8" ) . encode ( code ) . length ;
350+ const bytesZeroFilled = ( bytes + "" ) . padStart ( 5 , " " ) ;
351+
352+ // Add white space in console
353+ const sourceName = input . split ( "/" ) . pop ( ) ;
354+ const fill1 = " " . repeat ( Math . max ( 0 , 16 - name . length ) ) ;
355+ const fill2 = " " . repeat ( Math . max ( 0 , 14 - sourceName . length ) ) ;
347356
348357 console . log (
349- `[MINIFY][${ name } ] Minified ${ input . split ( "/" ) . pop ( ) } into ${ bytes } bytes`
358+ `[MINIFY] ${ name . toLowerCase ( ) } ${ fill1 } Minified ${ sourceName } ${ fill2 } ${ bytesZeroFilled } bytes ${
359+ variables . sri ? " (SRI)" : ""
360+ } `
350361 ) ;
351362}
352363
0 commit comments