From f46a1253ce63965af88981de8eb9efe95d7ccece Mon Sep 17 00:00:00 2001 From: Griffin Date: Wed, 4 May 2022 10:53:42 -0500 Subject: [PATCH] update(script): Binary files are properly supported --- lib/build.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/build.js b/lib/build.js index 9693679..469f8c4 100644 --- a/lib/build.js +++ b/lib/build.js @@ -19,13 +19,13 @@ fs.readFile('./build.config.json', {encoding: 'utf8'}, (err, data) => { function createFile(file, code) { buildDirectory(path.join(config.output, file.dir)) - fs.writeFile(`${path.join(config.output, file.dir)}/${file.name}`, Buffer.from(code, 'utf8'), (err) => {if (err) console.error(`Error while creating file ${file.name} at ${file.dir}:\n${err}`)}) + fs.writeFile(`${path.join(config.output, file.dir)}/${file.name}`, code, (err) => {if (err) console.error(`Error while creating file ${file.name} at ${file.dir}:\n${err}`)}) } function findFiles(origin) { var i = 0; var files = []; - var dir = fs.readdirSync(origin, {encoding: 'utf8', withFileTypes: false}); + var dir = fs.readdirSync(origin, {withFileTypes: false}); function searcher() { var file = { @@ -48,7 +48,8 @@ function findFiles(origin) { if (file.isDirectory) { files = files.concat(findFiles(file.fullPath)) } else { - var reqdFile = fs.readFileSync(file.fullPath, {encoding: 'utf8'}) + var reqdFile = fs.readFileSync(file.fullPath, {encoding: + file.ext == '.html' || file.ext == '.htm' || file.ext == '.css' || file.ext == '.js' || file.ext == '.ts' ? 'utf8' : 'hex'}) files.push({meta: file, data: reqdFile}) } } else console.log(`Ignoring '${file.name}'`) @@ -80,17 +81,17 @@ function build() { } else if (file.meta.ext == '.css') { // CSS cssMinify(file) - } else if (file.meta.ext == '.html') { + } else if (file.meta.ext == '.html' || file.meta.ext == '.htm') { // HTML htmlMinify(file) } else { - createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, file.data) + createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, Buffer.from(file.data, 'hex')) } } async function jsMinify(file) { var minified = await jsTerser.minify(file.data, {mangle: true, compress: true}) - createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, minified.code) + createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, Buffer.from(minified.code, 'utf8')) } async function tsMinify(file) { @@ -110,12 +111,12 @@ function build() { async function htmlMinify(file) { var minified = minify.html(file.data) - createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, minified) + createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, Buffer.from(minified, 'utf8')) } async function cssMinify(file) { var minified = minify.css(file.data) - createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, minified) + createFile({dir: path.normalize(file.meta.path.split('src')[1]), name: file.meta.name}, Buffer.from(minified, 'utf8')) } }