All files / webpack:/src Options.ts

100% Statements 1/1
100% Branches 0/0
100% Functions 0/0
100% Lines 1/1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                  1x                                      
import { IOptions } from "./interfaces/IOptions";
import { IObfuscatorOptions } from "./interfaces/IObfuscatorOptions";
 
import { OptionsNormalizer } from "./OptionsNormalizer";
 
import { DEFAULT_PRESET } from "./preset-options/DefaultPreset";
 
export class Options implements IOptions {
    /**
     * @type {IObfuscatorOptions}
     */
    private options: IObfuscatorOptions;
 
    /**
     * @param options
     */
    constructor (options: IObfuscatorOptions) {
        this.options = Object.freeze(
            OptionsNormalizer.normalizeOptionsPreset(
                Object.assign({}, DEFAULT_PRESET, options)
            )
        );
    }
 
    /**
     * @param optionName
     * @returns {T}
     */
    public get <T> (optionName: string): T {
        return this.options[optionName];
    }
}
 
 
 
// WEBPACK FOOTER //
// ./src/Options.ts