New obfuscateMultiple method

This commit is contained in:
sanex3339
2020-03-15 21:34:13 +03:00
parent a4c7d8b06d
commit f9ec74006d
12 changed files with 122 additions and 6 deletions
+30
View File
@@ -3,6 +3,8 @@ import 'reflect-metadata';
import { ServiceIdentifiers } from './container/ServiceIdentifiers';
import { TInputOptions } from './types/options/TInputOptions';
import { TObfuscationResultsObject } from './types/TObfuscationResultsObject';
import { TObject } from './types/TObject';
import { IInversifyContainerFacade } from './interfaces/container/IInversifyContainerFacade';
import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
@@ -34,6 +36,34 @@ class JavaScriptObfuscatorFacade {
return obfuscatedCode;
}
/**
* @param {TSourceCodesObject} sourceCodesObject
* @param {TInputOptions} inputOptions
* @returns {TObfuscationResultsObject<TSourceCodesObject>}
*/
public static obfuscateMultiple <TSourceCodesObject extends TObject<string>> (
sourceCodesObject: TSourceCodesObject,
inputOptions: TInputOptions = {}
): TObfuscationResultsObject<TSourceCodesObject> {
if (typeof sourceCodesObject !== 'object') {
throw new Error('Source codes object should be a plain object');
}
return Object
.keys(sourceCodesObject)
.reduce(
(acc: TObfuscationResultsObject<TSourceCodesObject>, sourceCodeIdentifier: keyof TSourceCodesObject) => {
const sourceCode: string = sourceCodesObject[sourceCodeIdentifier];
return {
...acc,
[sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, inputOptions)
};
},
<TObfuscationResultsObject<TSourceCodesObject>>{}
);
}
}
export { JavaScriptObfuscatorFacade as JavaScriptObfuscator };