UNPKG

980 BJavaScriptView Raw
1var assign = require("lodash/assign");
2var isFunction = require("lodash/isFunction");
3
4function uglify(source, options) {
5 var UglifyJS = require("uglify-es");
6
7 var code = source.code;
8 var existingSourceMap = source.map;
9 var uglifyOptions = assign({}, options ? options.uglifyOptions : {});
10
11 if (options.sourceMaps) {
12 var sourceMap = uglifyOptions.sourceMap || {};
13
14 if (existingSourceMap) {
15 var content = getRawSourceMap(existingSourceMap);
16 var filename = content.sources && content.sources[0];
17
18 sourceMap.filename = filename;
19 sourceMap.content = content;
20 }
21
22 sourceMap.includeSources = !!options.sourceMapsContent;
23 uglifyOptions.sourceMap = sourceMap;
24 }
25
26 return UglifyJS.minify(code, uglifyOptions);
27}
28
29function getRawSourceMap(map) {
30 return isFunction(map.toJSON) ? map.toJSON() : map;
31}
32
33module.exports = uglify;
34module.exports.async = function(source, options){
35 return Promise.resolve().then(function() {
36 return uglify(source, options);
37 });
38};