UNPKG

2.05 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.mergeAndParseParams = mergeAndParseParams;
7
8var _lodash = require('lodash.clone');
9
10var _lodash2 = _interopRequireDefault(_lodash);
11
12var _snakeCase = require('snake-case');
13
14var _snakeCase2 = _interopRequireDefault(_snakeCase);
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18// Override params file changes with any specified command line options
19// TODO Populate this list based on an external JSON
20var isBoolFlag = {
21 booleanToAnything: true,
22 charToTernaryOperator: false,
23 commaOperatorUnfolding: true,
24 controlFlowFlattening: false,
25 deadCodeInjection: true,
26 dotToBracketNotation: true,
27 duplicateLiteralsRemoval: false,
28 extendPredicates: true,
29 functionOutlining: true,
30 functionReorder: true,
31 identifiersRenaming: false,
32 numberToString: true,
33 propertyKeysObfuscation: true,
34 propertyKeysReordering: true,
35 regexObfuscation: true,
36 stringConcealing: true,
37 stringEncoding: true,
38 stringSplitting: false,
39 variableGrouping: true,
40 assertionsRemoval: false,
41 constantFolding: true,
42 deadCodeElimination: true,
43 debugCodeElimination: false,
44 whitespaceRemoval: true,
45 selfDefending: false,
46 browserLock: false,
47 dateLock: false,
48 domainLock: false,
49 osLock: false,
50 preserveAnnotations: true
51};
52
53// Convert from command line option format to JScrambler API format.
54function mergeAndParseParams(commander, params) {
55 var finalParams = (0, _lodash2.default)(params || {});
56
57 Object.keys(isBoolFlag).forEach(function (name) {
58 if (commander[name] !== undefined) {
59 var snakeCaseName = (0, _snakeCase2.default)(name);
60 if (isBoolFlag[name] === true) {
61 finalParams[snakeCaseName] = {
62 status: 1
63 };
64 } else {
65 finalParams[snakeCaseName] = commander[name];
66 }
67 if (typeof finalParams[snakeCaseName].status === 'undefined') {
68 finalParams[snakeCaseName].status = 1;
69 }
70 }
71 });
72
73 return finalParams;
74}
\No newline at end of file