| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | const { gzipAsync } = require('@gfx/zopfli');const FS = require('fs');const path = require('path');const SAVE_PATH = '../src';const BUNDLE_JS = FS.readFileSync(path.resolve(__dirname, './dist/js/app.js'));const INDEX_HTML = `<!DOCTYPE html><html lang="en"><head>	<meta charset='utf-8'>	<meta name='viewport' content='width=device-width,initial-scale=1'>	<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><div id="app"></div><script>${BUNDLE_JS}</script></body></html>`;function chunkArray(myArray, chunk_size){  var index = 0;  var arrayLength = myArray.length;  var tempArray = [];  for (index = 0; index < arrayLength; index += chunk_size) {      myChunk = myArray.slice(index, index+chunk_size);      // Do something if you want with the group      tempArray.push(myChunk);  }  return tempArray;}function addLineBreaks(buffer){  let data = '';  let chunks = chunkArray(buffer, 30);  chunks.forEach((chunk, index) => {    data += chunk.join(',');    if(index+1 !== chunks.length){      data+=',\n';    }  });  return data;}(async function(){  try{    const GZIPPED_INDEX = await gzipAsync(INDEX_HTML, { numiterations: 15 });    const FILE = `#ifndef _webserial_webapge_h#define _webserial_webpage_hconst uint32_t WEBSERIAL_HTML_SIZE = ${GZIPPED_INDEX.length};const uint8_t WEBSERIAL_HTML[] PROGMEM = { ${ addLineBreaks(GZIPPED_INDEX) }};#endif`;    FS.writeFileSync(path.resolve(__dirname, SAVE_PATH+'/webserial_webpage.h'), FILE);    console.log(`[COMPRESS.js] Compressed Bundle into webpage.h header file | Total Size: ${(GZIPPED_INDEX.length / 1024).toFixed(2) }KB`)  }catch(err){    return console.error(err);  }})();
 |