mirror of
				https://github.com/jaandrle/deka-dom-el
				synced 2025-11-03 22:59:16 +01:00 
			
		
		
		
	♻️ Update build script to support minification levels
Full minification by default
This commit is contained in:
		
							
								
								
									
										22
									
								
								bs/build.js
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								bs/build.js
									
									
									
									
									
								
							@@ -2,14 +2,16 @@
 | 
				
			|||||||
const files= [ "index.js", "index-with-signals.js" ];
 | 
					const files= [ "index.js", "index-with-signals.js" ];
 | 
				
			||||||
const filesOut= (file, mark= "esm")=> "dist/"+file.replace("index", mark);
 | 
					const filesOut= (file, mark= "esm")=> "dist/"+file.replace("index", mark);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for(const file of files){
 | 
					$.api("", true)
 | 
				
			||||||
 | 
					.option("--minify", "Level of minification [ full (default), partial ]")
 | 
				
			||||||
 | 
					.action(function main({ minify= "full" }){
 | 
				
			||||||
 | 
						for(const file of files){
 | 
				
			||||||
		const out= filesOut(file);
 | 
							const out= filesOut(file);
 | 
				
			||||||
		s.run([
 | 
							s.run([
 | 
				
			||||||
			"npx esbuild '::file::'",
 | 
								"npx esbuild '::file::'",
 | 
				
			||||||
			"--platform=neutral",
 | 
								"--platform=neutral",
 | 
				
			||||||
			"--bundle",
 | 
								"--bundle",
 | 
				
			||||||
		//"--minify",
 | 
								minify==="full" ? "--minify" : "--minify-syntax --minify-identifiers",
 | 
				
			||||||
		"--minify-syntax --minify-identifiers",
 | 
					 | 
				
			||||||
			"--legal-comments=inline",
 | 
								"--legal-comments=inline",
 | 
				
			||||||
			"--packages=external",
 | 
								"--packages=external",
 | 
				
			||||||
			"--outfile='::out::'"
 | 
								"--outfile='::out::'"
 | 
				
			||||||
@@ -19,22 +21,24 @@ for(const file of files){
 | 
				
			|||||||
			f=> s.echo(f).to(out)
 | 
								f=> s.echo(f).to(out)
 | 
				
			||||||
		)(s.cat(out));
 | 
							)(s.cat(out));
 | 
				
			||||||
		toDDE(out, filesOut(file, "dde"));
 | 
							toDDE(out, filesOut(file, "dde"));
 | 
				
			||||||
}
 | 
						}
 | 
				
			||||||
$.exit(0);
 | 
						$.exit(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function toDDE(file, out){
 | 
						function toDDE(file, out){
 | 
				
			||||||
		const name= "dde";
 | 
							const name= "dde";
 | 
				
			||||||
		echo(`\n  ${out} (${file} → globalThis.${name})\n`);
 | 
							echo(`\n  ${out} (${file} → globalThis.${name})\n`);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		let content= s.cat(file).toString().split(/export ?{/);
 | 
							let content= s.cat(file).toString().split(/export ?{/);
 | 
				
			||||||
		content.splice(1, 0, `\nglobalThis.${name}= {`);
 | 
							content.splice(1, 0, `\nglobalThis.${name}= {`);
 | 
				
			||||||
	content[2]= content[2].replace(/^(\t*)(.*) as ([^,\n]*)(,?)$/mg, "$1$3: $2$4");
 | 
							content[2]= content[2].replace(/,(?!\n)/g, ",\n").replace(/(?<!\n)}/, "\n}").replace(/^(\t*)(.*) as ([^,\n]*)(,?)$/mg, "$1$3: $2$4");
 | 
				
			||||||
		s.echo([
 | 
							s.echo([
 | 
				
			||||||
			`//deka-dom-el library is available via global namespace \`${name}\``,
 | 
								`//deka-dom-el library is available via global namespace \`${name}\``,
 | 
				
			||||||
			"(()=> {",
 | 
								"(()=> {",
 | 
				
			||||||
		"\t"+content.join("").split("\n").join("\n	"),
 | 
								content.join(""),
 | 
				
			||||||
			"})();"
 | 
								"})();"
 | 
				
			||||||
		].join("\n")).to(out);
 | 
							].join("\n")).to(out);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		echo("⚡ Done\n");
 | 
							echo("⚡ Done\n");
 | 
				
			||||||
}
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					.parse();
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										541
									
								
								dist/dde-with-signals.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										541
									
								
								dist/dde-with-signals.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										351
									
								
								dist/dde.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										351
									
								
								dist/dde.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										527
									
								
								dist/esm-with-signals.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										527
									
								
								dist/esm-with-signals.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										339
									
								
								dist/esm.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										339
									
								
								dist/esm.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user