javascript-snippet
Scraper JavaScript Obfuscator
jangan lupa install npm/package javascript-obfuscator
Lines: 73Chars: 2058Size: 2.01 KB
javascript-snippet
1import JavaScriptObfuscator from "javascript-obfuscator";
2
3export async function obfuscateJs(code, level = "easy") {
4 if (!code) {
5 throw new Error("Code tidak boleh kosong");
6 }
7
8 let config = {};
9
10 switch (level.toLowerCase()) {
11 case "easy":
12 config = {
13 compact: true,
14 controlFlowFlattening: false,
15 deadCodeInjection: false,
16 renameGlobals: false
17 };
18 break;
19
20 case "medium":
21 config = {
22 compact: true,
23 controlFlowFlattening: true,
24 controlFlowFlatteningThreshold: 0.3,
25 deadCodeInjection: false,
26 renameGlobals: false
27 };
28 break;
29
30 case "hard":
31 config = {
32 compact: true,
33 controlFlowFlattening: true,
34 controlFlowFlatteningThreshold: 0.75,
35 deadCodeInjection: true,
36 deadCodeInjectionThreshold: 0.4,
37 renameGlobals: true,
38 stringArray: true,
39 stringArrayThreshold: 0.75
40 };
41 break;
42
43 case "extreme":
44 config = {
45 compact: true,
46 controlFlowFlattening: true,
47 controlFlowFlatteningThreshold: 1,
48 deadCodeInjection: true,
49 deadCodeInjectionThreshold: 1,
50 renameGlobals: true,
51 stringArray: true,
52 stringArrayThreshold: 1,
53 stringArrayRotate: true,
54 stringArrayShuffle: true,
55 splitStrings: true,
56 splitStringsChunkLength: 3
57 };
58 break;
59
60 default:
61 throw new Error(
62 "Level harus easy, medium, hard, atau extreme"
63 );
64 }
65
66 const result = JavaScriptObfuscator.obfuscate(code, config);
67
68 return {
69 status: true,
70 level,
71 result: result.getObfuscatedCode()
72 };
73}