UNPKG

js-confuser

Version:

JavaScript Obfuscation Tool.

49 lines (41 loc) 1.15 kB
import { reservedKeywords } from "../constants"; import { shuffle } from "./random-utils"; export function alphabeticalGenerator(index: number) { let name = ""; while (index > 0) { var t = (index - 1) % 52; var thisChar = t >= 26 ? String.fromCharCode(65 + t - 26) : String.fromCharCode(97 + t); name = thisChar + name; index = ((index - t) / 52) | 0; } if (!name) { name = "_"; } return name; } export function createZeroWidthGenerator() { var maxSize = 0; var currentKeyWordsArray: string[] = []; function generateArray() { var result = reservedKeywords .map( (keyWord) => keyWord + "\u200C".repeat(Math.max(maxSize - keyWord.length, 1)) ) .filter((craftedVariableName) => craftedVariableName.length == maxSize); if (!result.length) { ++maxSize; return generateArray(); } return shuffle(result); } function getNextVariable(): string { if (!currentKeyWordsArray.length) { ++maxSize; currentKeyWordsArray = generateArray(); } return currentKeyWordsArray.pop(); } return { generate: getNextVariable }; }