UNPKG

@ui5/builder

Version:
36 lines (33 loc) 1.11 kB
const uglify = require("uglify-es"); const copyrightCommentsPattern = /copyright|\(c\)(?:[0-9]+|\s+[0-9A-za-z])|released under|license|\u00a9/i; /** * Minifies the supplied resources. * * @public * @alias module:@ui5/builder.processors.uglifier * @param {Object} parameters Parameters * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed * @returns {Promise<module:@ui5/fs.Resource[]>} Promise resolving with uglified resources */ module.exports = function({resources}) { return Promise.all(resources.map((resource) => { return resource.getString().then((code) => { const result = uglify.minify({ [resource.getPath()]: code }, { warnings: false, output: { comments: copyrightCommentsPattern }, compress: false }); if (result.error) { throw new Error( `Uglification failed with error: ${result.error.message} in file ${result.error.filename} ` + `(line ${result.error.line}, col ${result.error.col}, pos ${result.error.pos})`); } resource.setString(result.code); return resource; }); })); };