| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- // Finalize Nodejs Script
 
- // 1 - Append JS in HTML Document
 
- // 2 - Gzip HTML
 
- // 3 - Covert to Raw Bytes
 
- // 4 - ( Save to File: webpage.h ) in dist Folder
 
- const fs = require('fs');
 
- const zlib = require('zlib');
 
- const { gzip } = require('@gfx/zopfli');
 
- function getByteArray(file){
 
-     let fileData = file.toString('hex');
 
-     let result = [];
 
-     for (let i = 0; i < fileData.length; i+=2)
 
-       result.push('0x'+fileData[i]+''+fileData[i+1]);
 
-     return result;
 
- }
 
- let js = fs.readFileSync(__dirname+'/dist/js/app.js');
 
- let html = `
 
- <!DOCTYPE html>
 
- <html lang="en">
 
-   <head>
 
-     <meta charset="utf-8">
 
-     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 
-     <meta name="viewport" content="width=device-width,initial-scale=1.0">
 
-     <title>WebSerial</title>
 
-     <script data-name="BMC-Widget" async src="https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js" data-id="6QGVpSj" data-description="Support me on Buy me a coffee!" data-message="You can always support my work by buying me a coffee!" data-color="#FF813F" data-position="right" data-x_margin="24" data-y_margin="24"></script>
 
-   </head>
 
-   <body>
 
-     <noscript>
 
-       <strong>We're sorry but WebSerial doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
 
-     </noscript>
 
-     <div id="app"></div>
 
-     <script>${js}</script>
 
-   </body>
 
- </html>
 
- `;
 
- // Gzip the index.html file with JS Code.
 
- const gzippedIndex = zlib.gzipSync(html, {'level': zlib.constants.Z_BEST_COMPRESSION});
 
- let indexHTML = getByteArray(gzippedIndex);
 
- let source = 
 
- `
 
- const uint32_t WEBSERIAL_HTML_SIZE = ${indexHTML.length};
 
- const uint8_t WEBSERIAL_HTML[] PROGMEM = { ${indexHTML} };
 
- `;
 
- fs.writeFileSync(__dirname+'/dist/webpage.h', source, 'utf8');
 
- // Produce a second variant with zopfli
 
- // Zopfli is a improved zip algorithm by google
 
- // Takes much more time and maybe is not available on every machine
 
- const input =  html;
 
- gzip(input, {numiterations: 15}, (err, output) => {
 
-     indexHTML = output;
 
-     let source =
 
- `
 
- const uint32_t WEBSERIAL_HTML_SIZE = ${indexHTML.length};
 
- const uint8_t WEBSERIAL_HTML[] PROGMEM = { ${indexHTML} };
 
- `;
 
-   fs.writeFileSync(__dirname + '/dist/webpage_zopfli.h', source, 'utf8');
 
- });
 
 
  |