antosdk-apps/libantosdk/core/terser.worker.js
2021-04-18 18:49:53 +02:00

50 lines
1.6 KiB
JavaScript

importScripts('terser.min.js');
class UglifyCodeJob extends AntOSDKBaseJob {
constructor(data)
{
super(data);
}
execute() {
if(!Terser)
{
const e_msg = "Terser module is not loaded";
this.log_error(e_msg);
return this.error(e_m);
}
this.read_files(this.job.data)
.then((contents) => {
const promises = [];
const options = {
toplevel: false,
compress: {
passes: 3,
},
mangle: true,
output: {
//beautify: true,
},
};
for(let i in contents)
{
const result = Terser.minify(contents[i], options);
if (result.error) {
this.log_error(`${this.job.data[i]}:${result.error}`);
promises.push(new Promise((r,e) => e(result.error)));
} else {
this.log_info(`File ${this.job.data[i]} uglified`);
promises.push(this.save_file(this.job.data[i],result.code));
}
}
Promise.all(promises)
.then((r) => this.result(r))
.catch((e) => this.error(e));
})
.catch((e1) => this.error(e1));
}
}
API.jobhandle["terser-uglify"] = UglifyCodeJob;