1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
6 |
|
7 | const _require = require('terser'),
|
8 | minify = _require.minify;
|
9 |
|
10 | const SourceMap = require('../SourceMap');
|
11 |
|
12 | module.exports =
|
13 |
|
14 | function () {
|
15 | var _ref = (0, _asyncToGenerator2.default)(function* (asset) {
|
16 | yield asset.parseIfNeeded();
|
17 |
|
18 | let source = (yield asset.generate())[0].value;
|
19 | let customConfig = yield asset.getConfig(['.uglifyrc', '.terserrc']);
|
20 | let options = {
|
21 | warnings: true,
|
22 | safari10: true,
|
23 | mangle: {
|
24 | toplevel: !asset.options.scopeHoist
|
25 | }
|
26 | };
|
27 | let sourceMap;
|
28 |
|
29 | if (asset.options.sourceMaps) {
|
30 | sourceMap = new SourceMap();
|
31 | options.output = {
|
32 | source_map: {
|
33 | add(source, gen_line, gen_col, orig_line, orig_col, name) {
|
34 | sourceMap.addMapping({
|
35 | source,
|
36 | name,
|
37 | original: {
|
38 | line: orig_line,
|
39 | column: orig_col
|
40 | },
|
41 | generated: {
|
42 | line: gen_line,
|
43 | column: gen_col
|
44 | }
|
45 | });
|
46 | }
|
47 |
|
48 | }
|
49 | };
|
50 | }
|
51 |
|
52 | if (customConfig) {
|
53 | options = Object.assign(options, customConfig);
|
54 | }
|
55 |
|
56 | let result = minify(source, options);
|
57 |
|
58 | if (result.error) {
|
59 | throw result.error;
|
60 | }
|
61 |
|
62 | if (sourceMap) {
|
63 | if (asset.sourceMap) {
|
64 | asset.sourceMap = yield new SourceMap().extendSourceMap(asset.sourceMap, sourceMap);
|
65 | } else {
|
66 | asset.sourceMap = sourceMap;
|
67 | }
|
68 | }
|
69 |
|
70 |
|
71 | asset.ast = null;
|
72 | asset.outputCode = result.code;
|
73 | asset.isAstDirty = false;
|
74 | });
|
75 |
|
76 | return function (_x) {
|
77 | return _ref.apply(this, arguments);
|
78 | };
|
79 | }(); |
\ | No newline at end of file |