const { minify } = require("terser"); const fs = require('fs'); const jsPath = "javascript/build/dist/" const extPath = "extension/Resources/Public/JavaScript/" const todos = [ { name: "qfq", input: "js/qfq.debug.js", output: jsPath + "qfq.min.js" },{ name: "qfqFabric", input: "javascript/src/Plugins/qfq.fabric.js", output: jsPath + "qfq.fabric.min.js" },{ name: "qfqValidator", input: "javascript/src/Plugins/validator.js", output: jsPath + "validator.min.js" },{ name: "codemirror", input: "node_modules/codemirror/lib/codemirror.js", output: extPath + "codemirror.min.js" },{ name: "codemirror sql", input: "node_modules/codemirror/lib/codemirror.js", output: extPath + "code-mirror-mode/sql/sql.min.js", mkdir: extPath + "code-mirror-mode/sql" } ] const options = { mangle: { properties: true, } }; async function oWriteFile(input, output, options) { let sourceCode = fs.readFileSync(input, 'utf8'); const result = minify(sourceCode, options) .then( (res) => callWriteFile(output, res)) } function callWriteFile(output, sourceCode) { //console.log("Source Code", sourceCode) fs.writeFileSync(output, sourceCode.code) } for (const todo of todos) { console.log("minifying " + todo.name) if(todo.hasOwnProperty("mkdir")) { fs.mkdirSync(todo.mkdir, { recursive: true }) } oWriteFile(todo.input, todo.output, options) }