UNPKG

mason

Version:

simple, fun, static-file builder for jade, stylus, and javascript

33 lines (27 loc) 923 B
var util = require('../util'); var jsp = require("uglify-js").parser; var pro = require("uglify-js").uglify; module.exports = function(options) { var asset = options.asset; // Build lists of source and destination files var sourceFiles = util.buildPaths(options.dir, asset.fromBase, asset.fromSrc); var destFiles = util.buildPaths(options.dir, asset.toBase, asset.toSrc); // Concatenate and compress the files var code = util.concatFiles(sourceFiles); var compressed = compressJS(code); // Write the destination files return destFiles.forEach(writeCompressed); function writeCompressed(destFile) { util.writeFile(destFile, compressed); } }; function compressJS(code) { // parse the JS code into AST var ast = jsp.parse(code); // mangle names ast = pro.ast_mangle(ast); // compress ast = pro.ast_squeeze(ast); // generate JS from the compressed AST return pro.gen_code(ast); }