jiuyiUniapp/service/node_modules/metro-minify-terser/src/minifier.js

49 lines
958 B
JavaScript

"use strict";
const terser = require("terser");
async function minifier(options) {
const result = await minify(options);
if (!options.map || result.map == null) {
return {
code: result.code,
};
}
const map = JSON.parse(result.map);
return {
code: result.code,
map: {
...map,
sources: [options.filename],
},
};
}
async function minify({ code, map, reserved, config }) {
const options = {
...config,
output: {
...(config.output ?? {}),
},
mangle:
config.mangle === false
? false
: {
...config.mangle,
reserved,
},
sourceMap: map
? config.sourceMap === false
? false
: {
...config.sourceMap,
content: map,
}
: false,
};
const result = await terser.minify(code, options);
return {
code: result.code,
map: result.map,
};
}
module.exports = minifier;