UNPKG

vanzy-protect

Version:

Epic Obfuscator Yeahhh

60 lines (51 loc) 1.94 kB
import { cfg } from '../config/cfg' import { warn } from '../log/warn' import { comment } from '../obfuscate/comment' import { obfuscateName } from '../obfuscate/obfuscateName' import { stringObfLvl1 } from '../obfuscate/stringObfLvl1' import { arrayPattern } from './arrayPattern' import { assignmentExpression } from './assignmentExpression' import { objectPattern } from './objectPattern' import { rightExpression } from './rightExpression' import { traverse } from './traverse' export function methodDefinition(expr: any) { var data = '' if (expr.static) { data += 'static ' data += comment(2) } if (expr.async) { data += 'async ' data += comment(2) } if (expr.key.type === 'Identifier' && expr.key.name === 'constructor') { data += comment(2) + 'constructor' + comment(2) + '(' } else { data += '[' + comment(2) if (expr.computed) { data += rightExpression(expr.key) } else if (expr.key.type === 'Identifier') { data += stringObfLvl1(expr.key.name) //stringObf(expr.key.name, cfg().transforms.keyObfuscationLevel) } else if (expr.key.type === 'Literal') { data += stringObfLvl1(expr.key.value) } data += ']' + comment(3) + '(' } ;(expr.value.params as any[]).forEach((i, n) => { if (i.type === 'Identifier') { var pname: string = i.name if (cfg().transforms.obfuscateNames) pname = obfuscateName(pname) data += pname + comment(3) + ',' + comment(3) } else if (i.type === 'AssignmentPattern') { data += assignmentExpression({ operator: '=', ...i }) + comment(3) + ',' + comment(3) } else if (i.type === 'ObjectPattern') { data += objectPattern(i) + comment(3) + ',' + comment(3) } else if (i.type === 'ArrayPattern') { data += arrayPattern(i) + comment(3) + ',' + comment(3) } else warn(`Unknown expression type in methodDefinition(e) => e.value.params[${n}] : ${i.type}`) }) data += '){' data += traverse(expr.value.body.body) data += '}' return data }