UNPKG

853 BJavaScriptView Raw
1var isFunction = require("lodash/isFunction");
2var babelMinify = require("./babel-minify");
3var uglify = require("./uglify");
4
5exports.sync = uglify;
6
7exports.async = function(source, options) {
8 // use the `minify` function if provided
9 if (isFunction(options.minify)) {
10 return Promise.resolve().then(function() {
11 return options.minify(source, options);
12 });
13 } else if(typeof options.minify === "string") {
14 switch(options.minify) {
15 case "uglify":
16 return uglify.async(source, options);
17 case "babel-minify":
18 return babelMinify.async(source, options);
19 default:
20 throw new Error(`The [${options.minify}] minifier is not supported.`);
21 }
22 }
23
24 // Use uglify if there are uglifyOptions
25 if(typeof options.uglifyOptions !== "undefined") {
26 return uglify.async(source, options);
27 }
28
29 return babelMinify.async(source, options);
30};