UNPKG

995 BJavaScriptView Raw
1// Normalize Terser options from microbundle's relaxed JSON format (mutates argument in-place)
2export function normalizeMinifyOptions(minifyOptions) {
3 const mangle = minifyOptions.mangle || (minifyOptions.mangle = {});
4 let properties = mangle.properties;
5
6 // allow top-level "properties" key to override mangle.properties (including {properties:false}):
7 if (minifyOptions.properties != null) {
8 properties = mangle.properties =
9 minifyOptions.properties &&
10 Object.assign(properties, minifyOptions.properties);
11 }
12
13 // allow previous format ({ mangle:{regex:'^_',reserved:[]} }):
14 if (minifyOptions.regex || minifyOptions.reserved) {
15 if (!properties) properties = mangle.properties = {};
16 properties.regex = properties.regex || minifyOptions.regex;
17 properties.reserved = properties.reserved || minifyOptions.reserved;
18 }
19
20 if (properties) {
21 if (properties.regex) properties.regex = new RegExp(properties.regex);
22 properties.reserved = [].concat(properties.reserved || []);
23 }
24}