1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { IObfuscatorOptions } from "../interfaces/IObfuscatorOptions";
- import { TOptionsNormalizerRule } from "../types/TOptionsNormalizerRule";
- export class OptionsNormalizer {
- /**
- * @type {IObfuscatorOptions}
- */
- private static DISABLED_UNICODE_ARRAY_OPTIONS: IObfuscatorOptions = {
- encodeUnicodeLiterals: false,
- rotateUnicodeArray: false,
- unicodeArray: false,
- unicodeArrayThreshold: 0,
- wrapUnicodeArrayCalls: false
- };
- /**
- * @type {IObfuscatorOptions}
- */
- private static SELF_DEFENDING_OPTIONS: IObfuscatorOptions = {
- compact: true,
- selfDefending: true
- };
- /**
- * @type {TOptionsNormalizerRule[]}
- */
- private static normalizerRules: TOptionsNormalizerRule[] = [
- OptionsNormalizer.unicodeArrayRule,
- OptionsNormalizer.unicodeArrayThresholdRule,
- OptionsNormalizer.selfDefendingRule
- ];
- /**
- * @param options
- * @returns {IObfuscatorOptions}
- */
- public static normalizeOptions (options: IObfuscatorOptions): IObfuscatorOptions {
- let normalizedOptions: IObfuscatorOptions = Object.assign({}, options);
- for (let normalizerRule of OptionsNormalizer.normalizerRules) {
- normalizedOptions = normalizerRule(normalizedOptions);
- }
- return normalizedOptions;
- }
- /**
- * @param options
- * @returns {IObfuscatorOptions}
- */
- private static selfDefendingRule (options: IObfuscatorOptions): IObfuscatorOptions {
- if (options.selfDefending) {
- Object.assign(options, OptionsNormalizer.SELF_DEFENDING_OPTIONS);
- }
- return options;
- }
- /**
- * @param options
- * @returns {IObfuscatorOptions}
- */
- private static unicodeArrayRule (options: IObfuscatorOptions): IObfuscatorOptions {
- if (!options.unicodeArray) {
- Object.assign(options, OptionsNormalizer.DISABLED_UNICODE_ARRAY_OPTIONS);
- }
- return options;
- }
- /**
- * @param options
- * @returns {IObfuscatorOptions}
- */
- private static unicodeArrayThresholdRule (options: IObfuscatorOptions): IObfuscatorOptions {
- if (options.unicodeArrayThreshold === 0) {
- Object.assign(options, OptionsNormalizer.DISABLED_UNICODE_ARRAY_OPTIONS);
- }
- return options;
- }
- }
|