1 | var isFunction = require("lodash/isFunction");
|
2 | var babelMinify = require("./babel-minify");
|
3 | var uglify = require("./uglify");
|
4 |
|
5 | exports.sync = uglify;
|
6 |
|
7 | exports.async = function(source, options) {
|
8 |
|
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 |
|
25 | if(typeof options.uglifyOptions !== "undefined") {
|
26 | return uglify.async(source, options);
|
27 | }
|
28 |
|
29 | return babelMinify.async(source, options);
|
30 | };
|